嵌套对象的 RESTful 重新排序

标签 rest http nested restful-url restful-architecture

我有一个支持两个对象的 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/

相关文章:

PHP:如何使用 XML 数据发送 REST 请求

java - REST Web 服务以 JSON 格式返回多个实体

python - 通过api创建用户keycloak并分配客户端角色realm-managment

java - 获取特定格式的mongo数据

node.js - 如何为检查响应返回数据的 http 请求编写测试?

c - HTTP header 的起始位置并不总是相同

c++ - 解耦嵌套类 : "conflicting declaration of template" error when using template aliases

json - 解析R中的嵌套结构

java - 从 Java 程序发出 HTTP 请求的最佳方式是什么?

mysql查询以计算具有一定数量产品的客户