Asp.net core ASP.NET核心在启动时解析url?
我想能够注册某些url的,考虑到资源的实际url。特别是:我的Web API文档的大摇大摆的终点Asp.net core ASP.NET核心在启动时解析url?,asp.net-core,swagger-ui,urlhelper,actioncontext,Asp.net Core,Swagger Ui,Urlhelper,Actioncontext,我想能够注册某些url的,考虑到资源的实际url。特别是:我的Web API文档的大摇大摆的终点 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseMvc(); app.UseSwagger(); app.UseSwaggerUi(c => { c.Swagger
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc();
app.UseSwagger();
app.UseSwaggerUi(c =>
{
c.SwaggerEndpoint($"/swagger/v1/swagger.json", "API documentation");
//c.SwaggerEndpoint($"/TheGreatestWebAPI/swagger/v1/swagger.json", "API documentation");
});
}
在我的开发环境中,我将在上托管Web PI,在这种情况下,Swagger希望在此处与其端点对话:
在生产或登台环境中,Web API将作为Web应用程序托管在IIS中,类似于https://test.contoso.com/TheGreatestWebAPI
和斯威格想谈谈:
…因此后者注释了终点注册
我想做的是使用以下内容:
c.SwaggerEndpoint($"~/swagger/v1/swagger.json", "API documentation");
任何使用过ASP.NET web表单的人都应该熟悉这一点,Page.ResolveUrl()
,从我所看到的情况来看,相同的功能应该可以通过UrlHelper.Content()
获得。但是,该函数需要UrlHelper类的实例,而相关构造函数需要ActionContext实例
我不知道在此上下文中如何正确实例化UrlHelper
(Startup.Configure()
中的UseSwaggerUI()
)
-该方法的文档说明路径可以是完全限定的,也可以是相对于页面的 在我的例子中,只需删除路径的第一部分就足够了:
c.SwaggerEndpoint("v1/swagger.json", "API documentation");
有点管用。删除前导“/swagger”和“/TheGreatestAPI/swagger”实际上会导致在
https://localhost:5000/swagger/v1/swagger.json
和https://test.contoso.com/TheGreatestWebAPI/swagger/v1/swagger.json
。但是,https://localhost:5000/swagger/index.html
尝试从https://localhost:5001/swagger/index.html/v1/swagger.json
-它本质上是使用相对url扩展GUI文件名,而不是使用folder@SigurdGarshol我懂了。。我通常只转到/swagger
,而不直接转到/swagger/index.html
,但如果它在某些时候不起作用,它肯定不理想。您也可以只为站点的根添加一个配置值,并在配置swagger时传递该值。可能只是在我们现在使用的swagger版本中,但是/swagger会自动重定向到/swagger/index.html。所以我们在那里没有解决办法(