Мой шлюз API работает на порту 8090, и он подключен к серверу Eureka < /p>
, вот файл свойств в шейке < /p>
Файл свойств < /p>
Файл.
Код: Выделить всё
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
< /code>
Старый API через шлюз был < /p>
http://localhost:8090/currency-conversion-service/currency-convertor-feign/from/USD/to/INR/456
unerviors sfice-convers Изменено на < /p>
/currency-convertor-v2/from/USD/to/INR/456
< /code>
из < /p>
/currency-convertor-feign/from/USD/to/INR/456
< /code>
Так что я хочу, чтобы, когда клиенты попадают в URL API Gateway < /p>
http://localhost:8090/currency-conversi ... to/INR/456
< /code>
запрос перенаправлен на < /p>
/currency-convertor-v2/from/USD/to/INR/456
< /code>
В валютно-конверсионном обслуживании < /p>
А вот код, который я пытался написать в приложении шлюза < /p>
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();
}
}
< /code>
Но это не работает. Продолжайте получать ошибки. В журналах API Gateway нет исключения, как таковые.>
Подробнее здесь: https://stackoverflow.com/questions/663 ... edirection