![](/img/trans.png)
[英]Json request validation for mandatory field - springboot rest-api
[英]REST api for field validation
我必須創建幾個 Web 服務來驗證給定字段的可能值。 我正在考慮有這樣的事情:
POST /entity/fieldName body { fieldValues }
如果參數無效,POST 將返回 400(錯誤請求),否則返回 422(不可處理實體)。 但是我不太喜歡 422 響應部分,因為它使請求總是返回錯誤。 另一方面,由於我只是在做驗證並且這是一個 POST,我不想在服務器上實際創建一個新資源(即返回 200)。 是否有另一個更適合此的 HTTP 方法/API 端點? 對於它的價值,我將檢查帶有<fieldName>
的實體字段是否在給定范圍內具有其值。
如果您所做的只是驗證,那么我認為您應該發送422
驗證錯誤和200
驗證成功。 POST 並不意味着您必須始終創建一個新實體。
POST 方法執行的操作可能不會產生可由 URI 標識的資源。 在這種情況下,200(正常)或 204(無內容)是適當的響應狀態,具體取決於響應是否包含描述結果的實體。
如果在源服務器上創建了資源,則響應應該是 201(已創建)並包含一個實體,該實體描述請求的狀態並引用新資源,以及一個位置標頭(參見第 14.30 節)。
我更喜歡谷歌的 api 錯誤響應風格。
所以我的服務將錯誤響應作為 json 或 xml 和400 Bad request
錯誤代碼發送:
{
"status": "INVALID_REQUEST",
"type": "ERROR_MSG",
"data": {
"request": "/v2/data?age=23d",
"errors": [
"age: not a number"
]
},
"time": -1
}
否則200
和相應的消息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.