ModifyRequestBody GatewayFilter 工廠
您可以使用 ModifyRequestBody 過濾器在閘道器將請求正文傳送到下游之前對其進行修改。
| 此過濾器只能透過 Java DSL 進行配置。 |
以下列表展示瞭如何修改請求正文 GatewayFilter
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route("rewrite_request_obj", r -> r.host("*.rewriterequestobj.org")
.filters(f -> f.prefixPath("/httpbin")
.modifyRequestBody(String.class, Hello.class, MediaType.APPLICATION_JSON_VALUE,
(exchange, s) -> Mono.just(new Hello(s.toUpperCase())))).uri(uri))
.build();
}
static class Hello {
String message;
public Hello() { }
public Hello(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
如果請求沒有正文,則 RewriteFilter 會傳入 null。應該返回 Mono.empty() 以分配請求中缺失的正文。 |