包含空数据的HTTP PUT的响应代码

时间:2018-11-22 16:04:44

标签: http server httpresponse put

在以下情况下,HTTP PUT的最常见/行业标准响应代码是什么?

  • 客户提出了格式正确的请求
  • 文件/消息/数据的内容为空
  • 因为服务器/数据库中的任何内容都没有更改

在我的特定情况下,客户端使用这样的空JSON发送HTTP PUT:

{}

而我期望这样的事情

{
    key1: {
        something: value,
        something2:value2
    },
    key2: {
        something: value3,
        something: value4
    }
}

在我的情况下,这将转换为4个新行,并将其上载到数据库中。

我正在考虑400(因为当您调用HTTP PUT时 是一个错误的请求,但是那里没有什么可以放入 ),200, 204和304。

我的问题与thisthis不同,因为它们与HTTP GET方法有关,而与this不同,因为尽管与HTTP PUT有关,但答案没有解决我的问题情况。

1 个答案:

答案 0 :(得分:2)

PUT请求应替换指定uri上服务器上的内容。

因此,如果uri上的资源已经为空,并且放置的新资源也为空,则什么都没有改变,但仍然成功,因此200 OK很好。

如果资源不存在,而您创建了一个新的0字节资源,则201 Created可能更合适。

如果资源确实存在,但不为空,并且您发送了一个空的PUT请求,则应使用一个空资源替换现有资源。

这是您要出问题的地方,因为PUT不应像您所做的那样用于每个记录的“ upsert”。

如果您声明的PUT请求在语义上是正确的,则应清除与该位置相关的所有现有记录。

您可能想要的是PATCHPOST