TL;DR

Go で GraphQL サーバを作るためのライブラリ。Schema first のアプローチに基づき、gqlgen コマンドでスキーマからコードを生成する。

仕組み

gqlgen は「Schema first」「型安全」「コード生成」の 3 つを原則にしている。まず GraphQL のスキーマ定義言語で API を記述し、サーバはそのスキーマを中心に組み立てる。繰り返しになる定型コードは gqlgen コマンドが生成するので、開発者はアプリケーションのロジックに集中できる。型のない汎用的な map をコードに持ち込まないことも重視している。

例

gqlgen コマンドは次のようにインストールする。

$ go install github.com/99designs/gqlgen@latest

今の公式のクイックスタートでは、モジュールを作ってから gqlgen をツールの依存として追加し、go tool gqlgen init で設定ファイルとモデルを生成する。そのあと go run server.go でサーバを起動する。

$ go mod init example
$ go get -tool github.com/99designs/gqlgen
$ go tool gqlgen init
$ go run server.go

設定ファイルの gqlgen.yml では、GraphQL の型と Go のモデルの対応(models:)などを指定する。

関連

出典