gpt4 book ai didi

c# - 带有 标记的数组类型不适用于 Swagger (swashbuckle.aspnetcore)

转载 作者:行者123 更新时间:2023-12-03 08:34:48 26 4
gpt4 key购买 nike

我正在使用 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 文档中,数组不被解释:

enter image description here

我通过使用 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来处理数组类型的标签之外,没有其他办法了吗?

最佳答案

引号必须使用 " 进行转义

/// <summary>
/// List of errors
/// </summary>
///<example>[&quot;entry1&quot;,&quot;entry2&quot;,&quot;entry3&quot;]</example>
[DataMember]
public List<string> ErrorList { get; } = new List<string>();

关于c# - 带有 <example> 标记的数组类型不适用于 Swagger (swashbuckle.aspnetcore),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64220884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com