Создал Gateway сервис и сервис товаров, все конектится через eureka. вот зависимость для gateway
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
поднимаю все это в docker-compose,
version: '3.3'
services:
eureka-service:
image: fnasibov/eureka
ports:
- 8761:8761
networks:
- spring-cloud-network
gateway-service:
image: fnasibov/gateway
ports:
- 8860:8659
networks:
- spring-cloud-network
product-service:
image: fnasibov/product
environment:
DB_USER: "postgres"
DB_PASSWORD: "postgres"
depends_on:
- eureka-service
networks:
- spring-cloud-network
products-db:
image: postgres
restart: always
ports:
- 5432:5432
volumes:
- ./database:/var/lib/postgresql
networks:
- spring-cloud-network
networks:
spring-cloud-network:
driver: bridge
Проблема в том, что у сервиса товаров есть есть поддержка HATEOAS и он отдает не только инфу из бд но и доп ссылки
{
"_links": {
"products": {
"href": "http://product-service/products{?page,size,sort}",
"templated": true
},
"profile": {
"href": "http://product-service/profile"
}
}
}
Но отдает он эти ссылки не правильные, у них base url идет имя контейнера, мне нужно что бы там была ссылка на gateway-service
https://srv003.cloud.gcomapps.ru:8860
как могу исправить этот момент? Или например сделать их относительными?
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
- id: product-service
predicates:
- "Path=/products/**"
filters:
- StripPrefix=1
uri: "http://product-service/products"
- id: attribute-service
predicates:
- "Path=/attributes/**"
filters:
- StripPrefix=1
uri: "http://attribute-service/attributes"
forwarded:
enabled: true
x-forwarded:
enabled: true
for-enabled: true
proto-enabled: true
так же пробовал отключать forwarded и x-forwarded
Нашел такой вариант, в HATEOAS сервисе, нужно включить поддержку X-FORWARD-* headers(Начиная со Spring Boot 2.* и Spring Fraemwork 5). Точнее добавить фильтр.
@Bean
FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
FilterRegistrationBean<ForwardedHeaderFilter> bean = new FilterRegistrationBean<>();
bean.setFilter(new ForwardedHeaderFilter());
return bean;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задание:
Переместите framesetVisible(true); в последнюю строку метода
Я хочу получить JSON с большим количеством данных и реализовать в приложении отображение этих данных с пагинациейСервер не принимает никаких...