我想做更多REST
这样的事情:
选择field1
等于foo
的资源,并将field1
更新为bar
UPDATE XXX SET field1 = "bar" WHERE field1="foo"
我可以看到两种解决方案:
GET
项,然后PUT
更新它们。也许使用Etag
或If-Match
来保证它是原子的。PUT
方法处理程序,因此查询字符串表示SQL中的WHERE子句,PUT
请求的内容表示SQL中的SET
子句我个人更喜欢后一种解决方案,但在REST
中,PUT
方法应该覆盖 * a *资源,而不是许多一次只有资源,也不只是更新资源的某些字段。
我还检查了HTTP PATCH
方法提案。它使“更新资源的某些字段”成为可能,但它也不会用于同时更新许多资源。
那么你的解决方案是什么?我希望看到你的最佳实践: - )
答案 0 :(得分:1)
随机未经考验的想法:
url: PUT /xxx/*/field1/foo
body: "bar"
或(如果您可以预测/限制XXX的键范围):
PUT /xxx/0,9999999/field1/foo
"bar"
或者如果你对2个电话没问题,可能是:
GET /xxx?field1="foo"
POST /xxx/id1,id2,...,idn/field1
"bar"