[英]Providing IDs and resources in the URLs of PUT operation based on the resources in REST
[英]Why passing resources ids via REST API URI if they already known?
我研究了有關URI設計最佳實踐的各種資源。 幾乎每個作者或博客作者都說RESTFul API URI必須看起來像這樣。
/* List all users in account 2 where user id is 1 */
`/users/1/accounts/2/users` [GET]
上面的api調用者必須在每個請求中傳遞兩個以上的id。
但是我的情況卻大不相同。
我的API服務器之前有一個資源管理器(RM),因此每個請求都必須通過RM進行身份驗證並帶有有效token
才能訪問上述示例API。 注意:[令牌通過標題發送]
一旦請求被授權返回,RM就會通過攔截器向我的API服務器提供用戶信息(例如,user_id,account_id等)。
問題是我的API服務器已經知道user_id
和他的account_id
那么仍然需要在API URI中獲取這些信息。
我嘗試了以下設計:
1. /users/accounts/users
2. /accounts/users
3. /users
什么是最適合這種情況的設計? 我花了兩個星期的時間,但由於這些是企業API設計,因此無法確定。 一經設計,將永遠不會改變。
你應該包括在URI出於某種原因你給在最后的標識-您的API將是非常困難的,也許是不可能的,要改變一旦它被使用。 另一方面,您的實現會隨着時間而改變。 您的身份驗證/授權機制可能會更改。 你的企業可能希望移動到不繞過IDS以這種方式的模型,他們肯定不會想發現他們不得不重新設計的每一個API,它依賴於舊的行為。
歸根結底,ReST的關鍵部分是在URI中包含足夠的信息以供URI標識與之相關的資源。 URI應該是標識資源所需要的全部內容 ,而不必依賴帶外信息或實現細節來進一步標識要尋址的資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.