在REST中使用什么方法进行同步操作

时间:2015-04-22 15:55:36

标签: api rest post patch put

用户上线后同步数据涉及InsertUpdateUpsert),并且我在一个请求中发送两种记录(array然后服务器迭代记录以确定插入或更新。

我的问题是,是否使用POSTPUT

此外,服务器(JSON)的响应应该如何?发送的数据是一个数组,例如

{
  "ids" : "15,16,17",
  "success" : true
}

修改

响应代码应该是什么,它有创建和更新操作:

200 OK
201 Created

1 个答案:

答案 0 :(得分:7)

REST不是CRUD。将HTTP方法映射到CRUD操作是一些框架引入的约定,但它与REST无关。请阅读this answer以获得一些澄清。

PUT是一个完全替代,忽略了资源的当前状态。想想shell中的mv命令。如果目的地没有任何内容,则会创建它。如果有什么东西,它会完全取代,忽略那里的东西。这是PUT应该如何运作的方式。理想情况下,您的应用程序应该具有PUT的统一实现,其工作方式与支持该方法的任何URI完全相同。

POST在预定义规则下提交目标资源要处理的有效负载。这意味着您可以将POST用于任何尚未通过HTTP协议标准化的操作。

在您的情况下,它显然不是完全替代品,因此PUT并非如此。使用POST