Skip to main content

GraphQL APIについて

GitHubのGraphQL APIは、柔軟性と、フェッチしたいデータを正確に定義できる機能を提供します。

概要

以下は、GraphQL APIを使い始めるためのクイックリンクです。

GitHub の API について詳しくは、「GitHubの REST API と GraphQL API の比較」を参照してください。

GraphQLについて

          [GraphQL](https://graphql.org/) データ クエリ言語は次のとおりです。

          [仕様](https://spec.graphql.org/June2018/)。** 仕様は、API サーバー上の [schema](/graphql/guides/introduction-to-graphql#schema) の有効性を決定します。 スキーマは、クライアントの呼び出しの正当性を決定します。

          [厳密に型指定されます](#about-the-graphql-schema-reference)。** スキーマによって、API の型システムとすべてのオブジェクト リレーションシップが定義されます。

          [Introspective](/graphql/guides/introduction-to-graphql#discovering-the-graphql-api).** クライアントはスキーマに対してクエリを実行して、スキーマの詳細を確認できます。

          [Hierarchical](/graphql/guides/forming-calls-with-graphql).** GraphQL 呼び出しの構造は、返される JSON データの構造を反映しています。 
          [Nested フィールド](/graphql/guides/migrating-from-rest-to-graphql#example-nesting)では、1 回のラウンド トリップで指定したデータのみを照会して受信できます。
  • アプリケーション レイヤーです。 GraphQL は、storage モデルまたはデータベース クエリ言語ではありません。 graph は、スキーマで定義されたグラフ構造を参照します。ここで、nodes はオブジェクトを定義し、edges はオブジェクト間のリレーションシップを定義します。 APIは、データがどのように保存されているかに関係なく、スキーマ定義に従ってアプリケーションデータをトラバースして返します。

GitHubが GraphQL を使用している理由

GitHubは、インテグレーターの柔軟性が大幅に向上するため、GraphQL を選択しました。 必要—なデータを正確に定義する機能と、必要_なデータ_のみを—定義できることは、従来の REST API エンドポイントよりも強力な利点です。 GraphQL を使用すると、複数の REST 要求を 1 回の呼び出しに 置き換えて、指定したデータをフェッチできます。

GitHubがGraphQLに投資した理由についての詳細は、元の発表ブログ投稿を参照してください。

GraphQLのスキーマ参照について

サイドバーにあるドキュメントは、GitHub GraphQL スキーマから生成されます。 すべての呼び出しは、このスキーマに対して検証され、実行されます。 以下のドキュメントを使って、呼び出せるデータを見つけてください。

認証やレート制限の詳細など、その他の情報については、guidesを参照してください。

サポートのリクエスト

GitHub Apps、OAuth apps、API 開発に関する疑問、バグ レポート、ディスカッションについては、GitHub のコミュニティ ディスカッションの API と Webhook カテゴリ を調べてください。 ディスカッションは、GitHub スタッフによって管理および維持され、GitHub コミュニティによって回答されます。

次の場合は、お問い合わせフォームを使用して GitHub サポートに直接連絡することを検討してください。

  • GitHub のスタッフからの確実なレスポンス
  • 機密データや個人的な心配に関連するサポート リクエスト
  • 機能に関する要求
  • GitHub の製品に関するフィードバック

予期しないエラーが発生した場合は、githubstatus.com または GitHub 状態 API を使用して、API に影響するインシデントをチェックできます。