CreatedAtRouteResult с атрибутом swagger - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть основной веб-интерфейс asp.net. Где один из моих контроллеров возвращает CreatedAtRouteResult. Как я могу добавить атрибут swagger для этого метода.

[HttpPost]
[SwaggerResponse(400, typeof(NotFoundResult))]
[SwaggerResponse(201, typeof(CreatedAtRouteResult))]
public async Task<IActionResult> Create([FromBody] SubscriptionDTO dto)
{
    var issuedTo = (await _tokenService.Get()).IssuedTo;
    SubscriptionDresult = await _subscriptionService.CreateAsync(dto, issuedTo.Id);
    return result == null ? (IActionResult)NotFound(): CreatedAtRoute(new {id = result.Id}, result);
}

Может кто-нибудь объяснить, как установить атрибут отклика такого типа?

1 Ответ

0 голосов
/ 30 апреля 2018

Если вы используете атрибут ProduceResponseType в своем методе, swagger автоматически подберет его и добавит в документ swagger.json.

[HttpPost]
[ProducesResponseType(typeof(SubscriptionDTO), (int)HttpStatusCode.Created)]
[ProducesResponseType(typeof(void), (int)HttpStatusCode.NotFound)]
public async Task<IActionResult> Create([FromBody] SubscriptionDTO dto)
{
    var issuedTo = (await _tokenService.Get()).IssuedTo;
    SubscriptionDTO result = await _subscriptionService.CreateAsync(dto, issuedTo.Id);
    return result == null ? (IActionResult)NotFound(): CreatedAtRoute(new {id = result.Id}, result);
}

Обратите внимание, что вам нужно указать фактический тип DTO, возвращаемый для каждого кода ответа в ProduceResponseType. Используйте void для возврата тела.

...