Go实战全家桶之四: gomini迷你框架之集成gqlengine、rest秒变graphql
warning:
这篇文章距离上次修改已过191天,其中的内容可能已经有所变动。
package main
import (
"context"
"fmt"
"log"
"net/http"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/99designs/gqlgen/graphql/playground"
"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
"github.com/gorilla/mux"
"github.com/rs/cors"
)
type Query struct{}
// This function is not important for the purpose of this example.
// It simply mocks a function to handle a GraphQL query.
func (q *Query) Hello() string {
return "Hello, world!"
}
func main() {
// 初始化GraphQL引擎
execSchema := generated.NewExecutableSchema(generated.Config{Resolvers: &resolvers.Resolver{}})
h := handler.New(execSchema)
// 创建一个Go语言的net/http服务器
srv := &http.Server{Addr: ":8080"}
// 创建一个Go语言的路由器
r := mux.NewRouter()
// 为路由器添加GraphQL Playground
r.Handle("/", playground.Handler("GraphQL playground", "/query"))
// 为路由器添加GraphQL查询端点
r.Handle("/query", h)
// 设置服务器的路由为路由器
srv.Handler = r
// 启动服务器并监听错误
log.Fatal(srv.ListenAndServe())
}
这个代码示例展示了如何在Go语言项目中使用gqlgen
库来创建一个GraphQL服务器,并将其与一个基本的mux路由器集成。它提供了一个简单的查询函数,并设置了GraphQL的Playground,使得用户可以在浏览器中进行GraphQL查询。这个示例简洁而完整,可以作为开发者实现GraphQL服务器的参考。
评论已关闭