2017-08-21 19 views
1

私はApolloクライアントでJava GraphQLサーバーを実行しています。私のモデルはPersonasに基づいており、それぞれが「Actor」、「SoccerPlayer」、「Politician」などとなり、すべてが「Person」インターフェースを実装します。GraphQLは複数のタイプのオブジェクトをサポートしていますか?

Search (text: "Ronald Reagan"){ 
    id 
    name 
    ... on Actor{ 
     films{ 
      name 
     } 
    } 
    ... on Politician{ 
     party{ 
      name 
     } 
    } 
} 

を照会するとき、例えば 私はしかし、一方のエンティティは、2つのタイプがあるかもしれない、「人のリストを返す、「検索」フィールドを持っている... 、私は「映画」の両方を得ることを期待すると前の米国の大統領と俳優のための 'パーティー'ですが、typeResolver(サーバー側)は1つのタイプのみを返すように強制します。これはGraphQLを使って実現可能ですか?多分私のモデルは間違っていますか?あなたの特定の構造、Personは、1つまたは他のではなくActorPolitician両方のいずれかであることができるとして おかげ

+0

私はそう信じません。私はこれに関するGithub APIの検索から外していますが、検索ではSearchResultItemConnectionが返されますが、検索でUSER、ISSUE、またはREPOSITORYを指定する必要があります。 3タイプ。ウェブサイトの検索結果はすべて3つであるため、それぞれのタイプごとに3つの別々のクエリを実行すると思います –

答えて

0

GraphQL仕様は、マルチレベルの継承はできません。

あなたがインタフェースにActorPoliticianになっている場合は、自分で自分の目標に少し近づくことができていますが、再び、全くマルチレベルの継承が可能ではない、としてそれぞれ1でPersonからフィールドを繰り返さなければならないと思います。

関連する問題