您现在的位置是:首页 > 文章详情

gqlengine 开源并发布第一版

日期:2020-02-07点击:663

gqlengine 是凯斐德科技开源的 一个graphql golang 解决方案(服务端框架),基于 graphql-go,但无需繁杂的配置语句,也不像 gopher-graphql/graphql-go 那样编写 schema 再编写对应 resolver(两次编写业务代码),而是通过 go-reflection,解析给入的 resolver function,自动分析并创建的 graphql 类型。如以下代码:

 package main import ( "net/http" "github.com/gqlengine/gqlengine" ) type MyInfo struct { gqlengine.IsGraphQLObject `gqlDesc:"my info"` SaySomething string } func MySimpleQuery() error { panic("not implemented") } func main() { engine := gqlengine.NewEngine(gqlengine.Options{ Tracing: true, // enable tracing extensions }) // register your queries, mutations and subscriptions engine.NewQuery(MySimpleQuery) // do NOT forget init the 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) } }

实际仅需要 engine.NewQuery(MySimpleQuery) 即可,gqlengine 会自动查找该 func 的入参和出参,推导出对应的 graphql 类型,比如 MySimpleQuery 返回了 MyInfo 类型,MyInfo 结构里标记该类型是 GraphQL Object,gqlengine 在 Init() 中就自动创建了该 Object。

GQLEngine 目前已经支持各类 GraphQL 类型的 reflection,同时还具备以下强大特性:

  • Websocket Subscription 支持(继承了 Websocket,使用者无需配置)
  • Multipart Upload (支持通过 graphql 上传任意多个图片、文件等)
  • Tracing extensions(支持对 graphql 调用层次/链路跟踪,结合 playground 支持图形形式观察)
原文链接:https://www.oschina.net/news/113222/gqlengine-1-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章