注意:我在此考虑POST
表示"创建"并且PUT
表示"更新",如GitHub所做的那样。这不是支持POST
或PUT
的论据的地方。
我有一个company
资源和一个assign
操作。我想知道如何在我的REST API中翻译这种行为。
我想到了类似的东西:
PUT /company/:id/assign
user_id: 5
如果我想取消分配此用户怎么办?
unassign
行动吗?在最新的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
方法发送数据,因此我必须在网址中传递user_id
:
POST /company/:id/assign/:user_id
DELETE /company/:id/assign/:user_id
答案 0 :(得分:2)
使用布尔值并不是很清楚。我可以认为它是一个非显而易见的论证。考虑到API解释最明显,你的语法最好。
最后,使用DELETE方法是您可以选择的最佳选项。将用户分配给公司时,可以创建关系。如果要取消分配,则删除该关系。