Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Esta versão do GitHub Enterprise foi descontinuada em March 02, 2021. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Usar IDs de nó globais

Você pode obter IDs de nós globais de objetos através da API REST e usá-los em operações do GraphQL.

Neste artigo

Você pode acessar a maioria dos objetos do GitHub (usuários, problemas, pull requests, etc.) usando a API REST ou a API do GraphQL. Com uma atualização recente , você pode encontrar o ID do nó global de muitos objetos na API REST e usar esses IDs nas operações do GraphQL.

Observação: Na REST, o campo de ID do nó global é chamado node_id. No GraphQL, é um campo id na interface do . Para relembrar o que significa "nó" no GraphQL, consulte"Introdução ao GraphQL".

Colocando IDs de nó global em uso

Você pode seguir três etapas para usar efetivamente os IDs dos nós globais:

  1. Chame um ponto final da REST que retorna um node_id de um objeto.
  2. Encontre o tipo do objeto no GraphQL.
  3. Use o ID e o tipo para fazer uma consulta direta de nó no GraphQL.

Vamos analisar um exemplo.

1. Chame um ponto final da REST que retorna o ID do nó de um objeto

Se você solicitar o usuário autenticado:

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

você obterá uma resposta que inclui o node_id do usuário autenticado:

{
  "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. Encontre o tipo do objeto no GraphQL

Neste exemplo, o valor de node_id é MDQ6VXNlcjU4MzIzMQ==. Você pode usar esse valor para consultar o mesmo objeto no GraphQL.

Mas primeiro você precisará saber o tipo do objeto. Você pode verificar o tipo com uma simples consulta do GraphQL:

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

Este tipo de consulta—ou seja, encontrar o nó pelo ID—é conhecida como "consulta direta de nó".

Ao executar esta consulta, você verá que __typename é Usuário.

3. Faça uma pesquisa direta de nó no GraphQL

Depois de confirmar o tipo, você pode usar um fragmento embutido para acessar o objeto pelo seu ID e retornar dados adicionais. Neste exemplo, definimos os campos no Usuário que gostaríamos de consultar:

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

Este tipo de consulta é a abordagem-padrão para consultar um objeto pelo seu ID de nó global.

Usando IDs de nó global em migrações

Ao construir integrações que usam a API REST ou a API do GraphQL, considera-se uma prática recomendada persistir no ID de nó global para que você possa facilmente fazer referência a objetos entre nas versões da API. Para obter mais informações sobre como lidar com a transição entre a REST e o GraphQL, consulte "Migrando da REST para o GraphQL"