1 year ago

#379163

test-img

americanslon

SwaggerUI base path IIS

I have swagger UI defined as follows in my netcore 6 app

app.UseSwaggerUI(x =>
        {              
            var descriptions = apiVersionDescriptionProvider.ApiVersionDescriptions.OrderByDescending(x => x.ApiVersion.MajorVersion).ThenByDescending(x => x.ApiVersion.MinorVersion).ToList();
            var defaultDescription = descriptions.Where(x => x.ApiVersion == defaultApiVersion).SingleOrDefault();
            descriptions.Remove(defaultDescription);
            descriptions.Insert(0, defaultDescription);

            foreach (var description in descriptions)
                x.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant() + (description.ApiVersion == defaultApiVersion ? " (current)" : ""));

            x.DefaultModelsExpandDepth(-1);
            x.InjectStylesheet("/swagger-ui/custom.min.css");
            x.InjectJavascript("/swagger-ui/custom.js");
        });

This works fine and peachy on dev machine. On the server, I have to put my app in {iisroot}/eea/corat folder. All the swagger URLs are broken as they reference straight from {issroot}

So I tried adding x.RoutePrefix = "eea/corat/"; right above var descriptions =

This however makes my application not even run in dev. The application opens to a white screen and crashes in a few seconds.

How do I tell swagger UI about my prefix correctly?

swagger-ui

swashbuckle.aspnetcore

asp.net-core-6.0

0 Answers

Your Answer

Accepted video resources