簡體   English   中英

用於字段驗證的 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.

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