2017-07-19 2 views
1

Swashbuckle würde swagger.json nicht mit einer Ausgabe von "UserCreateResponse" generieren, wie behebt man das?Swashbuckle - Swagger Dokumentation der zurückgegebenen Antwort?

[HttpPost] 
    public async Task<IActionResult> Update([FromBody]UserCreate Request) 
    { 
     UserCreateResponse response = new UserCreateResponse(); 

     //do something here 

     // returns UserCreateResponse with http status code 200 
     return Ok(response); 
    } 

Sie dies nicht tun können, weil sie nicht den HTTP-Statuscode gehen zurück, 200.400.401 etc

[HttpPost] 
    public async Task<UserCreateResponse> Update([FromBody]UserCreate Request) 
    { 
     UserCreateResponse response = new UserCreateResponse(); 

     //do something here 

     // returns UserCreateResponse 
     return response; 
    } 

Antwort

2

können Sie den Antworttyp mit dem folgende Attribute angeben:

[ProducesResponseType(typeof(UserCreateResponse), 200)] 
+0

Danke hezye !!!! – 001

1

Eine weitere Variante ist die Verwendung des Attributs SwaggerResponse, das auch eine zusätzliche Beschreibung ermöglicht:

[SwaggerResponse(HttpStatusCode.OK, "UserDTO", typeof(UserDTO))] 
public async Task<IHttpActionResult> Get([FromODataUri] int key) 
{ 
    var result = await UserRepo.GetAsync(key); 
    ... 
    return Ok(result); 
} 

die Ausgabe erzeugt, wie hier gezeigt:

enter image description here enter image description here

Es ist auch möglich, die Art wegzulassen andere Statuscodes zu dokumentieren, die keine Einheit zurückgeben:

[SwaggerResponse(HttpStatusCode.NotFound, "no data found")] 
[SwaggerResponse(HttpStatusCode.BadRequest, "requiered request headers not found")] 

enter image description here

Verwandte Themen