添加依赖
require (
github.com/99designs/gqlgen v0.11.3
github.com/vektah/gqlparser/v2 v2.0.1
)
编写schema
在项目根目录创建文件夹,graph,在graph文件夹中新建schema.graphqls文件,在其中编写schema定义,比如
type Query {
hello: String
}
生成go代码
在项目根目录新建go源代码,内容为
package main
import "github.com/99designs/gqlgen/cmd"
func main() {
cmd.Execute()
}
接下来,使用命令生成相关go代码
go run 源代码文件名.go init
此时命令行会输出
validation failed: packages.Load: -: package test/graph/model is not in GOROOT ...
这是因为我们没有在graph文件夹中,创建graph的modal文件夹及源文件(因为我们没有定义其他type,不需要用到,不影响)
此时执行后,目录结构为
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/5/5 16:08 graph
-a---- 2020/5/4 17:44 110 go.mod
-a---- 2020/5/4 17:44 7599 go.sum
-a---- 2020/5/4 17:15 94 gqlgen.go
-a---- 2020/5/5 16:08 1667 gqlgen.yml
-a---- 2020/5/5 16:08 635 server.go
其中的gqlgen.yml和server.go是自动生成的代码,server.go就是运行这个graph服务端程序的go代码,默认使用8080端口,直接将其作为普通go程序运行则代表启动服务端,这里还不能启动,因为我们定义的schema里