这是一个跟进问题: Transactions in REST?
如何实现为其客户端提供完整交易功能的REST API?
例如,如果客户想要创建将执行以下操作的事务:
虽然这是对事务的有效要求,但它似乎打破了REST要求,使用PUT创建,POST更新和DELETE删除。
我目前的解决方案是将整个系统作为一个分层对象结构处理并使用POST操作。例如:
POST /system
{
"Users" : [
{
"ID":"123",
"name":"bob"
// update the user with ID matching 123,
// set his name to "bob"
},
{
"ID":"456",
"delete":"true"
// trigger a delete on user with ID 456
}
],
"Products" : [
{
"name":"foo"
// create a product named "foo" since no ID is provided
},
]
}
到目前为止,这满足了大多数REST要求,除了“删除”标志,它不是真正的数据。
我很想知道是否有人找到了更好的解决方案。
答案 0 :(得分:0)
同意Jan你需要在服务器端进行处理。但是,对于可靠性很差的代码,我的体验非常糟糕。我对Restful应用程序的体验表明,坚持PUT& RESTFul体系结构中的DELETE谓词非常困难,因为各种浏览器版本支持对它们来说都是有限的。