簡體   English   中英

傑克遜解析 JSON

[英]Parsing JSON by jackson

我有一個表單,其中打包在 JSON 中的參數由 Jackson 解析。 如果參數類型是 'int' 並且用戶輸入了一個大數字,我有一個例外。 我限制在客戶端這樣做,但想知道,處理此類異常的最佳做法是什么? 我應該打擾嗎? 或者只是沒事?

始終包括服務器端驗證

由於可以通過手動向端點發送請求(例如在 PostMan 中或使用 DevTools)輕松避免客戶端驗證,因此您鼓勵在客戶端和服務器端進行驗證是正確的。 特別是如果你想公開開放一個 API,服務器端驗證是必不可少的。 您不能信任與您的 API 交互的每個客戶端。 這里有一些提示:

返回422 Unprocessable Entity響應狀態

假設你正在使用HTTP進行通信,適當的響應代碼返回是422 422代表一個驗證錯誤,有一個質量的解釋在這里 為不同的錯誤場景返回描述性狀態代碼更符合 RESTful/HTTP 標准。 在此示例中,您通過返回 422 而非 500 為您的客戶提供更多信息。您可以通過返回描述無效字段的錯誤響應來更進一步。

使用 JAX-RS 將異常映射到響應

JAX-RS 是一種規范,它使在 Java 中構建 RESTful Web 服務變得容易。 如果您的應用程序中已經有一個 JAX-RS 實現,您可以定義一個異常映射器來查找JsonMappingException ,檢查NumberFormatException的原因(如果您使用的是盒裝Integer )並在遇到這種情況時返回適當的響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM