Skip to main content
ドキュメントには� �繁に更新が� えられ、その都度公開されています。本ページの翻訳はま� 未完成な部分があることをご了承く� さい。最新の情� �については、英語のドキュメンテーションをご参照く� さい。本ページの翻訳に問題がある� �合はこちらまでご連絡く� さい。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-06-03. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてく� さい。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してく� さい。

グローバルノードIDの利用

REST APIを通じてオブジェクトのグローバルノードIDを取得し、それらをGraphQLの操作で利用できます。

GitHubのほとんどのオブジェクト(ユーザ、Issue、プルリクエストなど)には、REST APIを使っても、GraphQL APIを使ってもアクセスできます。 REST API内から多くのオブジェクトのグローバルノードIDを見つけ、それらのIDをGraphQLの操作で利用できます。 詳しい情� �については「REST APIリソース内のGraphQL APIノードIDのプレビュー」を参照してく� さい。

ノート: RESTでは、グローバルノードIDフィールドはnode_idという名前になっています。 GraphQLでは、nodeインターフェースのidフィールドです。 GraphQLで「ノード」が何を意味するかを再確認するため、「GraphQLの紹介」を参照してく� さい。

グローバルノードIDを利用する

グローバルノードIDを効率的に利用するには、以下の3つのステップを踏んでく� さい。

  1. オブジェクトのnode_idを返すRESTのエンドポイントを呼びます。
  2. GraphQLでのそのオブジェクトの型を見つけます。
  3. そのIDと型を使い、GraphQLでダイレクトにノードのルックアップを行います。

例を見ていきましょう。

1. オブジェクトのノードIDを返すRESTのエンドポイントの呼び出し

認証済みのユーザをリクエストした� �合、

$ curl -i -u username:token http(s)://[hostname]/api/v3/user

その認証済みユーザのnode_idを含むレスポンスが返されます。

{ "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false, "name": "monalisa octocat", "company": "GitHub", "blog": "https://github.com/blog", "location": "San Francisco", "email": "octocat@github.com", "hireable": false, "bio": "There once was...", "public_repos": 2, "public_gists": 1, "followers": 20, "following": 0, "created_at": "2008-01-14T04:33:35Z", "updated_at": "2008-01-14T04:33:35Z", "private_gists": 81, "total_private_repos": 100, "owned_private_repos": 100, "disk_usage": 10000, "collaborators": 8, "two_factor_authentication": true, "plan": { "name": "Medium", "space": 400, "private_repos": 20, "collaborators": 0 }, "node_id": "MDQ6VXNlcjU4MzIzMQ==" } 

2. GraphQLでのオブジェクトの型を見つける

この例では、node_idの値はMDQ6VXNlcjU4MzIzMQ==です。 この値を使って、同じオブジェクトをGraphQLでクエリできます。

た� し、まずオブジェクトのを知る必要があります。 シンプルなGraphQLクエリで、この型を調べることができます。

query { node(id:"MDQ6VXNlcjU4MzIzMQ==") { __typename } } 

この種のノードをIDで見つけるクエリは、「ダイレクトノードルックアップ」と呼ばれています。

このクエリを実行すると、__typenameUserであることが分かります。

3. GraphQLでダイレクトノードルックアップを行う

型が確認できたら、インラインフラグメントを使ってIDでオブジェクトにアクセスし、追� のデータを返させることができます。 この例では、クエリをかけたいUserのフィールドを定義しています。

query { node(id:"MDQ6VXNlcjU4MzIzMQ==") { ... on User { name login } } } 

この種のクエリは、オブジェクトをグローバルノードIDでルックアップする標準的なアプローチです。

移行におけるグローバルノードIDの利用

REST API または GraphQL API を使用するインテグレーションを構築する� �合、API バージョン間にわたってオブジェクトを簡単に参照できるように、グローバルノード ID を保持すると良いでしょう。 RESTとGraphQL間の移行の扱いに関する詳細な情� �については「RESTからGraphQLへの移行」を参照してく� さい。