Domyślnie po włączeniu przekreślenia w projekcie ASP.NET Core jest on dostępny pod adresem url:
http://localhost:<random_port>/swagger/ui
Chciałbym użyć innego bazowego adresu URL zamiast /swagger/ui
. Jak / gdzie mogę to skonfigurować?
Znalazłem, że dla starszych wersji możesz skonfigurować RootUrl
ale nie ma podobnej metody w ASP.NET Core:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
Odpowiedzi:
14 dla odpowiedzi № 1Nowa wersja programu swagger udostępnia właściwość o nazwie RoutePrefix.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
0 dla odpowiedzi nr 2
The UseSwaggerUi()
metoda rozszerzenia, aby umożliwić oprogramowanie pośrednie w metodzie Configure klasy StartUp, bierze dwie zmienne. ZA baseRoute
który jest włączony swagger/ui
domyślnie i swaggerUrl
który jest włączony swagger/v1/swagger.json
domyślnie. Po prostu podaj inny baseRoute.
//Swagger will be available under "/api" url
app.UseSwaggerUi("api");
Jeśli ludzie chcieliby dowiedzieć się więcej o konfigurowaniu Swagger'a dla ASP.NET Core, napisałem na początek blog: https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core-1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/
0 dla odpowiedzi № 3
- Otworzyć launchSettings.json plik.
- Pod "profile" węzeł w zależności od konfiguracji powinien mieć jeden lub więcej profili. W moim przypadku mogłem "IIS Express" i inny o nazwie z moją nazwą projektu (np. WebApplication1 ), teraz zmieniając launchUrl wejście do "launchUrl": "swagger" rozwiązał mój problem.
- Jeśli to nie działa, a masz inne profile, wykonaj to samo i sprawdź.