GraphQL-Go 示例项目教程
1. 项目的目录结构及介绍
graphql-go-example/
├── README.md
├── go.mod
├── go.sum
├── main.go
├── schema
│ └── schema.go
└── server
└── server.go
- README.md: 项目说明文件。
- go.mod 和 go.sum: Go 模块文件,用于管理项目依赖。
- main.go: 项目的主入口文件。
- schema/: 存放 GraphQL 模式定义的目录。
- schema.go: 定义 GraphQL 模式。
- server/: 存放服务器相关代码的目录。
- server.go: 定义服务器配置和启动逻辑。
2. 项目的启动文件介绍
main.go
main.go
是项目的启动文件,负责初始化服务器并启动服务。以下是 main.go
的主要内容:
package main
import (
"log"
"net/http"
"github.com/topliceanu/graphql-go-example/server"
)
func main() {
s := server.NewServer()
log.Println("Server is running on port 8080")
log.Fatal(http.ListenAndServe(":8080", s))
}
- 导入依赖: 导入了必要的包,包括
log
和net/http
,以及自定义的服务器包server
。 - main 函数: 创建服务器实例并启动 HTTP 服务,监听端口 8080。
3. 项目的配置文件介绍
server/server.go
server/server.go
文件定义了服务器的配置和启动逻辑。以下是 server.go
的主要内容:
package server
import (
"github.com/graphql-go/graphql"
"github.com/graphql-go/handler"
"github.com/topliceanu/graphql-go-example/schema"
)
func NewServer() *handler.Handler {
schema, err := schema.NewSchema()
if err != nil {
panic(err)
}
h := handler.New(&handler.Config{
Schema: &schema,
Pretty: true,
GraphiQL: true,
})
return h
}
- 导入依赖: 导入了
graphql-go
和handler
包,以及自定义的schema
包。 - NewServer 函数: 创建一个新的 GraphQL 处理器,配置了 GraphQL 模式、格式化输出和 GraphiQL 界面。
以上是基于开源项目 https://github.com/topliceanu/graphql-go-example.git
的教程内容,涵盖了项目的目录结构、启动文件和配置文件的介绍。