package com.mycompany.myapp.apidoc; import com.mangofactory.swagger.core.SwaggerPathProvider; import org.springframework.web.util.UriComponentsBuilder; import javax.inject.Inject; import javax.servlet.ServletContext; public class ApiPathProvider implements SwaggerPathProvider { private SwaggerPathProvider defaultSwaggerPathProvider; @Inject private ServletContext servletContext; private String docsLocation; public ApiPathProvider(String docsLocation) { this.docsLocation = docsLocation; } @Override public String getApiResourcePrefix() { return defaultSwaggerPathProvider.getApiResourcePrefix(); } public String getAppBasePath() { return UriComponentsBuilder .fromHttpUrl(docsLocation) .path(servletContext.getContextPath()) .build() .toString(); } @Override public String getSwaggerDocumentationBasePath() { return UriComponentsBuilder .fromHttpUrl(getAppBasePath()) .pathSegment("api-docs/") .build() .toString(); } @Override public String getRequestMappingEndpoint(String requestMappingPattern) { return defaultSwaggerPathProvider.getRequestMappingEndpoint(requestMappingPattern); } public void setDefaultSwaggerPathProvider(SwaggerPathProvider defaultSwaggerPathProvider) { this.defaultSwaggerPathProvider = defaultSwaggerPathProvider; } }