Swagger UI end point is not same as dev in staging ( excluding domain names)
IIS Configuration
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
app.UseSwagger(c=>
{
//Change the path of the end point , should also update UI middle ware for this change
c.RouteTemplate = "api-docs/{documentName}/swagger.json";
});
app.UseSwaggerUI(c =>
{
//Include virtual directory if site is configured so
c.SwaggerEndpoint(Configuration["Appsettings:VirtualDirectory"]+"api-docs/v1/swagger.json", "Api v1");
});
services.AddSwaggerGen(c =>
{
var xmlDocPath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "Api.xml");
c.IncludeXmlComments(xmlDocPath);
c.DescribeAllEnumsAsStrings();
with the above configuration
Development
"AppSettings": {
"VirtualDirectory": "/"
}
Staging
"AppSettings": {
"VirtualDirectory": "/Api/"
}
The end point for UI on the dev machine with staging ON
http://localhost:5001/api-docs/v1/swagger.json
but the same one on the staging server
http://xxxx:5002/swagger/Api/api-docs/v1/swagger.json
instead of ( what it should be)
http://xxxx:5002/Api/api-docs/v1/swagger.json
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…