2013-08-24 50 views
1

我的問題是基於這篇文章:should-restful-apis-include-relationshipsREST風格的設計:解決關係

比方說,我有以下資源:用戶和角色

一個用戶可以通過API /用戶/ {userId的檢索}和由API /角色/ {角色ID}

單個用戶的響應數據看起來像這樣一個角色:

Id: 1 
Firstname: Alice 
Lastname: Henderson 
Email: [email protected] 
Roles: api/users/1/roles 

爲了讓應用程序需要調用返回的URL API /用戶/ 1 /角色

爲了顯示1個用戶這種做法似乎是確定該用戶的角色。但是,如果我想與他們對應的角色來顯示所有用戶的應用需要1次來電,API /用戶和X到API /用戶/ X /角色調用

怎麼可以這樣設計用於檢索多個用戶得到改善並解決他們的角色關係?

回答

1

您可以設計您的API以接受一個或多個查詢參數,這些查詢參數指定您所需的詳細級別。例如:

GET /api/users/1?expand=role(self, id, name) 

{ 
    "id": 1 
    "firstName": "Alice" 
    "lastName": "Henderson" 
    "email": "[email protected]" 
    "roles": [ 
     { 
      "self": "api/roles/4" 
      "id": 4 
      "name": "Administrator" 
     }, 
     { 
      "self": "api/roles/7" 
      "id": 7 
      "name": "Uberuser" 
     } 
    ] 
}