測試環境用了nginx作二級url作映射,但swagger的 http://www.xxx.com/二級url/v2...
JSON裏面的host地址仍是一級目錄,不自動對應nginx作了映射的二級url,所以使用swagger-ui.html在線調試API接口,就出問題,請求不到服務報404。
在配置直接設置Docke的host就能夠了,網上搜索一堆徹底沒找到這個問題的解決方案,最後翻了源碼找到host()方法。html
application.ymlnginx
swagger: host: www.xxx.com/二級url
Swagger配置類web
@Configuration public class SwaggerConfig { @Value("${swagger.host}") private String swaggerHost; @Bean public Docket customDocket() { Docket docket=new Docket(DocumentationType.SWAGGER_2); if(StringUtils.isNotBlank(swaggerHost)){ docket=docket.host(swaggerHost); } docket=docket.apiInfo(apiInfo()) .useDefaultResponseMessages(false) .select() .apis(RequestHandlerSelectors.basePackage("com.xxx.xxx.web")) .paths(PathSelectors.any()) .build(); return docket; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("API接口文檔") .description("API接口文檔") .contact(new Contact("xx", "http:/xxx.com", "xxxx@qq.com")) .version("1.0") .build(); } }