2017-05-22 20 views

答えて

0

はい、可能です。release 3.0.0です。

schema { 
    query: QueryType 
} 

type QueryType { 
    hero(episode: Episode): Character 
    human(id : String) : Human 
    droid(id: ID!): Droid 
} 

あなたはこのような実行可能スキーマに次IDL-ファイル(starWarsSchema.graphqlsを)を変換することができます。また、あなたがbuildRuntime機能を実装する必要が

SchemaParser schemaParser = new SchemaParser(); 
SchemaGenerator schemaGenerator = new SchemaGenerator(); 

File schemaFile = loadSchema("starWarsSchema.graphqls"); 

TypeDefinitionRegistry typeRegistry = schemaParser.parse(schemaFile); 
RuntimeWiring wiring = buildRuntimeWiring(); 
GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeRegistry, wiring); 

固定スキーマをリゾルバで配線します。

RuntimeWiring buildRuntimeWiring() { 
    return RuntimeWiring.newRuntimeWiring() 
      .scalar(CustomScalar) 
      .type("QueryType", typeWiring -> typeWiring 
        .dataFetcher("hero", new StaticDataFetcher(StarWarsData.getArtoo())) 
        .dataFetcher("human", StarWarsData.getHumanDataFetcher()) 
        .dataFetcher("droid", StarWarsData.getDroidDataFetcher()) 
      ) 
      .build(); 
} 

あなたはgraphql-java documentationで見つけることができ、より詳細な例。

+0

ご回答いただきありがとうございます。私もこれを試しましたが、Mavenリポジトリで提供された最新のjarファイルはこれをサポートしていません。私はこれが最新の瓶に欠けているコードの一部に起因すると思う。 ** SchemaGenerator **ファイルはサポートされていません。これを確認してください。 –

+1

最新のリリース3.0.0で動作しています。このバージョンを持っていることを確認してください。おそらく前に明示的に 'mvn clean'を明示的に実行してください。 –

+0

idlでコメントや説明を使用できるかどうかは知っていますか? – atott