快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页新闻资讯软件资讯 → gqlengine 开源并发布第一版

gqlengine 开源并发布第一版

时间:2020-02-11 17:19:20人气:作者:快盘下载我要评论

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


gqlengine 开源并发布第一版



如以下代码:

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 支持图形形式观察)

网友评论

快盘下载暂未开通留言功能。

推荐文章

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。