Go打造REST Server:Graphql进阶
package main
import (
"context"
"fmt"
"log"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/99designs/gqlgen/graphql/playground"
"github.com/gorilla/mux"
"github.com/shijuvar/go-web/graphql"
"net/http"
)
func main() {
// 初始化schema
schema := graphql.NewSchema()
// 创建graphql handler
h := handler.New(schema)
// 设置graphql playground界面
h.SetPlayground(playground.Endpoint("/graphql"))
// 设置graphiql界面
h.Use(extension.Introspection{})
// 创建gorilla/mux路由器
r := mux.NewRouter()
// 将graphql handler绑定到路由/graphql
r.Handle("/graphql", h)
// 将graphql playground绑定到路由/
r.Handle("/", playground.Handler("GraphQL playground", "/graphql"))
// 启动HTTP服务器
http.Handle("/", r)
fmt.Println("GraphQL server started on port 8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
这段代码使用了gqlgen
库来创建一个GraphQL服务器,并通过gorilla/mux
库来管理路由。它设置了GraphQL的播放地点和GraphiQL界面,并启动了一个在端口8080上监听的HTTP服务器。这是一个典型的Go语言中构建GraphQL服务器的示例。
评论已关闭