注意:我在這裏認爲POST
表示「create」,PUT
表示「update」,就像GitHub一樣。這不是支持POST
或PUT
的論點。REST API:在資源上執行/取消操作的最佳方法
我有一個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
and DELETE /gists/:id/star
對我來說似乎更多的邏輯。你怎麼看?
編輯:我打算與POST
和DELETE
一起工作。但隨着這是不可能與DELETE
方法發送數據,我必須通過user_id
在URL:
POST /company/:id/assign/:user_id
DELETE /company/:id/assign/:user_id
謝謝我編輯了我的文章! – Syl 2014-08-27 10:02:20
+1,'POST/assignments {user:id,company:id} - > 201 id'就是這樣。分配是一個操作名稱,而不是資源名稱... – inf3rno 2014-08-27 10:10:04