REST更新多个资源

Lum*_*dil 6 rest

我试过这个,但我没有找到一个符合我需要的答案.

考虑到我目前有以下路线:

[GET] /items
Run Code Online (Sandbox Code Playgroud)

可以使用查询参数进行过滤.现在我需要让它能够一次添加多个资源.我考虑过做以下请求:

[PATCH] /items
Run Code Online (Sandbox Code Playgroud)

有这样的身体:

id[]=1&id[]=2&id[]=3&updateField=newValue
Run Code Online (Sandbox Code Playgroud)

我认为这次电话有问题,但我无法弄明白.

JDw*_*yer 17

在RESTful API中,URL应该定义事务的对象,动词是动作.

所以GET /items应该归还所有项目.

GET /items/1 应该返回id为1的项目.

因此,多个id应该是资源定义(url)的一部分.所以 GET /items/1,2,3应该返回3个适当的项目.

因此,要对许多ID应用部分更新:

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

然后在PATCH或PUT的主体内,您可以提供要更新的信息(假设您正在发送JSON正文).

{"updateField": "newValue"}
Run Code Online (Sandbox Code Playgroud)