大摇大摆地向请求添加上下文路径

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();
    }