Мой шлюз API работает на порту 8090 и подключен к серверу Eureka.
Вот файл свойств шлюза
Код: Выделить всё
spring.application.name=api-gateway-server
server.port=8090
eureka.client.serviceUrl.defaultZone=http://localhost:9100/eureka
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.discovery.locator.lower-case-service-id=true
logging.level.root=DEBUG
Код: Выделить всё
http://localhost:8090/currency-conversion-service/currency-convertor-feign/from/USD/to/INR/456

И URI в приложении службы конвертации валют был изменен на
Код: Выделить всё
/currency-convertor-v2/from/USD/to/INR/456
Код: Выделить всё
/currency-convertor-feign/from/USD/to/INR/456
Код: Выделить всё
http://localhost:8090/currency-conversion-service/currency-convertor-feign/from/USD/to/INR/456
Код: Выделить всё
/currency-convertor-v2/from/USD/to/INR/456
А вот код, который я пытался написать в приложении-шлюзе
Код: Выделить всё
package com.kingshuk.springcloudprojects.apigatewayserver;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ApiRoutingConfiguration {
@Bean
public RouteLocator applicationRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route(p -> p.path("/currency-convertor-feign/**")
.filters(gatewayFilterSpec -> gatewayFilterSpec
.rewritePath("/currency-convertor-feign/(?.*)"
, "/currency-convertor-v2/${remaining}}"))
.uri("http://currency-conversion-service/"))
.build();
}
}
Я новичок в шлюзе Spring Cloud, поэтому было бы здорово, если бы я мог получить некоторую помощь по этому вопросу.
Спасибо
Мобильная версия