在我的 Spring Boot 应用程序中,我使用
swagger
作为文档。我需要将默认的 http://localhost:8080/swagger-ui.html
路径更改为 http://localhost:8080/docs/swagger-ui.html
,因为我有以下控制器,它与默认的 swagger-ui 路径冲突。
@RequestMapping("/{coll}")
public List<Map> getData(@PathVariable String coll){
....
return list;
}
我搜索了很多资源(例如:https://github.com/springfox/springfox/issues/1443)并提出了很多解决方案,但没有任何对我有用。由于这是 Swagger 中非常基本的要求,因此将
swagger-ui.html
默认路径更改为自定义路径的最佳方法是什么?
您可以使用以下代码进行更改。注意我使用的是 Apache CXF。因此,如果您是 jersey,请进行相应更改。基本上,您需要在配置中设置 basePath 和 Host。
@Bean
public Server rsServer() {
JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
endpoint.setBus(bus);
endpoint.setAddress("/gbservice");
endpoint.setServiceBeans(Arrays.<Object>asList(new HelloResourceImpl()));
endpoint.setFeatures(Arrays.asList(swagger2Feature()));
endpoint.setProvider(jsonProvider());
return endpoint.create();
}
@Bean("swagger2Feature")
public Feature swagger2Feature() {
Swagger2Feature result = new Swagger2Feature();
result.setTitle("Spring Boot + CXF + Swagger Example");
result.setDescription("Spring Boot + CXF + Swagger Example description");
result.setBasePath("/gb");
result.setHost("http://localhost:8080/");
result.setVersion("v1");
result.setContact("Gaurao Burghate");
result.setSchemes(new String[] { "http", "https" });
result.setPrettyPrint(true);
return result;
}
所以之前我的url是http://localhost:8080/services/swagger.json,更改上面的配置后,URL变成http://localhost:8080/services/gb/swagger.json
注意 您必须需要配置主机,并且您的上下文根不应为空。