Ich benutze Swagger , um meine REST API zu dokumentieren (mit asp.net web api 2). Gibt es eine Möglichkeit, in Swagger Antwortmodelle für jede mögliche Antwort für einen bestimmten API-Aufruf anzugeben? Ich kommentiere die Statuscode-Antwort mit den XML-Kommentaren wie folgt:
/// <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() {...}
Sie können versuchen, cref = "TYPE HERE" für Ihre XML-Kommentare wie diese zu verwenden.
/// <response code="400" cref="CustomErrorModel">Bad Request</response>
Aber ich würde vorschlagen, Anmerkungen zu verwenden, die Swagger Ihnen gibt.
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(OnlineMerchantQueryResponseInformation))]
weisen Sie Ihren Controllern dies zu.
Ihre Signatur besagt, dass Sie eine HttpResponseMessage zurückgeben, kein Datenmodell. Wenn Sie ein IActionResult zurückgeben, können Sie das Attribut "ProducesResponseType" verwenden.
[ProducesResponseType(typeof(IEnumerable<YourModel>), 200)]
ProducesResponsesType befindet sich im Microsoft.AspNetCore.Mvc-Namespace.
Siehe https://github.com/domaindrivendev/Swashbuckle.AspNetCore#list-operation-responses "Explicit Responses"
Du kannst es versuchen
[SwaggerResponse(200, typeof(CustomModel))]
und Sie fügen zusätzlich einen Kommentar für diesen Antworttyp als optionalen dritten Parameter hinzu
[SwaggerResponse(200, typeof(CustomModel), "returns a new id of the bla bla")]