在我目前的WebAPI设计中,我计划允许客户端(API使用者)选择应包含哪些链接资源。
我的方案是:
GET /api/member/1
返回:
{
"memberId": 1,
"headshot": {
"href": "http://localhost/api/member/1/photo/1",
"id": 1
},
"photos": {
"href": "http://localhost/api/member/1/photo"
}
... more ...
}
因此默认响应包含指向所需资源的“链接”。在这种情况下,爆头通常是经常需要的常见字段,并且听起来很复杂,必须分别请求爆头细节。
我想做的是:
GET /api/member/1?embedded=headshot
返回:
{
"memberId": 1,
"headshot": {
"href": "http://localhost/api/member/1/photo/1",
"id": 1,
"large": "http://localhost/images/large/1.jpg",
"thumb": "http://localhost/images/thumb/2.jpg",
... more ...
},
"photos": {
"href": "http://localhost/api/member/1/photo"
}
... more ...
}
问题:
WebAPI 2.2中最好/推荐的方法是操纵响应以“添加”“嵌入”资源所需的其他字段。
这种方法有哪些重大缺陷?
答案 0 :(得分:0)
这是API实现者非常常见的性能改进,通常称为侧面加载。我猜你还没有按照特定的" json api"标准,但你可以从http://jsonapi.org等方面获得灵感。
作为API使用者,我不会惊讶于能够使用查询参数指定要包含的相关资源。