Spring Cloud Gateway 路由到自身

问题描述 投票:0回答:2

我在 Spring Cloud Gateway 的实现中有一个场景(仅供参考,调用该服务自定义 api 网关)。在此“自定义 API 网关”中,我想定义路由、过滤器、谓词并将请求转发到“自定义 API 网关”中的自定义端点?有办法实现吗?除了转发到“自定义 api 网关”中的 URI 之外,一切正常

这是一个例子

id: UpdateUser
uri:  SHOULD NOT GO DOWNSTREAM (endpoint is in 'custom api gateway')
predicates:
 - path=/api/users
filters:
 - ValidateSession

谢谢塞吉

spring routes cloud gateway
2个回答
4
投票

您可以在 Spring Cloud Gateway 中定义一些控制器并编写路由将请求路由到这些控制器,但是您应该添加 uri 更改过滤器,例如

prefixPath
stripPrefix
来将 uri 部分更改为不同的。

如果您不更改 uri,请求将导致 413 请求实体太大错误代码,如果您打开调试级别日志,您将看到网关正在一遍又一遍地将此请求传递给自身。


0
投票

您只需将 uri 映射为“forward”-> uri:forward:///local-endpoint。更多详细信息请参见此处https://docs.spring.io/spring-cloud-gateway/reference/spring-cloud-gateway/global-filters.html#forward-routing-filter

gateway: 
  routes:
   - id: path_route
     uri: forward:///local-endpoint
     predicates:
     - Path=/somepath
© www.soinside.com 2019 - 2024. All rights reserved.