2015-04-07 10 views
7

Sto utilizzando Swagger per documentare la mia API REST (utilizzando asp.net web api 2). C'è un modo in spavalderia di dare modelli di risposta per ogni possibile risposta per una determinata chiamata API? Sto annotare la risposta codice di stato utilizzando i commenti XML in questo modo:Modello di risposta per codici di stato specifici utilizzando 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

Si consiglia di seguire questa - https://github.com/domaindrivendev/Swashbuckle/issues/254. – Ron

risposta

14

Si può provare a utilizzare cref = "Scrivi qui" sui vostri commenti XML come questo.

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

B ut Io suggerirei di usare le annotazioni che Swagger vi dà.

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

attribuire i controller a questo.

+6

sarebbe bello poter condividere da dove hai trovato questa documentazione? –

1

La firma indica che si sta restituendo un messaggio HttpResponseMessage, non un modello di dati. Se stai restituendo un IActionResult, puoi utilizzare l'attributo "ProducesResponseType".

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

ProducesResponsesType è in Microsoft.AspNetCore.Mvc namespace.

Vedi https://github.com/domaindrivendev/Swashbuckle.AspNetCore#list-operation-responses "risposte esplicite"

+1

Questo è valido solo in Core. – Tipx

Problemi correlati