在REST中使用什么方法来进行同步操作
一旦用户上线后同步数据涉及到Insert
和Update
( Upsert
),并且我在单个请求( array
)中发送两种记录,然后服务器遍历记录以确定插入或更新。
我的问题是是否使用POST
或PUT
?
另外如何从服务器(JSON)的响应应该在它的身体? 例如,发送的数据是一个数组
{
"ids" : "15,16,17",
"success" : true
}
编辑:
响应代码应该是什么,它有创建和更新操作:
200 OK
201 Created
REST不是CRUD。 将HTTP方法映射到CRUD操作是由某些框架引入的约定,但与REST无关。 阅读这个答案对此做一些澄清。
PUT
是一个完全替代,它忽略了资源的当前状态。 考虑shell中的mv
命令。 如果目的地没有任何东西,它会创建它。 如果有什么,它会完全取代,忽略任何内容。 这就是PUT
应该如何工作的。 理想情况下,您的应用程序应该有一个统一的PUT
实现,它与任何支持该方法的URI完全相同。
POST
根据预定义的规则提交要由目标资源处理的有效载荷。 这意味着您可以使用POST
进行任何尚未由HTTP协议标准化的操作。
在你的情况下,它显然不是一个完整的替代品,所以它不适用于PUT
。 使用POST
。