在 ASP.NET Core 中以编程方式获取 Swagger URL

朗力士

我正在使用 ASP.NET Core 5 和 Swagger。我知道如何使用 Swagger,而且它工作正常

Swagger 提供服务foo:5001/swagger- 但我需要在运行时以编程方式确定该 URL。

我该怎么做?


我已经尝试过:

  1. 通过注入 IEnumerable<EndpointDataSource>一些帮助器/控制器类来获取它,但这向我展示了除 swagger 之外的所有路线。

  2. 设置端点路由和检查时获取它IEndpointRouteBuilder,但它再次向我显示了除 swagger 之外的所有路由。

伊戈尔·戈达

根据https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/master/src/Swashbuckle.AspNetCore.SwaggerUI/SwaggerUIMiddleware.cs上的消息来源,您可以使用类的实例SwaggerUIOptions

  1. 在 DI 容器中注册实例:
var options = new SwaggerUIOptions 
{
    RoutePrefix = "swagger"
};
options.SwaggerEndpoint("/swagger/v1/swagger.json", "waiting_list v1");
services.AddSingleton(options);
  1. 使用配置的实例:
app.UseSwaggerUI(app.ApplicationServices.GetRequiredService<SwaggerUIOptions>());
  1. 将实例注入任何控制器/类:
public WeatherForecastController(ILogger<WeatherForecastController> logger, SwaggerUIOptions swaggerOptions)
{
}

属性RoutePrefix包含 swagger 前缀(不带前导“/”)

这个想法只有在选项对象传递给UseSwaggerUI方法时才有效(从 6.0.0 版开始可用)。如果UseSwaggerUI使用回调(如 a UseSwaggerUI(a => { a.RoutePrefix = string.Empty; })调用它将不起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET Core中更改Swagger的基本URL

在ASP.Net Core中获取基本URL

从IDocumentFilter,swashbuckle asp net core,swagger中的Method和Controller获取所有CustomAttributes

ASP.NET MVC 6(ASP.NET Core或ASP.NET5)中的友好URL

ASP.NET Core-如何从URL获取参数

获取 RedirectToPage 生成的 URL ASP.NET Core

使用ASP.NET Core获取绝对URL

ASP.NET Core Swagger无法在Chrome中工作并出现CORS错误

如何在运行于ASP.NET Core 3.1的启用OData的Web API中添加Swagger

ASP.NET Core API 的 GET 请求中的可选参数不适用于 Swagger

在ASP .NET CORE / MVC 6应用程序中设置Swagger时出现500错误

使用ASP.NET Core Web API重命名Swashbuckle 6(Swagger)中的模型

如何在ASP.NET Core的Swagger中包含XML注释文件

如何在ASP.NET Core Swagger(Swashbuckle.AspNetCore)中定义控制器描述?

在Swagger中为ASP .NET Core 3.1添加标题过滤器

如何使用 Swashbuckle 在 ASP.NET Core 中为 Swagger UI 进行 OAuth2 授权

如何在 ASP.NET Core API 中的 Swagger 中将注释显示为描述段落

ASP.NET Core API:身份验证弹出窗口未显示在 Swagger UI 中

Asp.Net Core 中的 Request.Url.PathAndQuery

ASP.NET Core中的URL编码和解码

在asp.net core 3中创建漂亮的url

配置文件中的ASP.NET Core基本URL

在 ASP .Net Core MVC 的 url 中添加 #section

在ASP.NET Core中渲染包含URL的Razor视图

在ASP.net Core 3.0中更改身份登录URL

ASP.NET Core中的API URL错误

在ASP.Net MVC Core 2.0中设置登录URL

如何在ASP.Net Core中创建特定的URL

在 asp.net core api 中创建回调 url