# Sobre a API do GraphQL

A GitHub API do GraphQL oferece flexibilidade e a capacidade de definir precisamente os dados que você deseja buscar.

## Visão geral

Aqui estão alguns links rápidos para ajudar você a colocar em funcionamento a API do GraphQL:

* [Authentication](/pt/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql)
* [Ponto de extremidade raiz](/pt/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql#the-graphql-endpoint)
* [Introspecção de esquema](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api)
* [Limites de taxa](/pt/enterprise-server@3.22/graphql/overview/rate-limits-and-query-limits-for-the-graphql-api)
* [Migrando de REST](/pt/enterprise-server@3.22/graphql/guides/migrating-from-rest-to-graphql)

Para obter mais informações sobre as APIs de GitHub, consulte [Comparando a API REST do GitHub e a API do GraphQL](/pt/enterprise-server@3.22/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api).

## Sobre o GraphQL

A linguagem de consulta de dados [GraphQL](https://graphql.org/) é:

* **Uma [especificação](https://spec.graphql.org/June2018/).** A especificação determina a validade do [schema](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#schema) no servidor de API. O esquema determina a validade das chamadas dos clientes.

* **[Fortemente tipada](#about-the-graphql-schema-reference).** O esquema define o sistema de tipos e todas as relações de objeto de uma API.

* **[Introspective](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api).** Um cliente pode consultar o esquema para ver detalhes sobre o esquema.

* **[Hierárquico](/pt/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql).** A forma de uma chamada do GraphQL espelha a forma dos dados JSON retornados. [Campos aninhados](/pt/enterprise-server@3.22/graphql/guides/migrating-from-rest-to-graphql#example-nesting) permite que você pesquise e receba apenas os dados especificados em um único ciclo.

* **Uma camada de aplicativo.** O GraphQL não é um modelo storage ou uma linguagem de consulta de banco de dados. O *graph* refere-se a estruturas de grafo definidas no esquema, em que [nodes](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#node) definem objetos e [edges](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#edge) definem relações entre objetos. A API percorre e retorna dados do aplicativo com base nas definições do esquema, independentemente de como os dados são armazenados.

## Por que GitHub está usando o GraphQL

GitHub escolheu o GraphQL porque oferece significativamente mais flexibilidade para nossos integradores. A capacidade de definir com precisão os dados que você deseja e apenas os dados que você deseja é uma poderosa vantagem em relação aos pontos de extremidade tradicionais da API REST. O GraphQL permite que você substitua várias solicitações da REST por *uma só chamada* para buscar os dados especificados.

Para obter mais detalhes sobre por que GitHub investido no GraphQL, consulte a postagem original do blog [announcement](https://github.blog/2016-09-14-the-github-graphql-api/).

## Sobre a referência do esquema do GraphQL

Os documentos na barra lateral são gerados a partir do GitHub[esquema](/pt/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api) GraphQL. Todas as chamadas são validadas e executadas contra o esquema. Use estes documentos para descobrir quais dados você pode chamar:

* Operações permitidas: consultas e mutações.

* Tipos definidos por esquema: escalares, objetos, enumerações, interfaces, uniões e objetos de entrada.

Para obter outras informações, como detalhes de autenticação e limite de taxa, confira o [guides](/pt/enterprise-server@3.22/graphql/guides).

## Solicitar suporte

Em caso de dúvidas, relatórios de bug e discussões sobre o GitHub Apps, o OAuth apps e o desenvolvimento de API, explore o [Categoria de API e Webhooks nas Discussões da Comunidade do GitHub](https://github.com/orgs/community/discussions/categories/api-and-webhooks). As discussões são moderadas e mantidas pela equipe GitHub e respondidas pela comunidade GitHub.

Considere a possibilidade de entrar em contato diretamente com o [Suporte do GitHub](https://support.github.com/) usando o formulário de contato para:

* Resposta garantida da equipe do GitHub
* Solicitações de suporte que envolvem dados confidenciais ou questões privadas
* Solicitações de recursos
* Comentários sobre os produtos do GitHub

Se você observar falhas inesperadas, poderá usar [githubstatus.com](https://www.githubstatus.com/) ou a [GitHub API de status](https://www.githubstatus.com/api) para verificar se há incidentes que afetam a API.