如何使用终结点而不是一个 Id 传递要删除的 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);
}

我试着在网上调查,但没有人真的问过类似的问题。感谢您的帮助。谢谢

OPTION 1您需要参数化数组元素,创建一个看起来像DELETE /api/v1/algo/configs?configIds[]=1&configIds[]=2&configIds[]=3的字符串

OPTION2使用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);
}

处理删除一个配置id的请求

deleteConfig(single_config_id);

处理删除多个配置ID的请求

deleteConfig(array_of_config_ids.join());

相关内容

  • 没有找到相关文章

最新更新