我的 Spring 控制器接受應用程式 json 回應體作為物件引數。我看不到在哪里可以攔截 json 以在 Spring 控制器接收到它之前驗證值并在它沒有轉換時抱怨。
示例:用戶將 json 發送到端點 - /createUser
期望:{“用戶名”:“johndoe”,“pin”:1234} 接收:{“username”:1234,“pin”:“johndoe”}
如果為 int 發送字串,反之亦然,服務器將顯示狀態 400。我想自己驗證資料并提供一個自定義 json,詳細說明設定不正確的值。
提前致謝!
uj5u.com熱心網友回復:
您可以為@RequestBody控制器中的引數創建自己的類并對其進行驗證。您可以使用一些受支持的注釋或自行創建。但是不要忘記將 放在@Valid旁邊@RequestBody,這是關鍵。例如
@RestController
public class UserController {
@PostMapping("/users")
ResponseEntity<String> addUser(@Valid @RequestBody User user) {
// persisting the user
return ResponseEntity.ok("User is valid");
}
// standard constructors / other methods
}
有關更多資訊,您可以在此處找到它們驗證,創建您自己的驗證器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/348711.html
上一篇:運行時資料庫中的動態欄位數
下一篇:FeignClient:使用jar運行(CompletableFuture.supplyAsynccallFeignClientthrowjava.lang.IllegalArgumentExcept
