По подразбиране, когато активирате swagger в проекта ASP.NET Core, той е достъпен на url:
http://localhost:<random_port>/swagger/ui
Бих искал да използвам различен основен URL адрес вместо /swagger/ui
, Как / къде мога да конфигурирам това?
Намерих, че за по-старите версии можете да конфигурирате RootUrl
но няма подобен метод в ASP.NET Core:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
Отговори:
14 за отговор № 1Новата версия на swagger ви осигурява собственост, наречена RoutePrefix.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
0 за отговор № 2
Най- UseSwaggerUi()
методът за разширение, който позволява на мидълуер в метода "Конфигуриране" на класа "Старт", взема две променливи. А baseRoute
който е включен swagger/ui
по подразбиране и swaggerUrl
който е включен swagger/v1/swagger.json
по подразбиране. Просто осигурете различна база.
//Swagger will be available under "/api" url
app.UseSwaggerUi("api");
Ако хората биха искали да научат повече за конфигурирането на Swagger за ASP.NET Core, аз съм написал blogpost, за да започнете: https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core-1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/
0 за отговор № 3
- Отвори launchSettings.json файл.
- Под "профили" в зависимост от настройката, трябва да имате един или повече профили. В малък случай имах "IIS Express" и друг с име на моя проект (напр. WebApplication1 ), сега промяна на launchUrl влизане в "launchUrl": "swagger" реши проблема ми.
- Ако това не работи и имате други профили, направете същото и тествайте.