ModifyRequestBody GatewayFilter ファクトリ

ゲートウェイによってダウンストリームに送信される前に、ModifyRequestBody フィルターを使用してリクエスト本文を変更できます。

このフィルターは、JavaDSL を使用してのみ構成できます。

次のリストは、リクエスト本文 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() を返して、リクエストに欠落している本文を割り当てる必要があります。