嗨,我是graphql的新手,特别是graphql-java。
是否有可能在GraphQL中使用graphql架构定义语言支持?如果是的话,那怎么可能呢?
发布于 2017-05-23 08:27:12
是的,这是可能的,因为release 3.0.0。
schema {
query: QueryType
}
type QueryType {
hero(episode: Episode): Character
human(id : String) : Human
droid(id: ID!): Droid
}您可以将(以下IDL-File (starWarsSchema.graphqls) )转换为可执行的模式,如下所示:
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);此外,您还必须实现buildRuntime函数以将静态模式与解析器连接起来。
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文档中可以找到一个更详细的示例。
https://stackoverflow.com/questions/44109732
复制相似问题