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.
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.
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%@ 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.
Tags und Links asp.net-web-api2 swagger-2.0 swashbuckle