Par défaut, lorsque vous activez swagger dans un projet ASP.NET Core, il est disponible dans l'URL:
http://localhost:<random_port>/swagger/ui
Je voudrais utiliser une URL de base différente au lieu de /swagger/ui
. Comment/où puis-je configurer cela?
J'ai trouvé que pour les versions plus anciennes, vous pouvez configurer la RootUrl
mais il n'y a pas de méthode similaire dans ASP.NET Core:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
La nouvelle version de swagger vous fournit une propriété appelée RoutePrefix.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
Vous pouvez le faire aussi dans Config
app.UseSwaggerUI(c =>
{
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY API");
});
La méthode d'extension UseSwaggerUi()
permettant d'activer le middleware dans la méthode de configuration de la classe StartUp utilise deux variables. baseRoute
qui est sur swagger/ui
par défaut et swaggerUrl
qui est sur swagger/v1/swagger.json
par défaut. Il suffit simplement de fournir un itinéraire de base différent.
//Swagger will be available under '/api' url
app.UseSwaggerUi("api");
Si vous souhaitez en savoir plus sur la configuration de Swagger pour ASP.NET Core, j'ai écrit un article de blog pour commencer: https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core- 1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/