ModifyRequestBody
フィルター
ゲートウェイによってダウンストリームに送信される前に、ModifyRequestBody
フィルターを使用してリクエスト本文を変更できます。
このフィルターは、JavaDSL を使用してのみ構成できます。 |
次のリストは、リクエスト本文フィルターを変更する方法を示しています。
GatewaySampleApplication.java
import static org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions.modifyRequestBody;
import static org.springframework.cloud.gateway.server.mvc.handler.GatewayRouterFunctions.route;
import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.http;
import static org.springframework.cloud.gateway.server.mvc.predicate.GatewayRequestPredicates.host;
import org.springframework.http.MediaType;
@Configuration
class RouteConfiguration {
@Bean
public RouterFunction<ServerResponse> gatewayRouterFunctionsAddReqHeader() {
return route("rewrite_request_obj")
.route(host("*.rewriterequestobj.org"), http("https://example.org"))
.before(modifyRequestBody(String.class, Hello.class, MediaType.APPLICATION_JSON_VALUE,
(request, s) -> new Hello(s.toUpperCase())))
.build();
}
record Hello(String message) { }
}
リクエストに本文がない場合、RewriteFilter は null に渡されます。Mono.empty() を返して、リクエストに欠落している本文を割り当てる必要があります。 |