【发布时间】:2020-10-06 07:05:45
【问题描述】:
我正在为 swagger 文档使用摘要和示例标签。 我的标签有问题,当我使用数组时,它无法被 swagger 识别:
我使用 swashbuckle.aspnetcore 包 Nuget。
例子:
[DataContract]
public class HeaderResponse
{
/// <summary>
/// Statut code
/// </summary>
///<example>400</example>
[DataMember]
public int StatusCode { get; set; }
/// <summary>
/// Title
/// </summary>
/// <example>Erreur sur methode1</example>
[DataMember]
public string Title { get; set; }
/// <summary>
/// List of errors
/// </summary>
///<example>["entry1", "entry2", "entry3"]</example>
[DataMember]
public List<string> ErrorList { get; } = new List<string>();
}
在 swagger 文档中,数组没有被解释:
我通过像这样使用 ISchemaFilter 找到了其他解决方案:
public class SwaggerExcludeFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
switch (context.Type.Name)
{
case "HeaderResponse":
foreach (var property in schema.Properties)
{
if (property.Value.Type == "array")
{
var array = new OpenApiArray();
array.Add(new OpenApiString("item1"));
array.Add(new OpenApiString("item2"));
array.Add(new OpenApiString("item3"));
property.Value.Example = array;
}
}
break;
}
}
}
除了使用ISchemaFilter来处理数组类型的标签,没有别的办法了吗?
【问题讨论】:
标签: c# asp.net-core swagger