2015-10-15 24 views
1

我必須編寫Rest API以在對象上執行CRUD操作,如Employee。用於驗證的REST API中的媒體類型

class Employee { 

    String name; 

    String id; 

} 

- 可以有更多的字段,例如我們只考慮2。

在創建和更新可以有很多的驗證的時間,像

  • 員工姓名和ID不能爲空。

  • 名稱不能包含超過40個字符。

  • id只有字母。

在創建時,對於每次驗證,我必須給用戶正確的消息。如果一個創建操作有多個故障。我必須向用戶顯示所有消息。

我正在尋找一個很好的設計解決方案。

+0

什麼語言?這與媒體類型有什麼關係? –

+0

媒體類型表示對象由API API返回。內容類型是JSON,開發語言是Java。當我們創建並更新Emplyee對象時,它會返回給我們新創建對象的json。 –

+0

*媒體類型表示通過API返回對象*否,媒體類型是Internet上文件格式的兩部分標識符。像'application/json'或'text/html' –

回答

0

既然你問了一個設計,我不會採取將代碼添加到這篇文章的時候,但這個想法應該是這樣的:

  • 做一個數據結構,可容納錯誤。最好是用於存儲鍵值對的HashMap
  • 對於您驗證的每個參數,請執行必要的檢查。如果沒關係,一切都很好。如果它在某種程度上是錯誤的,則向HashMap中添加一個條目來描述錯誤。
  • 確認後,檢查HashMap是否有任何條目。如果確實如此,則存在錯誤,您不應創建用戶,而是返回錯誤響應。如果沒有,那麼您可以創建用戶並返回成功響應。

的數據結構看起來是這樣的(以JSON)

{ 
    "success": "no", 
    "error": "validation_failed", 
    "validation_errors": [ 
     {"name": "too long"}, 
     {"id": "invalid format, must be String"} 
    ] 
} 
+0

謝謝Tim,直到現在這是正確的設計,因爲我在想這是不正確的。我明白你想要的是什麼。如果我在這裏有任何其他查詢,將ping你。我感謝你的快速和相關的答案。 –

+0

@sandeepgarg你在說什麼,這是好還是不好? –

+0

它非常好,我正在使用它。謝謝。 –