【发布时间】:2016-07-26 21:39:09
【问题描述】:
只有当字段不是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 规范的情况下实现?
【问题讨论】:
-
只是想知道:这种行为的用例是什么?
-
@AhmadFerdousBinAlam 我有一个带有默认(非空)值的 Kotlin 数据类,我不想在反序列化时被覆盖。
-
@Ahmad Ferdous,关于用例,如果服务器返回具有稀疏数据的项目数组怎么办?就像每个对象都有很多字段一样,其中只有少数实际上包含某些内容而不是 null。将这些字段从有效负载中排除以减小 api 响应的整体大小不是更好吗?
标签: graphql