Skip to main content

Explorerの利用

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

GraphQL Explorerについて

GraphQL Explorerは、「グラフィカルでインタラクティブなブラウザ内のGraphQL IDE」である GraphiQLのインスタンスです。

GraphiQLの利用

GraphiQLアプリケーションを使うには、https://github.com/skevy/graphiql-app からダウンロードしてインストールしてください。

GraphiQLの設定

  1. OAuthトークンを取得してください。
  2. GraphiQLを起動してください。
  3. GraphiQLの右上で、Edit HTTP Headers(HTTPヘッダの編集)をクリックしてください。
  4. Keyフィールドに、Authorizationと入力してください。 ValueフィールドにはBearer <token>と入力してください。ここで、<token>は生成したOAuthトークンです。 graphiqlのヘッダー
  5. トークンの右のチェックマークをクリックして保存してください。
  6. エディタに戻るには、Edit HTTP Headers(HTTPヘッダの編集)モーダルの外をクリックしてください。
  7. GraphQL Endpointフィールドに、https://api.github.com/graphqlを入力してください。
  8. Method(メソッド)ドロップダウンメニューで、POSTを選択してください。

ノート: メソッドがPOSTである理由に関する詳しい情報については「GraphQLでの通信」を参照してください。

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

query {
  viewer {
    login
  }
}

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

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

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

Docsサイドバーには、「リファレンス」の下にあるスキーマから自動的に生成されるものと同じ内容が含まれていますが、所々形式が異なっています。

変数ペインの利用

サンプルの呼び出しの中には、以下のように書かれる変数を含むものがあります。

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

これは、cURLのPOSTで呼び出しをサブミットするための正しいフォーマットです(改行をエスケープするかぎりにおいて)。

この呼び出しをExplorerで実行したい場合は、メインペインにqueryセグメントを入力し、その下のQuery Variables(クエリ変数)ペインに変数を入力してください。 Explorerからはvariableという語は省略してください。

{
   "number_of_repos": 3
}

サポートのリクエスト

For questions, bug reports, and discussions about GitHub Apps, OAuth App, and API development, explore the APIs and Integrations discussions on GitHub Community. The discussions are moderated and maintained by GitHub staff, but questions posted to the forum are not guaranteed to receive a reply from GitHub staff.

以下の場合は、連絡フォームを使ってGitHub Supportに直接連絡することを検討してください。

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