getaway-请求转发
forward就是一个转发的操作含义,SpringCloudGateway网关是基于webflux技术开发出来的,这样除了可以实现其下游资源的转发之外,也可以在网关的内部定义所需的服务接口,此时就可以在网关中配置采用forward://路径
的形式实现
如果在application里配置了以forward://
开头的路径,这个时候就会使用ForwardRoutingFilter进行处理
使用
-
在网关内部编写处理接口
@RestController @RequestMapping("gateway") public class GetawayController { @RequestMapping("myforward") public Map<String,String> forward(ServerWebExchange exchange){ Map<String,String> map = new HashMap<>(); map.put("mag","forward"); map.put("requestId",exchange.getRequest().getId()); map.put("requestPath",exchange.getRequest().getPath().toString()); return map; } }
-
在配置文件中设置静态路由
spring: cloud: gateway: routes: #定义静态路由 - id: forward_test uri: forward:///myforward #配置本地转发 predicates: - Path=/myforward #配置访问路径 filters: - PrefixPath=/gateway #配置路径前缀
-
请求
/myforward
地址,此时会发现请求被转发到了内部的处理接口上