我有一个API,我的模型也在那里。我使用.Net核心WEB API和swagger。它们用Required、ErrorMessage和Display来装饰字段。例如:
[Required(ErrorMessage = "FirstName is mandatory")]
[Display(Name = "Service Name")]
public string RouteName { get; set; }
但是由于某种原因,当我使用服务时,swagger.json文件没有Display或ErrorMessage的实现,它只有所需的装饰器实现,这样它会显示:
"RouteHeader": {
"required": [ "routeName" ],
是否有一种方法/选项,包括这从 Swagger 或我需要转换任何是来自 Swagger ,并把它放在一个单独的“显示模型”,以便这一工作。
1条答案
按热度按时间ljsrvy3e1#
Swagger JSON文件遵循严格的JSON schema规范,因此您无法真正修改它的结构而不冒使其无效的风险。您可以了解更多关于Swagger JSON文件规范here或JSON Schema的信息。
您可以使用其他属性来包含关于您的模型的额外信息。要扩展在生成的模式中提供的信息,请实现
ISchemaFilter
接口。它提供了一个Apply()
方法,该方法为将包含在结果Swagger JSON文件中的每个模型类型(schema)调用。通常,这些类型基于控制器方法中使用的请求和响应类型。显示名称筛选器类似于:
在
ConfigureServices()
方法中注册启动时的模式过滤器:结果示例
给定一个简单的
Weather
模型:它将在
swagger.json
中生成这段模式(为简洁起见,删除了一些部分):结果在Swagger UI中看起来相当平庸,所以可以尝试其他属性,这些属性可以更好地显示在UI中。