宁静的API设计:如何锁定GET集合上的记录?

时间:2019-02-21 10:47:42

标签: rest api hateoas api-platform.com

想法

使用API platform's框架时,我需要“锁定/访问”第一个请求它们的第一个客户端的资源集合,以防止其他客户端再次检索它们(竞争条件) ),直到第一个完成/更新其状态。 原因:由于两个客户无法处理(例如,通过电子邮件发送给客户)同一张优惠券,因为该优惠券只能使用1次。

示例

想象一下,我们有许多客户使用的优惠券代码集合:某个客户请求了一套优惠券代码后,只有第一个客户标记(POST / PATCH)每个优惠券代码时,其他客户端才能检索相同的优惠券代码例如“消耗”。

挑战

我当然可以将这些优惠券锁定在GET请求上,但这违反了Restful API范例:GET无法修改资源状态,Get应该是幂等且安全的。

建议

ETag乐观锁定:不能在集合上使用。

0 个答案:

没有答案