By default when you enable swagger in ASP.NET Core project it's available on url:
http://localhost:<random_port>/swagger/ui
I would like to use a different base url instead of /swagger/ui
. How/where can i configure that?
I found that for older versions you can configure the RootUrl
but there aren't similiar method in ASP.NET Core:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
The new swagger version provides you with a property called RoutePrefix.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
The UseSwaggerUi()
extension method to enable the middleware in the Configure method of the StartUp class takes two variables. A baseRoute
which is on swagger/ui
by default, and swaggerUrl
which is on swagger/v1/swagger.json
by default. Simply provide a different baseRoute.
//Swagger will be available under '/api' url
app.UseSwaggerUi("api");
If people would like to learn more about configuring Swagger for ASP.NET Core, I've written a blogpost to get started: https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core-1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/
You can do this as well in Config
app.UseSwaggerUI(c =>
{
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY API");
});