Как изменить basePath для Springfox Swagger 2.0

Я запускаю службу, где пользовательский интерфейс Swagger доступен по адресу:

http://serviceURL/swagger-ui.html

Однако он находится за прокси-сервером, например:

http://proxyURL/serviceName

Сгенерированные URL-адреса с помощью интерфейса Swagger выглядят следующим образом:

http://proxyURL/

вместо фактического URL с именем службы как суффикс. Насколько я понимаю, это означает манипулирование свойством basePath. Согласно документации:

Документация API Swagger API больше не может описывать операции по различные базовые пути. В 1.2 и ранее каждый ресурс мог иметь отдельный basePath. В 2.0 эквиваленты basePath (схемы + host + basePath) определены для всей спецификации.

@Api (basePath) устарел, и он не говорит, что использовать и как его использовать. Как правильно создать пути, созданные Swagger?

Я использую Spring Boot, Springfox Swagger и аннотации.

Ответ 1

@Bean
public Docket newsApi(ServletContext servletContext) {
    return new Docket(DocumentationType.SWAGGER_2).pathProvider(new RelativePathProvider(servletContext) {
        @Override
        public String getApplicationBasePath() {
            return "/serviceName" + super.getApplicationBasePath();
        }
    }).host("proxyURL");
}