我正在构建一个允许客户端存储对象的服务器.这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的.
我已经定义了API,以便客户端可以使用PUT创建或修改对象:
PUT /objects/{id} HTTP/1.1
...
{json representation of the object}
Run Code Online (Sandbox Code Playgroud)
{id}是对象ID,因此它是Request-URI的一部分.
现在,我也在考虑允许客户端使用POST创建对象:
POST /objects/ HTTP/1.1
...
{json representation of the object, including ID}
Run Code Online (Sandbox Code Playgroud)
由于POST意味着"附加"操作,我不知道如果对象已经存在该怎么做.我应该将请求视为修改请求还是应该返回一些错误代码(哪个)?
我有一个REST API,允许使用HTTP POST修改资源.客户端可能会提交POST请求,导致不修改资源.我正在考虑使用通常用于条件响应的304响应来表明请求没有效果.我没有找到任何这方面的例子,所以我想我会问这里,看看是否有其他人这样做或对此有意见.