【发布时间】:2014-10-20 18:01:52
【问题描述】:
注意:我认为这里POST 表示“创建”,PUT 表示“更新”,就像 GitHub 一样。这不是支持POST 或PUT 的地方。
我有一个company 资源和一个assign 操作。我想知道如何在我的 REST API 中翻译这种行为。
我想过这样的事情:
PUT /company/:id/assign
user_id: 5
如果我想取消分配此用户怎么办?
- 我应该使用布尔值作为参数吗?
- 我应该使用
unassign操作吗? - 我应该使用另一个 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
【问题讨论】:
标签: rest api-design