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
Unfortunately, None of them works for me.
I have tried all of them.
Working solution:
app.UseSwagger(c => {
c.RouteTemplate = "swagger/{documentName}/swagger.json";
});
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("v1/swagger.json", "My API V1");
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With