Verwendung von Swagger mit einem namespaced-versioned WebApi

8

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?

    
thomasb 15.10.2014, 16:20
quelle

1 Antwort

2

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

verwenden     
Hoppe 17.06.2015 13:08
quelle

Tags und Links