springdoc-openapi-пользовательский интерфейс за api kong

#nginx #kong #springdoc-openapi-ui

Вопрос:

Я использую эту реализацию OpenAPI 3 в веб-проекте Spring Boot.

 <dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.5.2</version>
</dependency>
 

Моя конфигурация для OpenAPI:

 @Configuration
public class SpringFoxConfig {

    @Value("${openapi.server.baseUrl}")
    private String baseUrl;

    @Bean
    public OpenAPI customOpenAPI() {

        Server server = new Server();
        server.setUrl(baseUrl);

        List<Server> servers = new ArrayList<>();
        servers.add(server);

        return new OpenAPI()
            .components(new Components())
            .servers(servers)
            .info(new Info().title("Service REST API").description(
                "Generic Service REST API"));
    }
}
 

Значение базового значения равно: https://apps.server.com/test/myservice

Эта служба работает в рое докеров и доступна через Nginx и API-шлюз Kong.

 Web browser -> Nginx -> Kong -> Service
 

Я стараюсь как можно меньше прикасаться к серверу Nginx и создал службу (протокол: http, порт: 8080, хост: имя службы в Конге) и маршрут (пути: /myservice/ и /myservice) с помощью графического интерфейса Konga.

При попытке получить доступ к swagger-ui.html в https://apps.server.com/test/myservice/swagger-ui.html -> он перенаправляется на http://service-name-in-kong:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

Теперь я не понимаю, почему это происходит?

Комментарии:

1. Является ли nginx в вашей цепочке единственной формой Kong или дополнительной ? Когда вы говорите о перенаправлении, это перенаправление 301 или восходящее, достигнутое конгом ? Вы пробовали добавить kong-debug: 1 http-заголовок, чтобы получить более подробную информацию ?

2. Nginx-это дополнительный. Хм, возможно, я неправильно понял перенаправление. На самом деле это 302, и новый URL-адрес становится именем службы в Конге вместо apps.server.com/test/myservice .

3. Я думаю, что удаление Nginx может быть хорошей идеей для упрощения, с помощью заголовка http у вас будет подробная информация о маршрутизации, чтобы понять, какой компонент что делает