【发布时间】:2017-03-12 20:59:40
【问题描述】:
在 GraphQL 中响应通常如下所示。
{
"data": [{
"id": 1,
"username": "Jon Snow",
"email": "crow@northofthew.all",
"age": 20
}, {
"id": 2,
"username": "Tyrion Lannister",
"email": "drunk@i.mp",
"age": 34
}, {
"id": 3,
"username": "Sansa Stark",
"email": "redhead@why.me",
"age": 17
}]
}
是否可以将元数据添加到您的响应中,例如这样的分页。
{
"pagination": {
"total": 14,
"count": 230,
},
"data": [{
"id": 1,
"username": "Jon Snow",
"email": "crow@northofthew.all",
"age": 20
}, {
"id": 2,
"username": "Tyrion Lannister",
"email": "drunk@i.mp",
"age": 34
}]
}
我正在使用 express-graphql,目前将这些分页放在自定义响应标头中,这很好,但可以更好。由于 GraphQL 响应已经被“数据”包裹,因此在其响应中添加更多“数据”并不是很奇怪。
【问题讨论】:
-
根据规范,这不会是a valid GraphQL response(“为确保将来对协议的更改不会破坏现有的服务器和客户端,顶级响应映射不得包含除上述三个。”)。我猜你可以把它打包成一个
extensions键,或者use other pagination approaches。 -
@CommonsWare 你是对的。谢谢!