は、私は、スキーマを作成して、私のエクスプレス、それをサーバに接続するGraphQLスキーマ文字列を使用しています方法ですGraphQL buildSchemaで労働組合を使用する方法:ここ
var graphql = require('graphql');
var graphqlHTTP = require('express-graphql');
[...]
return graphqlHTTP({
schema: graphql.buildSchema(schemaText),
rootValue: resolvers,
graphiql: true,
});
これは、モジュールのすべての非常に基本的な使用です。内容を照会することは、それが関係している何が正しいオブジェクトを返しますがメッセージで失敗し、私はこの作品を作るする方法を発見した
union MediaContents = Photo|Youtube
type Media {
Id: String
Type: String
Contents: MediaContents
}
:それはうまく機能し、私は労働組合を定義するまで、非常に便利ですGenerated Schema cannot use Interface or Union types for execution
。
buildSchemaを使用するときに、すべて共用体を使用できますか?あなたは、単にGraphQLでいつものように、労働組合に__resolveType
方法を提供することにより、労働組合を使用することができますhttp://dev.apollodata.com/tools/graphql-tools/resolvers.html#Unions-and-interfaces
:我々はbuildSchema
の生産準備ができて、過給バージョンのようなものですgraphql-tools
パッケージを、作成した理由はまさに
これは私が思ったことですが、buildSchemaでそれを行う方法はありません。私はプロジェクトに依存関係をもう1つ追加する前に確かめたいと思っていました:) もう1つの質問:私はresolverMapの構文をよく理解していませんが、Vehicleはインラインで定義されたクラスです(前に、私はC++の方が多く、JSでいつも混乱しています:D) –
OK、統合が完了しました。 ありがとう! –
これはすばらしい答えです。ちょうど私が探していたもの。 –