gqlge是一个使用Go语言实现的用于快速创建严格类型的graphql服务器的库。
dep esure -add github.com/vektah/gqlge示例代码
定义schema
schema {query: Querymutatio: Mutatio}type Query {todos: [Todo!]!}type Mutatio {createTodo(text: Strig!): Todo!}type Todo {id: ID!text: Strig!doe: Boolea!user: User!}type User { id: ID! ame: Strig!}
定义模型
package yourapptype Todo struct {ID strigText strigDoe boolUserID it}type User struct { ID strig Name strig}
告诉生成器如何在types.jso中的两者之间进行映射
{ "Todo": "github.com/you/yourapp.Todo", "User": "github.com/you/yourapp.User"}
然后从其中生成运行时
gqlge -out geerated.go在生成的文件的顶部将是与完成所需的图的解析器的接口
package yourapptype Resolvers iterface {Mutatio_createTodo(ctx cotext.Cotext, text strig) (Todo, error)Query_todos(ctx cotext.Cotext) ([]Todo, error)Todo_user(ctx cotext.Cotext, it *Todo) (User, error)}
实现此接口,然后通过将其传递到生成的代码中来创建服务器
fuc mai() {http.Hadle("/query", graphql.Hadler(ge.NewResolver(yourResolvers{})))log.Fatal(http.ListeAdServe(":8080", il))}
评论