it-roy-ru.com

Модель ответа для конкретных кодов состояния с использованием 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

9
Kaladin

Вы можете попробовать использовать cref = "TYPE HERE" в ваших комментариях XML, как это.

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

B Ut Я бы предложил использовать аннотации, которые вам предлагает Swagger.

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

приписать ваши контроллеры с этим.

23
EvilToaster101

Ваша подпись говорит, что вы возвращаете HttpResponseMessage, а не модель данных. Если вы возвращаете IActionResult, вы можете использовать атрибут «ProducesResponseType».

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

ProducesResponsesType находится в пространстве имен Microsoft.AspNetCore.Mvc.

См https://github.com/domaindrivendev/Swashbuckle.AspNetCore#list-operation-responses "Явные ответы"

5
Elton

Ты можешь попробовать

 [SwaggerResponse(200, typeof(CustomModel))]

и вы дополнительно добавляете комментарий для этого типа ответа в качестве необязательного третьего параметра

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