删除操作是否应考虑乐观锁定?

时间:2013-04-07 05:24:20

标签: rest optimistic-locking

在REST API中,代理向/ some-resource / 666

发送DELETE请求

这应该够了吗?或者他们应该发送资源ID以及版本(用于乐观锁定),以便他们可以确保删除他们读取的版本吗?

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于背景。

  • 如果您的资源id是服务器生成的并且始终是唯一的(例如,POST /some-resource可能会返回一个新的id,它是资源的GUID或是一个SQL自动增量列),那么您当然不需要指定要删除的任何特定versionDELETE /some-resource/{id}就足够了。

  • 如果您的资源id是客户端生成的,或者仅在当前现有资源中是唯一的(可重复的),那么您可以按照建议添加version查询参数。

    • 您必须要问的一个问题是:如果您有非唯一或可重复的id值,您是否可以轻松地将它们变成唯一的?如果是,请选择versionDELETE参数的解决方案。