在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:GQLEngine开源软件地址:https://gitee.com/gqlengine/gqlengine开源软件介绍:GQLEngine 一个高性能Go语言的GraphQL服务端落地框架Demo
特性
关注我立马体验通过go get go get -u github.com/gqlengine/gqlengine 编写main.go package mainimport ( "net/http" "github.com/gqlengine/gqlengine")// MyInfo 定义了业务的数据结构type MyInfo struct { gqlengine.IsGraphQLObject `gqlDesc:"my info"` // gqlDesc用于生成描述信息 MyStringField string // 定义一个字段,gqlengine会根据golang的基本类型自动匹配到graphql类型 MyIntField int `gqlRequired:"true"` // gqlRequired用于标记该字段是必备非空字段}// MySimpleQuery 是业务的代码的具体实现func MySimpleQuery() (MyInfo, error) { panic("not implemented")}func main() { engine := gqlengine.NewEngine(gqlengine.Options{ Tracing: true, // 使能GraphQL调用链路分析功能 }) engine.NewQuery(MySimpleQuery) // 务必注册你的接口!!! // 初始化engine if err := engine.Init(); err != nil { panic(err) } // serve for HTTP http.HandleFunc("/api/graphql", engine.ServeHTTP) if err := http.ListenAndServe(":8000", nil); err != nil { panic(err) }} 以上是最基本的配置, 如果你想要类似于swagger的API查看和调试工具,我们不仅有,还提供更好的GraphQL Playground功能,仅需添加另外一个包: go get -u github.com/gqlengine/playground 然后再main()中添加以下部分代码: ...import ( "github.com/gorilla/mux" "github.com/gqlengine/playground")...func main() { ... // init your gql engine // 为playground配置GraphQL端点(起码让playground知道该去哪里获得graphql数据吧;)) playground.SetEndpoints("/api/graphql", "/api/graphql/subscriptions") // recommends to use 'gorilla/mux' to serve the playground web assets r := mux.NewRouter() r.HandleFunc("/api/graphql", engine.ServeHTTP) r.HandleFunc("/api/graphql/subscriptions", engine.ServeWebsocket) r.PathPrefix("/api/graphql/playground"). Handler(http.StripPrefix("/api/graphql/playground", http.FileServer(playground.WebBundle))) println("open playground http://localhost:9996/api/graphql/playground/") if err := http.ListenAndServe(":9996", r); err != nil { panic(err) }} 打开浏览器:http://localhost:9996/api/graphql/playground 打赏如果您觉得我们的开源软件对你有所帮助,请拿出手机扫下方二维码打赏我们一杯咖啡。 |
请发表评论