我正在开发一个将由react-admin客户端应用程序使用的API。根据我们的前端开发人员的说法,react-admin支持通过发送HTTP Delete请求(例如
)一次删除多个实体DELETE /api/Entity/Delete?filter={"ids":[1,2,3]}
显然,此方法可以很好地处理单个id请求
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
但是处理包含多个ID的请求的正确方法和途径是什么?显然,客户端请求格式仅用于演示目的,如果对此类型的请求有任何潜规则,则可以更改。
答案 0 :(得分:1)
您可以将参数设置为数组:
[HttpDelete("Delete")]
public async Task<IActionResult> Delete(int[] id)
然后您这样称呼它:
DELETE /api/Entity/Delete?id=1&id=2&id=3
这将用id
填充{ 1, 2, 3 }
数组。
可以像在原始示例(?filter={"ids":[1,2,3]}
中那样在查询字符串中放入JSON,但这并不容易。您必须handle the binding yourself。
答案 1 :(得分:1)
提交多个ID时,我发现最好的方法是将它们作为JSON数组提交到正文中。
因此,URL为/api/Entity/Delete
,正文为:
[ 1, 2, 3 ]
然后您可以收到它:
[HttpDelete("/api/Entity/Delete")]
public async Task<IActionResult> Delete([FromBody] int[] ids)
{
}