2017-08-24 1 views
1

Ich benutze Swagger/Swashbuckle Version 5.6, um Dokumentation für mein ASP.Net Web API 2 Projekt zu generieren.Kann swagger ui Pfad nicht ändern

standardmäßig API-Dokumentation ist zugänglich unter der URL http://localhost:56081/swagger/ui/index

Aber, ich will es sollte http://localhost:56081/apihelp/

ich viel gesucht verfügbar sein, versucht das Ändern von Einstellungen in der Datei SwaggerConfig.cs aber nichts scheint zu machen diese Arbeit.

Also, ist das überhaupt möglich? Wenn ja, kann mir jemand dabei helfen?

Antwort

2

Sie können den Pfad zum Aufruf von EnableSwaggereUi, z.B .:

SwaggerConfig.Register(HttpConfiguration config) 
{ 
    config.EnableSwaggerUi("apihelp/{*assetPath}", c => 
    ... // following lines omitted 
} 

Anschließend fügen Sie die Benutzeroberfläche mit der URL http://localhost:56081/apihelp/index

Siehe https://github.com/domaindrivendev/Swashbuckle#custom-routes als Referenz nennen.

Bitte beachten Sie: Die Standardeinstellung 'swagger' wird automatisch auf 'swagger/ui/index' umgeleitet, aber diese benutzerdefinierte Einstellung wird nicht automatisch auf 'apihelp/index' umgeleitet, wenn Sie 'apihelp' verwenden. Um eine automatische Umleitung erreichen Sie die Route in WebApiConfig hinzufügen:

config.Routes.MapHttpRoute(
    name: "Swagger UI", 
    routeTemplate: "apihelp", 
    defaults: null, 
    constraints: null, 
    handler: new RedirectHandler(message => message.RequestUri.ToString().TrimEnd('/'), "/index")); 

Der Redirect-Code wird in How to redirect from root url to /swagger/ui/index? auf v.karbovnichy Antwort basiert