Swashbuckle:具有相同状态代码但具有不同描述/模型的多个[SwaggerResponse]

时间:2017-06-20 22:47:04

标签: c# asp.net-web-api2 swagger swashbuckle

我正在编写示范购物车API,我遇到过一种情况,我可以出于多种原因返回NotFound(找不到购物车商品或找不到购物车本身)。我想为这两种情况返回一个Swagger描述。我试过这个,但它不起作用。

    [SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(CartNotFoundResponse), Description = "Cart not found (code=1)")]
    [SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(ItemNotFoundResponse), Description = "Item not found (code=104)")]
    [SwaggerResponse(HttpStatusCode.NoContent)]
    public async Task<IHttpActionResult> DeleteItemWithSKUAsync(Guid cartId, string sku)
    {
    }

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,当前的实现无法实现: https://github.com/domaindrivendev/Swashbuckle/blob/master/Swashbuckle.Core/Swagger/SwaggerDocument.cs#L29

如您所见,响应是字典,关键是StatusCode。

我的建议:使用一个更通用的类来覆盖你的两个案例(CartNotFound&amp; ItemNotFound)

答案 1 :(得分:0)

考虑不关心:

  1. 找不到购物车;
  2. 该项目已被删除。