Asp.net core 在ASP.NET核心中以编程方式获取招摇过市URL
我使用的是ASP.NETCore5和Swagger。我知道如何使用招摇过市,它工作正常 Swagger在Asp.net core 在ASP.NET核心中以编程方式获取招摇过市URL,asp.net-core,swagger,swashbuckle,asp.net-core-5.0,Asp.net Core,Swagger,Swashbuckle,Asp.net Core 5.0,我使用的是ASP.NETCore5和Swagger。我知道如何使用招摇过市,它工作正常 Swagger在foo:5001/Swagger上提供,但我需要在运行时以编程方式确定该URL 我该怎么做 我已经试过了: 将它IEnumerable放入某个helper/controller类,但这显示了除swagger之外的所有路线 在端点路由和检查IEndpointRouteBuilder时获取它,但它再次向我显示了除swagger之外的所有路由 根据的来源,您可以使用类的实例SwaggerUIO
foo:5001/Swagger
上提供,但我需要在运行时以编程方式确定该URL
我该怎么做
我已经试过了:
IEnumerable
放入某个helper/controller类,但这显示了除swagger之外的所有路线
IEndpointRouteBuilder
时获取它,但它再次向我显示了除swagger之外的所有路由
SwaggerUIOptions
:
app.UseSwaggerUI(app.ApplicationServices.GetRequiredService());
public WeatherForecastController(ILogger记录器、SwiggerUIOptions和SwiggerOptions)
{
}
属性RoutePrefix
包含招摇过市前缀(不带前导“/”)
只有当options对象传递给
UseSwaggerUI
方法(从6.0.0版开始提供)时,这种想法才有效。如果使用回调调用UseSwaggerUI
(如UseSwaggerUI(a=>{a.RoutePrefix=string.Empty;})
),它将不起作用。可能不是您想要的,但从IConfiguration中存储的值配置该Swigger路由可能更容易,然后你也可以在其他组件中获取相同的值。¯\_(ツ)_/¯
var options = new SwaggerUIOptions
{
RoutePrefix = "swagger"
};
options.SwaggerEndpoint("/swagger/v1/swagger.json", "waiting_list v1");
services.AddSingleton(options);
app.UseSwaggerUI(app.ApplicationServices.GetRequiredService<SwaggerUIOptions>());
public WeatherForecastController(ILogger<WeatherForecastController> logger, SwaggerUIOptions swaggerOptions)
{
}