我正在設計一個Restful HTTP API並且有一個設計問題。Restful HTTP API模式
在我的應用程序中,用戶應該能夠建議物品創建。
然後我可以批准或不批准他們。
我想知道最好的VERB + URL模式是什麼。
實施例1:
POST|GET|PUT|DELETE /items
用戶POST一個新的項目和我可以把它從「待定」或刪除「認可」。
這裏我必須使用GET/items?status = approved來獲取所有批准的項目和GET/items?status = pending以獲取所有未決項目。也許GET/items會默認給我所有批准的。
但我不明白我可以如何阻止用戶將其設置爲已批准狀態。
或
例2:
POST|GET|PUT|DELETE /item_creation_suggestions
用戶發佈一個新的項目建議,我可以通過DELETE批准:婷,並做一個POST /項或刪除它。
這裏/ items和/ item_creation_suggestions是兩個獨立的集合。我只需在批准時刪除建議並創建項目。
這使得我的應用程序免受未經授權的訪問變得非常簡單。我可以通過授權保護我的/物品,而/ item_creation_suggestions可以被任何人使用。
但這似乎不是很安靜?
這同樣適用於用戶建議更新和刪除項目時,並且我批准或拒絕這些項目。
我在Restful設計非常新,所以所有的反饋意見和建議,將不勝感激!
我不認爲Accepted在這裏適合;這意味着請求已收到,它在第一眼看來似乎有效,但這可能隨請求在後臺處理而改變。 – Evert
是的,這取決於目標受衆是誰。從用戶的角度來看,如果我'POST'一個項目,但它不是立即可見的,就會收到'202'。如果可能還有一個選項立即發佈項目,並且區分這兩者很重要,那麼使用HTTP狀態代碼很容易。 – deceze
由於201表示它是創建的,所以202接受可能暗示該建議被接受。 – wingy