REST API:对资源执行/撤消操作的最佳方式

注意:我在这里认为POST意味着“创建”而PUT意味着“更新”,就像
GitHub那样.这不是支持POST或PUT的论据的地方.

我有公司资源和分配行动.我想知道如何在我的REST API中转换这种行为.

我想到了类似的东西:

PUT /company/:id/assign
user_id: 5

如果我想取消分配此用户怎么办?

>我应该使用布尔值作为参数吗?
>我应该使用取消分配操作吗?
>我应该使用另一个HTTP动词吗?

在最新的GitHub API上,我看到了如何使用star a gist

PUT /gists/:id/star

为什么不,但如何到unstar a gist

DELETE /gists/:id/star

这对我来说似乎很奇怪.您正在更新资源上的操作并将其删除.奇怪的.我能理解POST是否而不是PUT.

POST / gists /:id / star和DELETE / gists /:id / star对我来说似乎更合乎逻辑.你怎么看?

编辑:我将使用POST和DELETE.但由于无法使用DELETE方法发送数据,我必须在URL中传递user_id:

POST /company/:id/assign/:user_id
DELETE /company/:id/assign/:user_id 

最佳答案 使用布尔值并不是很清楚.我可以认为它是一个非显而易见的论证.考虑到API解释最明显,你的语法最好.

最后,使用DELETE方法是您可以选择的最佳选项.将用户分配给公司时,可以创建关系.如果要取消分配,则删除该关系.

点赞