我的问题基于这篇文章:should-restful-apis-include-relationships
假设我有以下资源:用户和角色
api / users / {userId} 可以检索单个用户, api / roles / {roleId}
可以检索单个角色单个用户的响应数据如下所示:
Id: 1
Firstname: Alice
Lastname: Henderson
Email: alice@henderson.com
Roles: api/users/1/roles
要获取此用户的角色,应用程序需要调用返回的网址 api / users / 1 / roles
为了显示1个用户,这种方法似乎没问题。但是,如果我想要显示具有相应角色的所有用户,则应用程序需要1次调用 api / users ,x调用 api / users / x / roles
如何改进此设计以检索多个用户并解决他们的角色关系?
答案 0 :(得分:1)
您可以设计API以接受一个或多个指定所需详细级别的查询参数。例如:
GET /api/users/1?expand=role(self, id, name)
{
"id": 1
"firstName": "Alice"
"lastName": "Henderson"
"email": "alice@henderson.com"
"roles": [
{
"self": "api/roles/4"
"id": 4
"name": "Administrator"
},
{
"self": "api/roles/7"
"id": 7
"name": "Uberuser"
}
]
}