Repolode
99designs

99designs/gqlgen

スキーマファーストのGraphQL定義から、型安全なGraphQLサーバーコードを生成するGoライブラリ。

スター
10,767
フォーク
1,262
未解決の Issue
396
最終コミット
13 時間前

これは何?

gqlgenは、GraphQLサーバーを構築するためのGoライブラリです。GraphQL Schema Definition LanguageでAPIを定義すると、必要なGoの型とresolverインターフェースが生成されるため、定型コードはgqlgenに任せてビジネスロジックの実装に集中できます。生成されるコードは全体を通じて型付けされており、map[string]interface{}には依存しません。

go generateワークフローで実行でき、tool dependenciesを通じてGoツールチェーンに統合されています。設定はgqlgen.ymlファイルで行い、GraphQLの型を既存のGo structに対応付けたり、特定のフィールドでresolverを必須にしたり、IDの表現方法をintやstringなどに変更したりできます。フィールドresolverは並行実行でき、並行度はworker_limit設定で制御できます。

リポジトリには、ほかのGo製GraphQL実装との機能比較ページのほか、入門チュートリアル、pkg.go.devのリファレンスドキュメント、サンプルアプリケーションも含まれています。

主な機能

  • 01スキーマファーストの開発:GraphQL SDLでAPIを定義し、そこからコードを生成します。
  • 02型付きのGoモデルとresolverインターフェースを生成し、型のないmapを使わずに済みます。
  • 03gqlgen.ymlまたはdirectiveを使って、GraphQLの型を既存のGo structに対応付けられます。
  • 04不要な子データの取得を避けるため、特定のフィールドでresolverを必須にできます。
  • 05IDの型をint、uint、stringの間で設定できます。
  • 06worker limitを設定して、フィールドresolverの並行実行を制御できます。

ユースケース

  • 型安全性を重視したGo製GraphQL APIバックエンドの構築。
  • 既存のGo structやデータモデルにGraphQLレイヤーを追加。
  • APIスキーマを先に設計し、そこからサーバーコードを生成したいチーム。

クイックスタート

  1. 1

    新しい Go モジュールのディレクトリを作成して移動する

    mkdir example cd example go mod init example
  2. 2

    ツール依存関係として gqlgen を追加する

    go get -tool github.com/99designs/gqlgen
  3. 3

    gqlgen の設定を初期化してモデルを生成する

    go tool gqlgen init
  4. 4

    GraphQL サーバーを起動する

    go run server.go

使う前に知っておきたいこと

  • Go のインストールが必要で、Go サーバー専用のライブラリです。
  • スキーマファースト設計のため、GraphQL スキーマとリゾルバーは自分で記述する必要があります。

トピック

よくある質問

gqlgen とは?
スキーマファーストのGraphQL定義から、型安全なGraphQLサーバーコードを生成するGoライブラリ。 gqlgenは、GraphQLサーバーを構築するためのGoライブラリです。GraphQL Schema Definition LanguageでAPIを定義すると、必要なGoの型とresolverインターフェースが生成されるため、定型コードはgqlgenに任せてビジネスロジックの実装に集中できます。生成されるコードは全体を通じて型付けされており、map[string]interface{}には依存しません。
gqlgen は無料で使えますか?ライセンスは?
gqlgen は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
gqlgen は今もメンテナンスされていますか?
活発にメンテナンス中。gqlgen の最終コミットは 2026年10月21日 です。
gqlgen は何に使えますか?
型安全性を重視したGo製GraphQL APIバックエンドの構築。 既存のGo structやデータモデルにGraphQLレイヤーを追加。 APIスキーマを先に設計し、そこからサーバーコードを生成したいチーム。
gqlgen のインストール方法は?
新しい Go モジュールのディレクトリを作成して移動する: mkdir example cd example go mod init example ツール依存関係として gqlgen を追加する: go get -tool github.com/99designs/gqlgen gqlgen の設定を初期化してモデルを生成する: go tool gqlgen init GraphQL サーバーを起動する: go run server.go
gqlgen はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/99designs/gqlgen

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト