如何将ast.Document转换为graphql.Schema

时间:2016-12-21 15:34:06

标签: go graphql

我想使用graphql类型的系统语言来创建一个可以用于我的应用程序的模式。在应用程序本身,我想挂钩解析器。将类型系统文件解析为有效的ast.Document是没有问题的

func parseSchemaToAST(t *testing.T, globalSchemaFile string) *ast.Document {
    buffer, err := ioutil.ReadFile(globalSchemaFile)
    if err != nil {
        t.Fatalf("Error loading global schema file %v", err)
    }

    astDoc, err := parser.Parse(parser.ParseParams{
        Source: string(buffer),
        Options: parser.ParseOptions{
            NoLocation: true,
        },
    })

    if err != nil {
        t.Fatalf("Parse failed: %v", err)
    }

    return astDoc
}

我也可以将这个ast.Document转换回类型系统语言。 (通过graphql / language / printer)但是我应该如何从ast.Document转换为graphql.Schema?在graphql-js实现中,我发现了一个带有签名

的有用函数
function buildASTSchema(ast: Document): GraphQLSchema

graphql-go对应的是什么。我想避免自定义实现

0 个答案:

没有答案