GraphQLは、フィールドがnull
でない場合にのみ、クライアントがサーバーにフィールドが必要であることを通知する可能性がありますか?
与えられたクエリ
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仕様に違反することなくこれは可能ですか?
これが不可能であると私が知る限り、@ skipや@includeのような ディレクティブ があります。ディレクティブですが、変数が必要です。graphqlチームでケースを作成して、nullでない場合にのみフィールドを含めるようにディレクティブを拡張できると思います。
このES6構文はフロントエンドで使用できます。
Object.keys(data).forEach((key) => (data[key] == null) && delete data[key]);