大摇大摆地向请求添加上下文路径
Add context path to requests in swagger
我有一个招摇的尤里卡服务。尤里卡在 http://localhost:8050
服务按名称/服务进行。问题是当我打开 swagger 并尝试发出请求时,它会将它发送到 http://localhost:8050/service/somecontroller
。该服务有一个上下文路径 "path",所以它应该是 http://localhost:8050/service/path/somecontroller
。这是swagger的配置:
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
.build();
}
Springfox 针对您的案例有一个未解决的问题 (#2817),您可以尝试其中一些用户提出的解决方法。
设法像这样更改 swagger 的上下文路径:
@Value("${contextPath}")
private String contextPath;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
//.host(retrieveHostHostname())
.pathProvider(new PathProvider() {
@Override
public String getApplicationBasePath() {
return contextPath;
}
@Override
public String getOperationPath(String s) {
return s.replace("somecontroller", contextPath+"/somecontroller");
}
@Override
public String getResourceListingPath(String s, String s1) {
return "/";
}
}).select()
.apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
.build();
}
我有一个招摇的尤里卡服务。尤里卡在 http://localhost:8050
服务按名称/服务进行。问题是当我打开 swagger 并尝试发出请求时,它会将它发送到 http://localhost:8050/service/somecontroller
。该服务有一个上下文路径 "path",所以它应该是 http://localhost:8050/service/path/somecontroller
。这是swagger的配置:
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
.build();
}
Springfox 针对您的案例有一个未解决的问题 (#2817),您可以尝试其中一些用户提出的解决方法。
设法像这样更改 swagger 的上下文路径:
@Value("${contextPath}")
private String contextPath;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
//.host(retrieveHostHostname())
.pathProvider(new PathProvider() {
@Override
public String getApplicationBasePath() {
return contextPath;
}
@Override
public String getOperationPath(String s) {
return s.replace("somecontroller", contextPath+"/somecontroller");
}
@Override
public String getResourceListingPath(String s, String s1) {
return "/";
}
}).select()
.apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
.build();
}