在我們的系統中,我們擁有包含項目的帳戶。一個項目總是與一個帳戶關聯,但在系統中也具有全球唯一的ID。有時只需知道其ID就可以使用該項目。RESTful API創建全球唯一資源
允許從外部所有者(賬戶)訪問下級資源(項目)是不正確的?換句話說,擁有2個URI到同一個資源是錯誤的嗎?這是一個有點棘手解釋那麼這裏有一個例子:
POST /inventory/accountId
#Request Body contains new item
#Response body contains new item's id
GET|PUT|DELETE /inventory/accountId/guid #obviously works and makes sense
GET|PUT|DELETE /inventory/guid #does this make sense?
也許我應該重新思考自己的資源佈局,而不是使用帳戶創建項目,而是把帳戶作爲該項目的查詢字符串參數或領域?
POST /inventory
# Request body contains item w/ account name set on it
GET|POST|DELETE /inventory/uuid #makes sense
GET|POST|DELETE /inventory/accountId/uuid #not allowed
我認爲重定向是最有意義的,如果我要支持多個URI的。考慮一下之後,我會試着避免這一點。爲了在帳戶下創建項目,我忘了我可以使用Location標頭來指示創建資源的URI,這樣可以消除我最擔心的問題。 –