REST 端点中的多个 ID

Posted

技术标签:

【中文标题】REST 端点中的多个 ID【英文标题】:Multiple ID's in REST endpoints 【发布时间】:2017-11-28 09:28:12 【问题描述】:

来自 Wordpress 背景,我对使用 REST API 的了解非常有限。我已经开始使用JSON server(虚拟本地REST API)来学习细节。

查看文档,似乎没有任何方法可以一次性删除、更新或发布多个项目? PATCHPOSTPUTDELETE 方法都需要一个带有一个尾随 ID 的端点,例如 /posts/1。我已经尝试在 url 中发送多个 ID,即 ?id=1&id=2 以及作为请求正文的一部分,但似乎都不起作用。

这就是典型的 REST API 的工作方式吗?如果是这样,这是否意味着我必须循环遍历 ID 并为每个请求发送多个请求,还是我错过了重点??

【问题讨论】:

为什么不传递 ID 列表? 你想达到什么目的?您不能在 url 中发送相同的查询参数两次。它将被覆盖。您的查询参数的键需要不同 说例如,我想DELETE 与 ID 的 1,2, 3, 4, 在/todos 中,我将如何使用 fetch 发送这些 ID?我试过的东西不起作用:fetch('http://localhost:3000/todos?id=1&id=2&id=3&id=4', method: 'DELETE');fetch('http://localhost:3000/todos', method: 'DELETE', body: [id:1, id:2, id: 3, id: 4] ); 你用什么做后端? .NET? 【参考方案1】:

使用 REST,您通常不需要批量操作,除非您要删除集合。 POST 请求通常将单个实体插入到集合中,但这并不意味着您不能构造端点以接受要插入到集合中的实体数组。当我设计一个用于发布新资源的 RESTful 端点时,我只接受一个实体。我让客户端并行执行多个 POST 请求,以减少创建实体列表所需的时间。

【讨论】:

以上是关于REST 端点中的多个 ID的主要内容,如果未能解决你的问题,请参考以下文章

具有多个标识符的 REST 端点

Laravel 中的 REST API 订阅和交易(支付)端点

有没有办法使用 Keycloak Admin REST API 将用户添加到 Keycloak 中的多个组(批量)?

Bamboo 中的 REST 端点创建计划?

防止不受信任的客户端使用 REST API 的登录/注册端点

无法访问 docker 容器中的 REST 端点