Ich habe herausgefunden, wie ich meine WebAPI basierend auf Namespaces mit versionieren kann diese Klasse .
Ich verwende Swashbuckle, um Swagger doc mit dem Swashbuckle Nuget-Paket zu meiner API hinzuzufügen.
Wenn ich alles intakt halte, wenn ich zu / swagger / navigiere, bekomme ich eine leere Seite.
In meinem App_Start:
%Vor%Und meine Web-API-Routen:
%Vor% Wenn ich das {namespace}
lösche, funktioniert es (die API-Befehle werden angezeigt), aber ich möchte diese Namespace-Informationen in meiner Route behalten.
Wie kann ich Swagger / Swashbuckle anpassen, damit dies funktioniert?
Aus dem Swashbuckle Github Repo:
Es gibt einen Fehler in der obigen Implementierung von "Namespace-Routing", da es den WebApi-Metadaten-Layer ApiExplorer und damit Swashbuckle durchbricht.
Eine Problemumgehung, die Ihr Problem nicht direkt löst, ist stattdessen die Verwendung der Attribut-Versionierung, die mit Swashbuckle funktioniert:
I.e .:
%Vor%Weitere Informationen finden Sie in den folgenden beiden Github-Ausgaben. Ссылка Ссылка
Ich glaube, dass Ihr Controller bei der Attributweiterleitung für jede Version einen anderen Namen haben muss. I.e. Die Klasse sollte die Namen FeaturesV1Controller und FeaturesV2Controller für Version 2 haben, aber für die Routen können Sie weiterhin / api / v1 / Features und / api / v2 / Features
verwendenTags und Links asp.net-web-api c# swagger