2013-08-24 120 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" 
     } 
    ] 
}