交易休息?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我想知道如何在REST中实现以下用例。在不损害概念模型的情况下,是否有可能做到这一点?

读取或更新单个事务范围内的多个资源。例如,将100美元从Bob的银行帐户转到John的帐户。

据我所知,实现这一目标的唯一途径是作弊。可以发布到与John或Bob关联的资源,并使用单个事务执行整个操作。就我而言,这打破了REST体系结构,因为实际上是通过POST来挖掘RPC调用,而不是真正地对单个资源进行操作。

提问于
用户回答回答于

购物篮在概念上是事务包装器。同样,可以向一个购物篮中添加多个项目,然后提交该篮子来处理订单,可以将Bob的帐户条目添加到事务包装器中,然后将Bill的帐户条目添加到包装器中。当所有的部分都就位时,可以将事务包装器与所有组件一起发布/放置。

用户回答回答于

要达到这个目的,可以创建一个作为对象的事务。这可能包含已经知道的所有数据,并将事务置于挂起状态。

POST /transfer/txn
{"source":"john's account", "destination":"bob's account", "amount":10}

{"id":"/transfer/txn/12345", "state":"pending", "source":...}

一旦拥有了这个事务,就可以提交它,类似于:

PUT /transfer/txn/12345
{"id":"/transfer/txn/12345", "state":"committed", ...}

{"id":"/transfer/txn/12345", "state":"committed", ...}

扫码关注云+社区