[英]1 Service end-point vs 3 individual end-points for Create/Update/Delete in CRUD | Architecture
我對建立CRUD服務有疑問,我應該能夠從數據庫創建,更新,刪除和獲取記錄。
為了容易理解。 我將以一個公司的示例為例,我應該向該公司編寫服務以執行CRUD。 我應該添加一個員工,更新一個員工,刪除一個員工,獲取為公司工作的員工列表。
下面的對象將用作創建/更新/刪除的請求負載,而EmployeeDomainObject的列表將用作Get請求的響應
EmployeeDomainObject { "firstName": "string", "lastName": "string", "id": "string", "status": "ACTIVE" or "DELETE" or null }
服務的范圍和要求: 1.健壯性2.可維護性3.哪個更受服務驅動? 4.可擴展/可擴展
贊賞的答案
這實際上取決於您計划如何實施服務。 如果要使用諸如Spring之類的已建立框架,則很可能會使用4端點方法,並且沒有status
字段,因為狀態將由HTTP動詞(GET / POST / PUT / DELETE)隱含。
您真正擁有的是RPC(遠程過程調用)。 status
字段是要調用的“方法”。 在純REST將使用HTTP動詞的地方,RPC將使用這種類型的方法調用。 因此,如果您計划不使用框架從頭開始構建服務,則可以使用一個端點。 當您可以添加另一個status
字段時,我看不到只有兩個端點:
EmployeeDomainObject
{
"firstName": "string",
"lastName": "string",
"id": "string",
"status": "ACTIVE" or "DELETE" or "RETRIEVE" or null
}
並使用POST。 它不是REST,但您不是在問它是否是良好的REST。
使用上面的命令沒有什么“錯誤”,特別是如果您要從頭開始構建服務(可能是資源受限等)。
端點只是客戶端與服務交互的方式。 這些交互是通過4個REST樣式的終結點到達還是通過1個RPC樣式的POST到達都是無關緊要的。 客戶只是做它需要做的事情。
結果是對服務器的影響。 一個成熟的REST框架(例如Spring)將為您提供一個良好的開端,但將您綁定到4個端點。 如果您可以隨意設計服務器端,那么RPC樣式的方法就沒有錯。 您仍然可以在服務上記錄/審核/處理權限,但您可能需要自己編寫代碼。
如果您打算建立大型企業並雇用大量程序員,那么您可能希望順其自然,並使用4個REST風格的終結點和已建立的框架,以便從更廣泛的人才庫中進行招聘,而不是而不是在定制設計的系統上進行雇用和培訓。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.