2017-10-04 63 views
0

我正在創建Web應用程序。 在項目中,我有3個實體:更新父級時級聯更新孩子

  • 西裝
  • 案例
  • 步驟

一套西裝包含了許多案例和一個案例包含許多步驟。所有信息僅代表一個網頁。因此,在網頁上我們有關於一件西裝的信息,包含在本套件中的案例清單以及每個案件的所有步驟。
在網頁上,我們還有一個按鈕用於保存有關西裝的所有信息。所以,顧客可以改變他想要的一切。他可以刪除並插入步驟或案例,但是當他點擊「保存」按鈕時,所有更改都會保存。

所以我的問題是:「如何正確寫入查詢來更新所有信息?」

小例子:我們得到在後端是這樣的:

{ 
    "id": 1, 
    "name": "Suit name", 
    "cases":[ 
     { 
      "id": 1, 
      "name": "Case 1", 
      "steps":[ 
       { 
        "id": 1, 
        "name": "Case 1 first step" 
       } 
      ] 
     }, 
     { 
      "id": 2, 
      "name": "Case 2", 
      "steps":[ 
       { 
        "id": 2, 
        "name": "Case 2 first step" 
       }, 
       { 
        "id": 3, 
        "name": "Case 2 second step" 
       } 
      ] 
     } 
    ] 
} 

當客戶更新西裝的信息,例如他可以添加新的一步進入「案例1」,並刪除「案例2「。在這種情況下,我創建了一個新的JSON對象:

{ 
    "id": 1, 
    "name": "New suit name", 
    "cases":[ 
     { 
      "id": 1, 
      "name": "Case 1", 
      "steps":[ 
       { 
        "id": 1, 
        "name": "Case 1 first step" 
       }, 
       { 
        "name": "Case 1 second step" 
       } 
      ] 
     } 
    ] 
} 

當我得到這個JSON對象,這真的很難檢測到發生了什麼改變(更新,刪除或添加),所以我刪除有關訴訟的所有信息,再次插入。

另一個問題,這個JSON對象發送:

PUT http://example.com/suit/1 

我可以用它休息添加,更新API和刪除所有元素在訴訟中,我指定正確的JSON對象。

但我認爲這是錯誤的方式。 REST API PUT只能更新關於元素的信息或添加元素(如果不存在但不刪除)。

可能會遇到類似問題。我很樂意聽取您的意見和建議。

問候

回答

0

在問題的REST API,我建議通過API來查詢對象存在,並相應地調用,例如是否存在調用更新,如果不調用創建。

你將不必在服務器端處理所有這些混亂