php エディター Apple は、Spring Gateway で RequestBody を変更する方法を紹介します。 Spring Gateway は Spring フレームワークに基づく API ゲートウェイであり、HTTP リクエストの処理と転送に使用されます。 Spring Gateway では、クライアントから送信されたリクエストボディのデータを受信するために RequestBody が使用されます。 RequestBody を変更する必要がある場合は、カスタム フィルターまたはインターセプターを使用して変更できます。まず、カスタム フィルターまたはインターセプターを作成し、フィルターまたはインターセプター内のリクエスト本文データを取得して変更する必要があります。最後に、変更されたデータは、後続の処理のためにリクエスト本文に戻されます。このようにして、Spring Gateway で RequestBody を変更できます。
リクエストボディを指定された URI にルーティングする前に変更したいと考えています。私が使用しているドキュメントに基づく
org.springframework.cloud.gateway.filter.factory.rewrite.modifyrequestbodygatewayfilterfactory テキストを変更します。サーバーを起動すると、次のエラーが発生してサーバーが起動できません。 原因: 要素 [spring.cloud.gateway.routes[0].filters[0].modifyrequestbody.class] がバインドされていません。 \n\nアクション:\n\nアプリケーションの構成を更新します\n","context":"Default"}
以下はサンプルのフィルターと書き換え関数です
65bee659f312a以下は書き換えられた関数です
65bee659f313a以下はyamlです
routes: - id: order-route-1 uri: http://localhost:8999/ predicates: - Path=/some/path1 - Method=POST filters: - ModifyRequestBody: class: com.xyz.filters.SomeFilter value: application/json, application/xml enabled: true
コードにいくつかの問題があります:
クラスは必要ありません。ルーティング設定から
modifyrequestbody を直接使用するだけです。
modifyrequestbody では実行できないことを実行するために本当に必要な場合は、@component を追加して Bean にする必要があります。
inclass: 元のリクエスト本文の構造を表す完全修飾クラス名。
outclass: 変更されたリクエスト本文構造の完全修飾クラス名を表します。
rewritefunction: rewritefunction インターフェイスを実装する完全修飾クラス名を参照します。このインターフェイスは、リクエスト本文をoriginaltypeからnewtypeに変換するために使用されます。
contenttype (オプション): 要求されたコンテンツ タイプを変更する場合は、このパラメータを指定します。
oldtype を
newtype に変換すると仮定して、
rewritefunction の実装を次に示します。
リーリー
以上がSpring GatewayのRequestBodyを変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。