<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          gqlengineGo 語(yǔ)言的 GraphQL 解決方案

          聯(lián)合創(chuàng)作 · 2023-09-19 18:52

          gqlengine 是一個(gè) GraphQL golang 解決方案(服務(wù)端框架),基于 graphql-go,但無(wú)需繁雜的配置語(yǔ)句,也無(wú)需二次編輯 schema 和 resolver(兩次編寫(xiě)業(yè)務(wù)代碼),僅通過(guò) go-reflection,自動(dòng)解析 resolver function,并自動(dòng)創(chuàng)建關(guān)聯(lián)的 graphql 類(lèi)型。如以下代碼:

          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)
            }
          }

          實(shí)際僅需要 engine.NewQuery(MySimpleQuery) 即可,gqlengine 會(huì)自動(dòng)查找該 func 的入?yún)⒑统鰠ⅲ茖?dǎo)出對(duì)應(yīng)的 graphql 類(lèi)型,比如 MySimpleQuery 返回了 MyInfo 類(lèi)型,MyInfo 結(jié)構(gòu)里標(biāo)記該類(lèi)型是 GraphQL Object,gqlengine 在 Init() 中就自動(dòng)創(chuàng)建了該 Object。

          GQLEngine 目前已經(jīng)支持各類(lèi) GraphQL 類(lèi)型的 reflection,同時(shí)還具備以下強(qiáng)大特性:

          • Websocket Subscription 支持(繼承了 Websocket,使用者無(wú)需配置)
          • Multipart Upload (支持通過(guò) graphql 上傳任意多個(gè)圖片、文件等)
          • Tracing extensions(支持對(duì) graphql 調(diào)用層次/鏈路跟蹤,結(jié)合 playground 支持圖形形式觀察)

          瀏覽 21
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩A片免费观看 | 久久诱惑 | 国产大鸡八网 | 性爱视频网页 | 亚洲日韩AV电影 |