ホームページ > Java > Spring GatewayのRequestBodyを変更する

Spring GatewayのRequestBodyを変更する

WBOY
リリース: 2024-02-09 19:15:08
転載
489 人が閲覧しました

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
ログイン後にコピー

解決策

コードにいくつかの問題があります:

  1. somefilter クラスは必要ありません。ルーティング設定から modifyrequestbody を直接使用するだけです。 modifyrequestbody では実行できないことを実行するために本当に必要な場合は、@component を追加して Bean にする必要があります。
  2. yaml 設定構文が正しくありません。次のリビジョンを参照してください:
  3. リーリー
  • inclass: 元のリクエスト本文の構造を表す完全修飾クラス名。

  • outclass: 変更されたリクエスト本文構造の完全修飾クラス名を表します。

  • rewritefunction: rewritefunction インターフェイスを実装する完全修飾クラス名を参照します。このインターフェイスは、リクエスト本文をoriginaltypeからnewtypeに変換するために使用されます。

  • contenttype (オプション): 要求されたコンテンツ タイプを変更する場合は、このパラメータを指定します。

oldtypenewtype に変換すると仮定して、rewritefunction の実装を次に示します。 リーリー

以上がSpring GatewayのRequestBodyを変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート