2013-03-04 62 views
0

一個快速api uri設計問題。我們擁有屬於我們客戶的資源。這些資源可以由進入我們系統的客戶編輯/查看/刪除。所有客戶端都可以搜索資源,但只有在符合某些標準(客戶端具有3級訪問權限)的情況下才會授予訪問權限。Api URI設計偏好

選擇1:在uri中包含擁有資源的客戶端。

選擇2:溝整個「客戶端/:CLIENTNAME」,因爲URI的這一部分,必須驗證並覈對用戶訪問信息的憑據。

/widgets 
/widgets:id 

我們除了小部件以外還有屬於客戶端的其他資源。

哪種方式更受歡迎,爲什麼?乾杯。

回答

1

Choice 1給予它的唯一優點是,它允許您有效地命名空間小部件/上傳它們的用戶的任何內容。與Github類似,不同的用戶可以擁有同名的項目。如果Github要排除用戶名,那麼沒有兩個用戶可以擁有同名的項目。如果這些小部件都是唯一的,那麼我會選擇第二種選擇,並且您將創建它的用戶與小部件進行1:1的映射,因此提供它只是額外的工作,無論是誰調用它。

如果您可以爲不同的用戶使用相同的部件名稱,請使用包含用戶名的方法。儘管你可能不需要在你的url中實際使用'客戶'這個詞,改用'/:clientname/widget /:widgetid'這樣的路徑。

請注意,這是一種基於意見的問題,因此您可能會得到不同的答案。你必須權衡提供的信息,並最終做出自己的決定。

+0

伴侶 - 感謝您分享您的意見 - 我很感激。 – ozczecho 2013-03-06 02:44:27