【发布时间】:2019-12-11 07:42:54
【问题描述】:
对于请求,在 Swagger 2.0 规范中,跨所有 API 端点定义的每个请求对象只有一个模式。因此,如果我要在多个 API 端点中提供相同的请求对象,即在多个控制器操作上,如下所示:
DeliveryOptions.cs
[SwaggerRequestExample(typeof(DeliveryOptionsSearchModel), typeof(DeliveryOptionsSearchModelExample1))]
public async Task<IHttpActionResult> DeliveryOptionsForAddress(DeliveryOptionsSearchModel search)
...
// maybe in some other controller, e.g. Search.cs
[SwaggerRequestExample(typeof(DeliveryOptionsSearchModel), typeof(DeliveryOptionsSearchModelExample2))]
public async Task<IHttpActionResult> Search(DeliveryOptionsSearchModel search)
// for Example
public class DeliveryOptionsSearchModel
{
public string name {get; set;}
}
public class DeliveryOptionsSearchModelExample1 : Swashbuckle.Examples.IExamplesProvider
{
public object GetExamples()
{
return new DeliveryOptionsSearchModel
{
name= "abc"
};
}
}
public class DeliveryOptionsSearchModelExample2 : Swashbuckle.Examples.IExamplesProvider
{
public object GetExamples()
{
return new DeliveryOptionsSearchModel
{
name= "xyz"
};
}
}
DeliveryOptionsSearchModel 对象在整个 Swagger 文档中只定义一次。
如何在 C# asp .net 的 swagger 中为一个请求对象(DeliveryOptionsSearchModel) 定义多个请求示例?
问题在于它没有为DeliveryOptionsSearchModel 对象渲染两个不同的示例。 Swagger UI 仅显示所有 API 端点的一个示例类(例如 - DeliveryOptionsSearchModelExample2)。
还有其他办法解决吗?
【问题讨论】:
标签: c# swagger-ui swagger-2.0 swashbuckle