Добавить контекстный путь к запросам в swagger - PullRequest
0 голосов
/ 08 мая 2020

У меня есть сервис эврика, в котором есть чванство. Эврика находится на http://localhost: 8050 , а служба называется по имени / услуге. Проблема в том, что когда я открываю swagger и пытаюсь сделать запрос, он отправляет его на http://localhost:8050/service/somecontroller. У службы есть контекстный путь "path", поэтому он должен быть http://localhost:8050/service/path/somecontroller. Это конфигурация чванства:

@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select()
            .apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
            .build();
    }

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Springfox имеет открытую проблему ( # 2817 ) для вашего случая, вы можете попробовать один из обходных путей, предложенных некоторыми пользователями.

0 голосов
/ 11 мая 2020

Удалось изменить контекстный путь чванства вот так:

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