#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 у вас будет подробная информация о маршрутизации, чтобы понять, какой компонент что делает