getaway-请求转发

getaway-请求转发

起男 1,149 2021-11-09

getaway-请求转发

forward就是一个转发的操作含义,SpringCloudGateway网关是基于webflux技术开发出来的,这样除了可以实现其下游资源的转发之外,也可以在网关的内部定义所需的服务接口,此时就可以在网关中配置采用forward://路径的形式实现

如果在application里配置了以forward://开头的路径,这个时候就会使用ForwardRoutingFilter进行处理

使用

  1. 在网关内部编写处理接口

    @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;
        }
    }
    
  2. 在配置文件中设置静态路由

    spring:
      cloud:
        gateway:
          routes:  #定义静态路由
            - id: forward_test
              uri: forward:///myforward   #配置本地转发
              predicates:
                - Path=/myforward #配置访问路径
              filters:
                - PrefixPath=/gateway #配置路径前缀
    
  3. 请求/myforward地址,此时会发现请求被转发到了内部的处理接口上