2016-06-14 23 views
7

WebApi 2 projemde Swashbuckle kullanarak havalı belgeler oluşturuyorum. Swashbuckle otomatik olarak oluşturulmuş Swagger dosyasına 200 OK cevabı ekliyor

Ben yöntemin aşağıdakileri ifade edecektir:

[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); 
} 

her yerde belirtilen değil rağmen oluşturulan Swagger dosyası, hem de HTTP 200 Tamam içeriyor Ancak.

/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 

Bundan kurtulmanın bir yolu var mı? Geçerli bir cevap olmadığı için kafa karıştırıcı.

Önerileriniz için teşekkürler.

cevap

9

SwaggerResponseRemoveDefaults özniteliğiyle yöntemi dekorasyona alarak varsayılan yanıtı (200 Tamam) kaldırabilirsiniz.

+0

Teşekkürler! Bu hile yaptı! –

+0

Denetleyicilerimde her bir yöntemi dekore etmek yerine, bunu global olarak eklemenin bir yolu var mı? – michaelmsm89

+0

Özellik, bir denetleyiciye de uygulanabilir. Bu davranışı küresel olarak eklemek için kendi 'IDocumentFilter'ınızı oluşturmalısınız. – venerik