在更新和删除请求时使用PUT或PATCH动词:现实生活中的设计

时间:2018-12-13 17:28:33

标签: http patch put httpverbs

最近我一直在尝试正确地使用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还是都不使用?

注意::不要在意有限元部分,我将范围最小化,以便获得更简单的示例

1 个答案:

答案 0 :(得分:1)

如何使用表在内部实现资源是实现细节。没关系。

也就是说,您的示例有效负载不适合PUT(要删除学生,您可以忽略它)。如果您使用描述您期望的语义的内容类型正确标记有效负载,则可能适合PATCH。

Nit:HTTP规范不是W3文档,并且您正在查看的版本已过时。