php小編蘋果為您介紹如何修改Spring Gateway中的RequestBody。 Spring Gateway是一個基於Spring框架的API網關,用於處理和轉送HTTP請求。在Spring Gateway中,RequestBody用來接收用戶端傳送的請求體資料。如果需要修改RequestBody,可以透過自訂過濾器或攔截器來實現。首先,需要建立自訂過濾器或攔截器,然後在過濾器或攔截器中取得請求體數據,並進行修改。最後,將修改後的資料設定回請求體中,以便後續處理。透過這種方式,就可以在Spring Gateway中修改RequestBody。
問題內容
我想在將 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":"預設值」}
下面是範例篩選器和重寫函數
65蜜蜂659f312a下面是重寫函數
65蜜蜂659f313a下面是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
解決方法
您的程式碼有一些問題:
- 不需要
somefilter
類,只需直接從路由配置中使用modifyrequestbody
即可。如果你確實需要它來實作modifyrequestbody
無法完成的事情,你必須透過加入 @component 使其成為一個 bean。 - 您的 yaml 設定語法不正確。請參考以下修訂版本:
routes: - id: order-route-1 uri: http://localhost:8999/ predicates: - path=/some/path1 - method=post filters: - name: modifyrequestbody args: inclass: com.xyz.filters.oldtype outclass: com.xyz.filters.newtype rewritefunction: com.xyz.filters.myrewritefunction contenttype: application/json
-
inclass
:代表原始請求正文結構的完全限定類別名稱。 -
outclass
:表示修改後的請求正文結構的完全限定類別名稱。 -
rewritefunction
:指實作 rewritefunction 介面的完全限定類名,用於將請求正文從 originaltype 轉換為 newtype。 -
contenttype
(可選):當您想要變更要求的內容類型時,請指定此參數。
假設您要將 oldtype
轉換為 newtype
,以下是 rewritefunction
的實作:
public class MyRewriteFunction implements RewriteFunction<OldType, NewType> { @Override public Publisher<NewType> apply(ServerWebExchange exchange, OldType originalRequest) { NewType modifiedRequest = modifyRequest(originalRequest); return Mono.just(modifiedRequest); } }
以上是修改spring gateway中的RequestBody的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具