2016-04-06 11 views
8

GraphQLは、クライアントに、そのフィールドがnullでない場合にのみフィールドを必要としていることをサーバに伝える可能性がありますか?GraphQLクエリ:NULLでない場合にのみフィールドを含める

は、応答が、その後GraphQL仕様に違反することなく

{ 
    "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" 
     } 
     ] 
    } 
    } 
} 

これが可能であるようになっているはずのクエリ

query HeroAndFriends { 
    hero { 
    name 
    friends { 
     name 
    } 
    } 
} 

を考えると?

+0

ちょうど不思議なことに、この動作のユースケースは何ですか? –

+1

@AhmadFerdousBinAlamデシリアライズ時に上書きしたくないデフォルト(非ヌル)の値を持つKotlinデータクラスがあります。 – FWeigl

+0

@Ahmad Ferdousは、ユースケースに関して、サーバーがスパースデータを持つアイテムの配列を返す場合はどうなりますか?各オブジェクトには多くのフィールドがありますが、実際にはnullではなくむしろいくつかのフィールドしか含まれていません。これらのフィールドをペイロードから除外して、APIレスポンスの全体的なサイズを小さくする方が良いのではないでしょうか? – margaretkru

答えて

4

私が知る限り、これは不可能です。directives @skipと@includeのようなものがあります。ディレクティブは変数ですが、graphqlチームでディレクティブを拡張して、nullでない場合にのみフィールドを含めることができます。

関連する問題