Swashbuckle Swagger - Wie beschreibe ich Inhaltstypen?

7

Wie kann ich meine ASP.NET-WebAPI-Aktionen mit Anmerkungen versehen, damit die Swagger-Metadaten die von meinen Ressourcen unterstützten Inhaltstypen enthalten?

Insbesondere möchte ich, dass die Dokumentation zeigt, dass eine meiner Ressourcen die ursprünglichen application/json und application/xml zurückgeben kann, aber jetzt auch ein neues Format, application/vnd.blah+json oder +xml , zurückgibt.

    
Luke Puplett 25.01.2016, 10:28
quelle

3 Antworten

7

Was Sie tun müssen, ist dies; Swagger-Spezifikation: Sie müssen Ihren Antworttyp zu der Liste der Antworttypen für diesen Vorgang hinzufügen

%Vor%

Dies kann mit einem OperationFilter gemacht werden

Pseudocode eingehend !!!

%Vor%

Die OperationId kann über die Annotation [SwaggerOperation("myCustomName")] festgelegt werden.

Wenden Sie dann den operationsFilter in der swaggerConfig.cs

an %Vor%

Hinweis: anstelle von operation.operationId == "myCustomName" Sie könnten es für eine bestimmte Route oder etwas anderes grundsätzlich tun. ApiDescription gibt viele Informationen über Kontext.

    
VisualBean 01.02.2016, 11:32
quelle
28

Erweitern @ VisualBeans Antwort

Auf der API-Methode eines Controllers können Sie den folgenden Code verwenden, um ein Attribut wie folgt festzulegen:

%Vor%

Hinweis: 'Exclusive = true' wird alle anderen Inhaltstypen entfernen, andernfalls wird beim Verwenden des neuen Attributs ein neuer Antwort-Inhaltstyp in der Swagger UI-Dropdownliste hinzugefügt. Es wird NICHT Ihren Controller oder API nur die Dokumentation ändern.

SwaggerConfig.cs

%Vor%

SwaggerReponseContentTypeAttribute.cs

%Vor%

ResponseContentTypeOperationFilter.cs

%Vor%     
OzBob 01.04.2016 05:42
quelle
5

@ OzBobs Antwort setzt voraus, dass Sie nur ein einzelnes Attribut zu einer Methode hinzufügen möchten. Wenn Sie mehr als einen Inhaltstyp für dieselbe Methode hinzufügen und dokumentieren möchten, können Sie Folgendes verwenden:

SwaggerReponseContentTypeAttribute.cs

%Vor%

ResponseContentTypeOperationFilter.cs

%Vor%

Beachten Sie Folgendes: Wenn Sie mehrere Attribute für dieselbe Methode verwenden und die vorhandenen Inhaltstypen ersetzen möchten, sollten Sie Exclusive = true nur für das erste Attribut festlegen. Andernfalls erhalten Sie nicht alle Attribute in der Dokumentation.

    
bjorgvin 01.03.2017 10:12
quelle