注意:我在这里认为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方法是您可以选择的最佳选项.将用户分配给公司时,可以创建关系.如果要取消分配,则删除该关系.