https://www.jianshu/p/12fe7d507052

SpringCloudGateway提供了一个名为ProxyExchange的实用程序对象,您可以在常规Spring web handler中使用它作为方法参数。它通过镜像HTTP谓词的方法支持基本的下游HTTP交换。对于MVC,它还支持通过forward()方法转发到本地handler。要使用ProxyExchange,只需在类路径中包含正确的模块(SpringCloudGatewayMVC或SpringCloudGatewayWebFlux)。

MVC 示例(将请求代理到远程服务器下游的“/test”):

相同示例,使用 Webflux实现:

ProxyExchange 上有一些方便的方法,使handler 方法能够发现和增强传入请求的URI路径。例如,您可能希望提取路径的尾随元素以将其传递到下游:

SpringMVC或WebFlux的所有特性都可用于网关handler 方法。例如,您可以注入请求头和查询参数,并且可以使用映射注释中的声明来约束传入的请求。有关这些功能的更多详细信息,请参阅SpringMVC中@requestmapping的文档。

可以使用ProxyExchange上的header()方法将头添加到下游响应中。

您还可以通过向get()等方法添加映射器来操作响应头(响应头中你可以添加任何你想加的内容)。映射器是一个接受传入ResponseEntity 并将其转换为传出响应的函数。

对于不向下游传递的“敏感”头(“cookie”和“authorization”)和“代理”头(x-forwarded-*)提供了一流的支持。



作者:侯文_ad82
链接:https://www.jianshu/p/12fe7d507052
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

更多推荐

十三、Spring Cloud Gateway-使用Spring MVC or Webflux构建简单路由