Skip to main content

Explorerの利用

ブラウザ内で動作する統合開発環境であるGraphQL Explorerを使って、本物のGitHubのデータに対してクエリを実行できます。GraphQL Explorerには、ドキュメント、シンタックスハイライト、検証エラーが含まれています。

GraphQL Explorerについて

GraphQL Explorer は、GraphiQL のインスタンスです。これは "グラフィカル インタラクティブ ブラウザー内 GraphQL IDE" です。

Altair GraphQL クライアント IDE を使用する

多くのオープンソース GraphQL クライアント IDE があります。 たとえば、Altair を使用して、GitHub の GraphQL API にアクセスできます。 Altair を使用して GraphQL API にアクセスするには、altair-graphql/altair からダウンロードしてインストールします。 その後、次の構成手順に従います。

Altair の構成

  1. アクセス トークンを取得します。
  2. Altair を起動します。
  3. 左側のサイド バーで、Altair ロゴの下にある [ヘッダーの設定] をクリックします。 新しいウィンドウが開きます。
  4. [ヘッダー キー] フィールドに「Authorization」と入力します。
  5. [ヘッダー値] フィールドに「Bearer TOKEN」と入力し、TOKEN を最初の手順のトークンに置き換えます。
  6. ウィンドウの右下隅にある [保存] をクリックして、承認ヘッダーを保存します。
  7. [GraphQL エンドポイント] フィールドに、「https://api.github.com/graphql」と入力します。
  8. GitHub GraphQL スキーマを読み込むために、パブリック スキーマをダウンロードします。
  9. Altair で、右上にある [ドキュメント] 、次に 3 つのドット、それから [スキーマの読み込み...] をクリックします
  10. 前の手順でダウンロードしたファイル パブリック スキーマを選択します。

: メソッドが POST である理由について詳しくは、「GraphQLでの呼び出しの作成」をご覧ください。

自分自身についてのクエリを実行することで、アクセスのテストができます。

query {
  viewer {
    login
  }
}

すべてが正しく動作していれば、これでログイン情報が表示されます。 これでクエリを発行する準備ができました。

サイドバードキュメントへのアクセス

GraphQL スキーマ内のすべての型には、ドキュメントにコンパイルされる description フィールドが含まれています。 Explorer ページの右側にある折りたたみ可能な [Docs] ペインからは、型システムに関するドキュメントを参照できます。 このドキュメントは自動的に更新され、非推奨のフィールドは削除されます。

[Docs] サイドバーには、「GitHub GraphQL API に関するドキュメント」にあるスキーマから自動的に生成されるものと同じ内容が含まれていますが、所々形式が異なっています。

変数ペインの利用

呼び出しの例には、次のように記述された変数が含まれます。

query($number_of_repos:Int!){
  viewer {
    name
     repositories(last: $number_of_repos) {
       nodes {
         name
       }
     }
   }
}
variables {
   "number_of_repos": 3
}

これは、(改行をエスケープする限り) curl コマンドで POST 要求を使って呼び出しを送信する正しい形式です。

この呼び出しを Explorer で実行したい場合は、メイン ペインに query セグメントを、その下の [クエリ変数] ペインに変数を入力してください。 Explorer から単語 variables を省略します。

{
   "number_of_repos": 3
}

サポートのリクエスト

GitHub Apps、OAuth apps、API 開発に関する疑問、バグ レポート、ディスカッションについては、GitHub のコミュニティ ディスカッションの API と Webhook カテゴリ を調べてください。 このディスカッションは GitHub のスタッフによって進行および管理されていますが、フォーラムに投稿された質問に GitHub のスタッフが必ずしも返答するとは限りません。

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

  • GitHubのスタッフからの反応を確実に得たい場合
  • センシティブなデータやプライベートな懸念事項に関わるサポートリクエスト
  • 機能リクエスト
  • GitHubの製品に関するフィードバック

エラーのトラブルシューティング

GraphQL は内省的であるため、Explorer では次のことがサポートされています。

  • インテリジェントに現在のスキーマを先行して認識
  • 入力中の検証エラープレビュー

整形式ではない、またはスキーマ検証に合格しないクエリを入力すると、エラーの警告がポップアップで表示されます。 そのクエリを実行すると、レスポンスペインにエラーが返されます。

GraphQL 応答には、data ハッシュと errors 配列といういくつかのキーが含まれています。

{
  "data": null,
  "errors": [
    {
      "message": "Objects must have selections (field 'nodes' returns Repository but has no selections)",
      "locations": [
        {
          "line": 5,
          "column": 8
        }
      ]
    }
  ]
}

スキーマに関係ない、予想外のエラーに行き当たることもあります。 そうなった場合には、メッセージには問題を報告する際に利用できる参照コードが含まれます。

{
  "data": null,
  "errors": [
    {
      "message": "Something went wrong while executing your query. This is most likely a GitHub bug. Please include \"7571:3FF6:552G94B:69F45B7:5913BBEQ\" when reporting this issue."
    }
  ]
}

注: GitHub は、データを実働環境で使う前にエラーをチェックしておくことをお勧めします。 GraphQLでは、失敗は全体的なものではありません。GraphQLクエリの一部が成功し、その他の部分が失敗しているということもあります。