Skip to main content

Explorerの利用

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

GraphQL Explorerについて

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

クエリオートコンプリート

クエリオートコンプリートを使用すると、クエリの作成に役立ちます。 メイン ペインのクエリの中かっこ内で、コントロール+スペースまたはシフト+スペースを使用してオートコンプリート メニューを表示します。

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

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
}

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 Endpoint] フィールドに、GraphQL URL (例: https://api.github.com/graphql) を入力します。
  8. GitHub GraphQL スキーマを読み込むために、パブリック スキーマをダウンロードします。
  9. Altair で、右上にある [ドキュメント] 、次に 3 つのドット、それから [スキーマの読み込み...] をクリックします
  10. 前の手順でダウンロードしたファイル パブリック スキーマを選択します。

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

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

query {
  viewer {
    login
  }
}

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

サポートのリクエスト

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クエリの一部が成功し、その他の部分が失敗しているということもあります。