我正致力于创建Web应用程序。 在项目中,我有3个实体:
一个套装包含许多案例,一个案例包含许多步骤。所有信息仅代表一个网页。因此,在网页上,我们有关于一个套装的信息,包含在此套装中的案例列表,以及每个案例的所有步骤
在网页上我们还有一个按钮,用于保存有关Suit的所有信息。因此,客户可以改变他想要的一切。他可以删除和插入步骤或案例,但点击“保存”按钮后将保存所有更改。
所以我的问题是:“如何正确编写查询以更新所有信息?”
小例子:我们得到类似这样的后端:
{
"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
如果我正确指定了JSON-object,我可以使用REST API来添加,更新和删除所有的元素。
但我认为这是错误的方式。 REST API PUT必须只更新有关元素的信息,或者添加元素(如果它们不存在),但不能删除。
可能是遇到类似问题的人。我很乐意听取您的意见和建议。
此致
答案 0 :(得分:0)
在restfull API中,我建议通过API查询对象是否存在并进行相应调用,例如,如果存在调用update,如果不调用create。
您不必在服务器端处理所有这些混乱