ModifyResponseBody GatewayFilter Factory

您可使用 ModifyResponseBody 过滤器修改响应正文,然后再将其送回客户端。

此过滤器只能使用 Java DSL 来配置。

以下清单展示了如何修改响应正文 GatewayFilter

@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
    return builder.routes()
        .route("rewrite_response_upper", r -> r.host("*.rewriteresponseupper.org")
            .filters(f -> f.prefixPath("/httpbin")
        		.modifyResponseBody(String.class, String.class,
        		    (exchange, s) -> Mono.just(s.toUpperCase()))).uri(uri))
        .build();
}

如果响应没有正文,则会传递 RewriteFilter。应该返回 Mono.empty() 以在响应中分配一个缺失的正文。