最近我一直在尝试正确地使用HTTP动词,但是对于以下情况使用PUT,PATCH甚至POST还是有疑问的。
前端部分正在发送以下JSON数据:
{
name: "Spanish-01",
code: "ESP01",
students: [{
IdStudent: 1,
name: "Peter Parker"
},
{
IdStudent: 2
name: "Ben Reilly",
dirtyRemove: true
}]
}
后端代码将更新 Class 记录(例如名称和代码)。但是,它还会删除标记为dirtyRemove的学生,并将这些学生住在另一个名为学生的表中。
那么这里的规则是什么?由于根据w3.org here的PUT和PATCH用于更新现有资源。在这种情况下,后端同时要更新和删除吗?
我应该使用PUT还是PATCH还是都不使用?
注意::不要在意有限元部分,我将范围最小化,以便获得更简单的示例
答案 0 :(得分:1)
如何使用表在内部实现资源是实现细节。没关系。
也就是说,您的示例有效负载不适合PUT(要删除学生,您可以忽略它)。如果您使用描述您期望的语义的内容类型正确标记有效负载,则可能适合PATCH。
Nit:HTTP规范不是W3文档,并且您正在查看的版本已过时。