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)