我有一个支持两个对象的 RESTful API,例如对象 A
包含嵌套对象的有序列表 B
:
Create object A - POST /a
Create object B and add to A - POST /a/<id>/b
Update object B in A - PATCH /a/<id>/b/<id>
什么是更新 B
顺序的 RESTful 方式?特定对象 A
?
选项 1: PATCH /a/<id>
用 json 内容替换 A.Bs
A
有一个嵌入式列表 B
s,即A.Bs
因此您可以完整地替换该列表,同时更改途中的顺序。这依赖于客户端正确地重新提交整个列表。
选项 2: PATCH /a/<id>
用 json 内容替换 A.B_order
添加一个单独的列表 B
ids 并让客户端更新它。这类似于选项 1,但不依赖于客户端重新提交所有对象。它确实需要服务器管理列表,并在 B
时更新它创建和验证更新包含所有必需的 B
列表顺序更新中的 ID。
选项 3: PATCH /a/<id>/b
用 json 内容替换 A.Bs
与选项 1 相同,但具有不同的 URL
哪个最符合 REST 风格且最清晰?
还有其他选择吗?
最佳答案
我建议使用 RFC 6902 中定义的建议标准.具体来说,“移动”操作似乎就是您要查找的内容。
关于嵌套对象的 RESTful 重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484175/