GraphQL Explorerについて
GraphiQLはこのドキュメンテーション内ではGraphQL Explorerとも呼ばれており、「グラフィカルでインタラクティブなGraphQL IDE」です。
GraphiQLの利用
GraphiQLアプリケーションを使うには、https://github.com/skevy/graphiql-appからダウンロードしてインストールしてください。
GraphiQLの設定
- OAuthトークンを取得してください。
- GraphiQLを起動してください。
- GraphiQLの右上で、Edit HTTP Headers(HTTPヘッダの編集)をクリックしてください。
- Keyフィールドに、
Authorization
と入力してください。 ValueフィールドにはBearer <token>
と入力してください。ここで、<token>
は生成したOAuthトークンです。 - トークンの右のチェックマークをクリックして保存してください。
- エディタに戻るには、Edit HTTP Headers(HTTPヘッダの編集)モーダルの外をクリックしてください。
- GraphQL Endpointフィールドに、
http(s)://<em>[hostname]</em>/api/graphql
を入力してください。 - 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
}
サポートのリクエスト
GitHub App、OAuth App、API開発に関する疑問、バグレポート、議論については、GitHub API Development and Support Forumを調べてみてください。 このフォーラムはGitHubのスタッフによって進行及び管理されていますが、フォーラムにポストされた疑問に対してGitHubのスタッフからの返答があることは保証されていません。
以下の場合は、連絡フォームを使ってGitHub Supportに直接連絡することを検討してください。
- GitHub Enterprise Serverのスタッフからの反応を確実に得たい場合
- センシティブなデータやプライベートな懸念事項に関わるサポートリクエスト
- 機能リクエスト
- GitHub Enterprise Serverの製品に関するフィードバック
エラーのトラブルシューティング
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クエリの一部が成功し、その他の部分が失敗しているということもあります。