graphjin 试用
以前大概介绍过graphjin的特性,以下是一个试用
注意需要docker&&docker-compose 安装
安装
go get github.com/dosco/graphjin
创建app
graphjin new app
效果
使用
注意需要注释关于resolvers 的部分(有异常)
cd app
docker-compose run api db:setup
docker-compose up
代码使用
- main.go
package main
import (
"context"
"database/sql"
"fmt"
"log"
"github.com/dosco/graphjin/core"
_ "github.com/jackc/pgx/v4/stdlib"
)
func main() {
db, err := sql.Open("pgx", "postgres://postgres:postgres@localhost:5432/app_development")
if err != nil {
log.Fatal(err)
}
sg, err := core.NewGraphJin(nil, db)
if err != nil {
log.Fatal(err)
}
query := `
query {
users{
id
full_name
email
}
}`
ctx := context.Background()
ctx = context.WithValue(ctx, core.UserIDKey, 1)
res, err := sg.GraphQL(ctx, query, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(res.Data))
}
效果
说明
graphjin 的自动graphql 编译sql 是一个很不错的功能,类似的hasura也是使用类似的技术,但是graphjin使用起来更加简单
参考资料
https://github.com/dosco/graphjin
https://graphjin.com/docs/home/