2016-06-14 30 views
7

Sto costruendo documenti swagger usando Swashbuckle nel mio progetto WebApi 2.Swashbuckle che aggiunge automaticamente 200 risposte OK al file Swagger generato

Ho la seguente definizione del metodo:

[HttpPost] 
[ResponseType(typeof(Reservation))] 
[Route("reservations")] 
[SwaggerResponse(HttpStatusCode.Created, Type = typeof(Reservation))] 
[SwaggerResponse(HttpStatusCode.BadRequest) ] 
[SwaggerResponse(HttpStatusCode.Conflict)] 
[SwaggerResponse(HttpStatusCode.NotFound)] 
[SwaggerResponse(HttpStatusCode.InternalServerError)]   
public async Task<HttpResponseMessage> ReserveTickets([FromBody] ReserveTicketsRequest reserveTicketRequest) 
{ 
    // ... 
    return Request.CreateResponse(HttpStatusCode.Created, response); 
} 

Tuttavia il file generato contiene Swagger HTTP 200 OK così, anche se non è specificato da nessuna parte.

/reservations: 
    post: 
    tags: 
     - "Booking" 
    operationId: "Booking_ReserveTickets" 
    consumes: 
     - "application/json" 
     - "text/json" 
    produces: 
     - "application/json" 
     - "text/json" 
    parameters: 
     - 
     name: "reserveTicketRequest" 
     in: "body" 
     required: true 
     schema: 
      $ref: "#/definitions/ReserveTicketsRequest" 
    responses: 
     200: 
     description: "OK" 
     schema: 
      $ref: "#/definitions/Reservation" 
     201: 
     description: "Created" 
     schema: 
      $ref: "#/definitions/Reservation" 
     400: 
     description: "BadRequest" 
     404: 
     description: "NotFound" 
     409: 
     description: "Conflict" 
     500: 
     description: "InternalServerError" 
    deprecated: false 

C'è un modo per sbarazzarsi di 200 OK? È confuso perché non è una risposta valida.

Grazie per i suggerimenti.

risposta

9

È possibile rimuovere la risposta predefinita (200 OK) decorando il metodo con l'attributo SwaggerResponseRemoveDefaults.

+0

Grazie! Questo ha fatto il trucco! –

+0

C'è un modo per aggiungere questo globalmente piuttosto che decorare ogni metodo nei miei controller? – michaelmsm89

+0

L'attributo può essere applicato anche a un controller. Per aggiungere questo comportamento a livello globale devi creare il tuo 'IDocumentFilter' – venerik