如果该字段不是null
,GraphQL是否有可能让客户端告诉服务器它只想要一个字段?
给出查询
query HeroAndFriends {
hero {
name
friends {
name
}
}
}
响应应该看起来像
{
"data": {
"hero": {
"friends": [
{
"name": "Luke Skywalker"
},
{
"name": "Han Solo"
},
{
"name": "Leia Organa"
}
]
}
}
}
而不是
{
"data": {
"hero": {
"name": null,
"friends": [
{
"name": "Luke Skywalker"
},
{
"name": "Han Solo"
},
{
"name": "Leia Organa"
}
]
}
}
}
这可能不违反GraphQL规范吗?
答案 0 :(得分:5)
据我所知,这是不可能的,有directives喜欢@skip和@include。指令,但他们需要一个变量,我认为你可以让graphql团队将你的指令扩展到只包含该字段,如果它不是空的。
答案 1 :(得分:1)
您可以在前端使用此ES6语法:
Object.keys(data).forEach((key) => (data[key] == null) && delete data[key]);