测试环境用了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(); } }