来自宏生成的架构
Schema from a macro generation
我尝试使用此处示例中的 graphql 宏生成示例模式:http://sangria-graphql.org/learn/#based-on-idl-definitions 并从第 46 行的 AstSchemaMaterializer.scala 获得 "Must provide one query type in schema."。似乎两者都不喜欢架构中定义的 Hello 和 Yellow 查询。删除一个后,它能够正确解析示例。我也看不到为任何类型指定解析函数的方法。有人试过吗?
谢谢!
仅供参考,我们在 gitter 聊天中讨论过它:
https://gitter.im/sangria-graphql/sangria?at=57c70ec8ff952280079f484c
文档包含错误,但现在已修复。
buildFromAst
方法接受第二个参数,它是一个架构构建器。它允许您定制模式生成的任何方面,其中还包括字段解析器。这是一个小例子:
val ast =
graphql"""
schema {
query: Hello
}
type Hello {
bar: Bar
}
type Bar {
isColor: Boolean
}
"""
val clientSchema: Schema[Any, Any] =
Schema.buildFromAst(ast, new DefaultAstSchemaBuilder[Any] {
override def resolveField(typeDefinition: TypeDefinition, definition: FieldDefinition): Context[Any, _] ⇒ Action[Any, _] =
// your resolve logic goes here
})
可以在测试中找到更复杂和完整的示例。例如这个:https://github.com/sangria-graphql/sangria/blob/e5a5d2c5ced3ce03c2e9437886be4683cf11ce6a/src/test/scala/sangria/schema/AstSchemaMaterializerSpec.scala#L901-L901
我尝试使用此处示例中的 graphql 宏生成示例模式:http://sangria-graphql.org/learn/#based-on-idl-definitions 并从第 46 行的 AstSchemaMaterializer.scala 获得 "Must provide one query type in schema."。似乎两者都不喜欢架构中定义的 Hello 和 Yellow 查询。删除一个后,它能够正确解析示例。我也看不到为任何类型指定解析函数的方法。有人试过吗?
谢谢!
仅供参考,我们在 gitter 聊天中讨论过它:
https://gitter.im/sangria-graphql/sangria?at=57c70ec8ff952280079f484c
文档包含错误,但现在已修复。
buildFromAst
方法接受第二个参数,它是一个架构构建器。它允许您定制模式生成的任何方面,其中还包括字段解析器。这是一个小例子:
val ast =
graphql"""
schema {
query: Hello
}
type Hello {
bar: Bar
}
type Bar {
isColor: Boolean
}
"""
val clientSchema: Schema[Any, Any] =
Schema.buildFromAst(ast, new DefaultAstSchemaBuilder[Any] {
override def resolveField(typeDefinition: TypeDefinition, definition: FieldDefinition): Context[Any, _] ⇒ Action[Any, _] =
// your resolve logic goes here
})
可以在测试中找到更复杂和完整的示例。例如这个:https://github.com/sangria-graphql/sangria/blob/e5a5d2c5ced3ce03c2e9437886be4683cf11ce6a/src/test/scala/sangria/schema/AstSchemaMaterializerSpec.scala#L901-L901