2015-04-07 9 views
7

Ich verwende Swagger, um meine REST-API zu dokumentieren (mit asp.net web api 2). Gibt es einen Weg, um Antwortmodelle für jede mögliche Antwort für einen gegebenen api Anruf zu geben? Ich bin mit Anmerkungen versehen den Statuscode Antwort wie so die XML-Kommentare mit:Antwortmodell für spezifische Statuscodes mit Swagger

/// <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

+1

Sie können diese folgen wollen - https://github.com/domaindrivendev/Swashbuckle/issues/254. – Ron

Antwort

14

Sie können versuchen, cref mit = „Geben Sie hier“ auf dem XML-Kommentare wie diese.

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

B ut würde ich mit Anmerkungen vorschlagen, dass Swagger gibt Ihnen.

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

Attribut Ihre Controller mit diesem.

+6

es wäre gut, wenn Sie teilen können, wo Sie diese Dokumentation gefunden haben? –

1

Ihre Signatur besagt, dass Sie eine HttpResponseMessage und kein Datenmodell zurückgeben. Wenn Sie ein IActionResult zurückgeben, können Sie das Attribut "ProducesResponseType" verwenden.

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

ProducesResponsesType ist in Microsoft.AspNetCore.Mvc Namespace.

Siehe https://github.com/domaindrivendev/Swashbuckle.AspNetCore#list-operation-responses "Explicit Antworten"

+1

Das ist nur in Core gültig. – Tipx

Verwandte Themen