More Swagger Customization
Can we alter the default URL of the swagger plugin to be something like: /api/docs
instead of the default: /api/swagger-ui ??
Can it be done? What do I have to change apart from the default directory?
Not really it’s hard-coded into SwaggerFeature
https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Api.Swagger/SwaggerFeature.cs#L38
The name is required because the underlying directory is named swagger-ui/.
One approach is to redirect redirect /docs to /swagger-ui, e.g:
this.RawHttpHandlers.Add(httpReq =>
return httpReq.PathInfo == “/docs”
? new RedirectHttpHandler {
RelativeUrl = "/swagger-ui }
: null;
});
Jezz Santos:
OK, do you reckon I could create my own variant of SwaggerFeature() class and change what is hardcoded there? Or might there be other stuff scattered elsewhere in the code do you think?
If you want, you can bundle the swagger assets as part of your app and rename the directory to /docs.
You’d also need to copy the Swagger Classes in:
https://github.com/ServiceStack/ServiceStack/tree/master/src/ServiceStack.Api.Swagger
and just rename swagger-ui to docs.
Jezz Santos:
Thanks. found a slightly different way of doing it, by creating my own IPlugIn, passing in the SwaggerFeature, and replacing the Metadata registration and requesthandler to do what I needed. Seems to be sustainable for now.