使用 WebAPI 删除端点删除多个 ID?

SB2*_*055 5 rest asp.net-web-api

如果我向删除端点发送一个 id,我的 webAPI 解决方案目前可以工作:

DELETE /api/object/1
Run Code Online (Sandbox Code Playgroud)

和:

    [HttpDelete]
    public HttpResponseMessage DeleteFolder(int id)
    {
    // Do stuff
    }
Run Code Online (Sandbox Code Playgroud)

在我的客户端应用程序中,我有一个允许多次删除的 UI - 现在它只是在循环中为每个选定的 id 调用此端点,这不是超级高性能。在这种情况下,我希望能够将一组 Ids 发送到 Delete 方法......如何实现?

ckr*_*s01 5

[HttpDelete]
public HttpResponseMessage Folder([FromUri] int[] ids)
{
     //logic
}
Run Code Online (Sandbox Code Playgroud)

接口调用

DELETE /api/Folder?ids=1&ids=2
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 5

[HttpDelete]
public HttpResponseMessage DeleteFolder(int[] ids)
{
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

然后您可以发送以下 HTTP 请求:

DELETE /api/somecontroller HTTP/1.1
Accept: application/json
Content-Length: 7
Content-Type: application/json
Host: localhost:52996
Connection: close

[1,2,3]
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,HTTP 规范说 DELETE 正文毫无意义,因此您确实需要将 id 列表作为 URI 参数。 (3认同)