REST 端点中的多个 ID
Posted
技术标签:
【中文标题】REST 端点中的多个 ID【英文标题】:Multiple ID's in REST endpoints 【发布时间】:2017-11-28 09:28:12 【问题描述】:来自 Wordpress 背景,我对使用 REST API 的了解非常有限。我已经开始使用JSON server(虚拟本地REST API)来学习细节。
查看文档,似乎没有任何方法可以一次性删除、更新或发布多个项目? PATCH
、POST
、PUT
和 DELETE
方法都需要一个带有一个尾随 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的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 中的 REST API 订阅和交易(支付)端点
有没有办法使用 Keycloak Admin REST API 将用户添加到 Keycloak 中的多个组(批量)?