![](/img/trans.png)
[英]How to pass an array of id's as parameters for a delete request in javascript
[英]How to pass an array of id's to delete using an endpoint rather than just one Id
我正在尝试删除必须在后端删除的 id 数组。 我将使用一个端点来接受这个并使用 redux 执行删除请求。 它将在端点:
DELETE /api/v1/algo/configs?configIds=1,2,3
1、2 和 3 仅代表虚拟 id。 作为查询参数传递,响应看起来像这样:
{
"configIds": ["1","2","3"]
}
以上这些是应该返回的(删除的数组)
这是我到目前为止在前端所拥有的,它是一个处理程序,应该异步地一个一个地删除数组,这样速率限制就不会变得疯狂。
async function deleteAll() {
for (const id in filteredStoppedConfigs) {
await actions.clearAllConfigs(filteredStoppedConfigs[id]);
}
}
filteredStoppedConfigs
是要删除的 id 编号数组
这是我已经实现的用于删除一个 id 的端点。 它工作并完成工作。 但不确定如何在删除整个数组的新端点上实现它。 基本上清除了整个数组
async function deleteConfig(configId) {
const options = {
method: 'DELETE',
headers: {
'content-type': 'application/json'
},
url: `${ALGOS_API_ROOT}/configs/${configId}`
};
return axios(options);
}
一直在尝试在线研究,但没有人真正问过类似的问题。 任何帮助表示赞赏。 谢谢!
选项 1您需要参数化数组元素,创建一个类似于DELETE /api/v1/algo/configs?configIds[]=1&configIds[]=2&configIds[]=3
的字符串
选项 2使用 POST 或 PATCH ROUTE 并在请求正文中传递数组的 JSON 字符串。 POST|PATCH /api/v1/algo/configs
{
headers: ....,
....
body: {
ids: stringifiedArray
},
....
}
选项 3不是超级鼓励像这样的简单端点很好: DELETE /api/v1/algo/configs
。
接下来,您可以对数组JSON.stringify(arrayHere)
进行字符串化,并将该字符串化数组作为请求正文的一部分传递,如下所示:
body: {
ids: stringifiedArray
}
然后,您将在后端收到此主体参数(将其列入白名单),对其进行解析,然后将其用于所需的操作
您可以如下更新deleteConfig
以处理删除一个配置 ID 以及多个配置 ID 的请求
async function deleteConfig(configId) {
const options = {
method: 'DELETE',
headers: {
'content-type': 'application/json'
},
url: configId.includes(",") ? `${ALGOS_API_ROOT}/configs?configIds=${configId}` : `${ALGOS_API_ROOT}/configs/${configId}`
};
return axios(options);
}
deleteConfig(single_config_id);
deleteConfig(array_of_config_ids.join());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.