2017-07-09 1 views
0

Dies ist die Definition hinzugefügt in clean1.csproj Datei basierend auf NSwag's documentationWie NSwag zu zwingen, benutzerdefinierte Antwortcodes von XML-Kommentare automatisch generierten Prahlerei json einer Web-API-Aufruf

<Target Name="AfterBuild"> 
<Exec Command="$(NSwagExe) webapi2swagger /assembly:$(OutDir)/Clean1.dll /referencepath: $(ProjectDir) /output:$(ProjectDir)/clean1swagger.json" /> 

enthalten

Das Problem ist, dass nur 200 Antwortcode wie erzeugt wird:

 ], 
    "responses": { 
     "200": { 
     "description": "", 
     "schema": { 
      "$ref": "#/definitions/Product" 
     }, 
     "x-nullable": true 
     } 
    } 

Hier sind die XML-Kommentare in dem Demo-Aufruf des Controllers.

/// <summary> 
    /// Gets a product by Id 
    /// </summary> 
    /// <remarks> 
    /// Remarks-description text. 
    /// </remarks> 
    /// <response code="200">test 200</response> 
    /// <response code="201">test 201/response> 
    /// <response code="400">test 400</response></response> 
    [HttpGet] 
    [ResponseType(typeof(Product))] 
    public IHttpActionResult GetProduct(int id) 
    { 
     var product = products.FirstOrDefault((p) => p.Id == id); 
     if (product == null) 
     { 
      return NotFound(); 
     } 
     return Ok(product); 
    } 

Der JSON sollte die anderen Antworten enthalten und automatisch generieren.

Antwort

1

Dies ist derzeit nicht möglich. Wir haben überlegt, diese Funktion hinzuzufügen, aber in den meisten Fällen müssen Sie den Typ angeben, und dies kann nicht über XML-Kommentare erfolgen. Fürs Erste müssen Sie das SwaggerResponseAttribute dafür verwenden. Aber bitte erstellen Sie ein Problem auf Github, so dass das Feature als in der Zukunft hinzugefügt wird ...

+0

Ja, es ist die einzige Lösung. Es wäre besser, ohne NSwag Annotationen zu verweisen, da ich die msbuild json Generation way.thanks –

+0

https://stackoverflow.com/questions/45085426/how-to-add-a-custom-header-for-yvery-request- verwenden In-Swagger-UI-Version-3-0 können Sie mit diesem helfen? –

+0

Der Attributcode kann auch in Ihrem Projekt enthalten sein. Es benötigt nur den gleichen Klassennamen und Eigenschaften –

Verwandte Themen