GitHub API のサイトからダウンロードする方法
次のサイトから GitHub GraphQL API のスキーマ定義ファイル (schema.docs.graphql
) をダウンロードすることができます。
例えば、このファイル内の Query
オブジェクト (type Query
) の定義を見ると、クエリのトップレベルにどのようなオブジェクト(フィールド)を指定できるかが分かります。
type Query {
...
organization(
login: String!
): Organization
...
user(
login: String!
): User
}
上記の場合、Query
オブジェクト内に organization
や user
フィールドが定義されているので、クライアントアプリからクエリ要求を出すときに、次のような感じで指定できるということが分かります。
query {
organization(login: "netflix") {
name
description
avatarUrl
}
user(login: "octocat") {
name
company
url
avatarUrl
}
}
スキーマ定義ファイル (.graphql
) とクライアントアプリ側のクエリ定義 (query {...}
) を組み合わせることで、TypeScript 用の型定義ファイルを自動生成することができます(クエリ要求の戻り値の型を定義できます)。
詳しくは、Apollo CLI などのコマンドラインツールを確認してください。
GraphQL サーバーから直接取得する方法
GitHub の GraphQL API サーバーに HTTP GET リクエストを送ることで、スキーマ定義を直接取得することができます。 パーソナルアクセストークンはこちら から生成してください。
$ token=<YOUR_PERSONAL_ACCESS_TOKEN>
$ curl -H "Authorization: bearer $token" https://api.github.com/graphql
結果は圧縮された JSON テキストで返されます。
python -m json.tool
にパイプすることで見やすく整形された JSON テキストを取得できます。
$ curl -H "Authorization: bearer $token" https://api.github.com/graphql | python -m json.tool
返されたスキーマ定義をファイルに保存すると、サイズは約 5MB になります。
関連記事
- GitHub GraphQL API の呼び出し回数制限 (rate limit) の情報を取得する
- Apollo Client で GitHub GraphQL API を使う (Node & React)
- GitHub GraphQL API のクエリ例: ユーザー情報を取得する (viewer, user)
- GitHub Actions で Web サイトをビルドして GitHub Pages へ公開する
- GitHub OAuth トークンを取得する (2) Azure Functions 経由で取得する
- GitHub OAuth トークンを取得する (1) 処理の流れを理解する
- Node.js で GitHub REST API を使用する (@octokit/rest)