asp.net core swagger RoutePrefix
我有一个api站点,它使用swagger来公开api。 dotnet核心版本是2.1,而swagger是Swashback.AspNetCore 3.0.0。 我的api站点位于反向代理(nginx)后面,nginx url是,映射到backen服务器 我的招摇过市配置是: 配置服务:asp.net core swagger RoutePrefix,asp.net,.net,asp.net-core,.net-core,swagger,Asp.net,.net,Asp.net Core,.net Core,Swagger,我有一个api站点,它使用swagger来公开api。 dotnet核心版本是2.1,而swagger是Swashback.AspNetCore 3.0.0。 我的api站点位于反向代理(nginx)后面,nginx url是,映射到backen服务器 我的招摇过市配置是: 配置服务: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title =
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "aa.IM.CustomerApi", Version = "v1" });
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
var controllerXmlPath = Path.Combine(basePath, "aa.IM.CustomerApi.xml");
var entityXmlPath = Path.Combine(basePath, "aa.IM.Entity.xml");
c.IncludeXmlComments(controllerXmlPath);
c.IncludeXmlComments(entityXmlPath);
//c.DescribeAllEnumsAsStrings();
});
配置:
app.UseSwagger(c =>
{
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("v1/swagger.json", "aa.IM.CustomerApi");
});
然后,我可以进入ui
然后ui可以显示所有的完美,但是,当我执行api(uri是cus/settings)时,我发现请求url是错误的,正确的url是错误的
如何修复我的招摇过市配置来解决问题?
我试过很多方法,比如
但是这些都不能解决我的问题。你可以尝试使用app.UseRewriter重写你的URL
app.UseRewriter(new RewriteOptions()
.AddRewrite(@"/cus/settings", "Chat$1", skipRemainingRules: true));
请注意,这是未经测试的,只是从我的脑海中写出来的。谢谢大家,我通过以下配置解决了它:
app.UseSwagger(c =>
{
c.PreSerializeFilters.Add((doc, requset) =>
{
var root = "https://www.aa.com/chat/";
doc.Host = root;
});
});
在dotnetframework版本中,这可以通过设置RootUrl进行配置,但在dotnetcore版本中,只有RoutePrefix可以设置,我尝试它不能正常工作。