要遵循,並通過一個RESTful API停止關注的人,我有RESTful API POST/DELETE應該在正文中返回什麼?
- POST /人/鮑勃/遵循
- DELETE /人/鮑勃/遵循
又該這些返回的身體?
- 每個人的集合,你按照
- 你只是跟着的人/取消關注
- 像{狀態: 「OK」}一個狀態
- 沒有。
要遵循,並通過一個RESTful API停止關注的人,我有RESTful API POST/DELETE應該在正文中返回什麼?
又該這些返回的身體?
這一切都取決於你的應用程序/ API設計和你要定義的合同與客戶端/來電者。但通常,在所有情況下,您應該返回狀態代碼,以使您的客戶瞭解結果。
像:respond(ResponseCode::OK, ...)
爲POST
:包含所有他的追隨者+狀態碼
的對於DELETE
我會返回「鮑勃」對象:我只返回的狀態代碼。
如果您使用HTTP服務器狀態對錯誤進行響應,則狀態碼不會說任何內容。如果您在沒有用戶Bob的情況下響應404 Not Found,或者在數據庫損壞時發生500內部服務器錯誤,那麼您將獲得的唯一成功答案即可。用戶不必檢查狀態碼,他們只需檢查HTTP狀態碼。
我建議你返回任何結果,而事實上,這是一個成功的響應(即200 OK或204無內容)表明操作成功。
一般來說,對於一個API,我衛道士使用HTTP狀態代碼,而不是總是確定一個代碼定義的狀態。 這意味着您可以按照現有標準獲得答案,任何獲得錯誤代碼的人都將大致瞭解發生了什麼/他們必須做什麼。 查看wiki文章http status codes獲取可用的參考手冊。
此外,與錯誤代碼一起,並且因爲是我們談論的API,它是有用的有關錯誤更具描述性的消息。像錯誤一樣有意義的東西:「Auth令牌失蹤」,或者你可能提出的任何標準。
當談到創建資源,我通常回答回來201(創建)和資源剛剛創建。請記住,你可能希望排除從資源的一些屬性(例如你正在創建一個用戶,你不應該返回敏感信息,如加密密碼)
關於資源的缺失,一般用在回報200(好)或202(接受),沒有額外的信息。
然而,正如@yek提到的,它在很大程度上取決於使用API消費者的承諾。最重要的是你正確記錄API並解釋應該是什麼樣的期望。
Bob的以下所有內容都可能是成千上萬的東西。這並不理想。 –
你說得對,這就是爲什麼我說這取決於應用程序設計。但是,假設你正在使用mvc框架(rails,asp.net mvc ...):當你調用一個PersonController動作時,你的客戶希望接收一個相同類型的對象(Person),或者至少包含那個類型。 – yek