使用Swagger的特定状态代码的响应模型

时间:2015-04-07 10:24:09

标签: c# rest asp.net-web-api swagger

我使用Swagger来记录我的REST API(使用asp.net web api 2)。对于给定的api调用,是否有一种方法可以为每个可能的响应提供响应模型?我正在使用像这样的xml注释来注释状态代码响应:

    /// <summary>
    /// Save a person
    /// </summary>
    /// <response code="200">Ok</response>
    /// <response code="400">Bad Request</response>
    /// <response code="500">Internal Server error</response>
    public HttpResponseMessage SavePerson() {...}

enter image description here

3 个答案:

答案 0 :(得分:26)

您可以尝试使用cref =&#34; TYPE HERE&#34;关于你的XML评论。

/// <response code="400" cref="CustomErrorModel">Bad Request</response>

乙 我建议使用Swagger给你的注释。

[SwaggerResponse(HttpStatusCode.OK, Type = typeof(OnlineMerchantQueryResponseInformation))]

将控制器归于此属。

答案 1 :(得分:7)

您的签名表示您正在返回HttpResponseMessage,而不是数据模型。如果您要返回IActionResult,则可以使用&#34; ProducesResponseType&#34;属性。

[ProducesResponseType(typeof(IEnumerable<YourModel>), 200)]

ProducesResponsesType位于Microsoft.AspNetCore.Mvc名称空间中。

请参阅 https://github.com/domaindrivendev/Swashbuckle.AspNetCore#list-operation-responses &#34;明确的回应&#34;

答案 2 :(得分:1)

您可以尝试

 [SwaggerResponse(200, typeof(CustomModel))]

,您还为该响应类型添加了一个注释,作为可选的第三个参数

[SwaggerResponse(200, typeof(CustomModel), "returns a new id of the bla bla")]