Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
GraphQL: sintaxe de consulta
Gabarito: letra E. A única alternativa que apresenta uma query GraphQL válida é {person(personID: 1) {name birthYear}}, pois segue a sintaxe da linguagem: uma operação (implícita query) com um campo person, um argumento personID: 1 e uma seleção de subcampos name e birthYear entre chaves. As demais alternativas usam sintaxes de outras tecnologias (SQL, HTTP, XML, shell). GraphQL é uma linguagem de consulta e manipulação de APIs, criada pelo Facebook, que permite ao cliente solicitar exatamente os dados que precisa. Diferente de REST, onde cada endpoint retorna uma estrutura fixa, no GraphQL o cliente define a forma da resposta na própria requisição. A resposta é um JSON, e a query espelha a estrutura desejada. A sintaxe básica de uma query GraphQL é:
Isso corresponde exatamente à query da alternativa E: {person(personID: 1) {name birthYear}}. A pegadinha da banca é misturar sintaxes de outras tecnologias que o candidato pode conhecer (SQL, REST, XML, shell) para confundir. A chave é reconhecer a estrutura única do GraphQL: chaves, campos, argumentos entre parênteses e seleção de subcampos.
Alternativa A — ❌ Incorreta
SELECT name, birthYear FROM person é uma consulta SQL (Structured Query Language), usada para bancos de dados relacionais. Não é GraphQL, que não usa SELECT, FROM ou vírgulas para separar campos.
Alternativa B — ❌ Incorreta
GET /person/1 é uma requisição HTTP no estilo REST, onde o recurso é identificado pela URL e o método GET. GraphQL não usa URLs para identificar recursos nem métodos HTTP como parte da sintaxe da query.
Alternativa C — ❌ Incorreta
<query><personID>1</personID></query> é uma estrutura XML, com tags de abertura e fechamento. GraphQL não usa XML; usa uma sintaxe própria com chaves e dois-pontos para argumentos.
Alternativa D — ❌ Incorreta
cat person | grep name birthYear é um comando de shell (Unix/Linux), que concatena o conteúdo de um arquivo e filtra linhas. Não tem relação com GraphQL.
Alternativa E — ✅ Correta ⟵ GABARITO
{person(personID: 1) {name birthYear}} é uma query GraphQL válida: campo person, argumento personID: 1 e seleção dos subcampos name e birthYear. É exatamente a estrutura que produziria a resposta mostrada.
NÃO CAIA NESSA!
A banca mistura sintaxes de SQL, REST, XML e shell para testar se você reconhece a estrutura única do GraphQL. A armadilha é confiar no "bom senso" de que qualquer forma de buscar dados serve — mas cada tecnologia tem sua própria sintaxe. No GraphQL, lembre-se: chaves {} para seleção, argumentos entre parênteses com : e subcampos separados por espaço. 💡 Dica: Para identificar uma query GraphQL na prova, procure por: (1) chaves {} delimitando a consulta, (2) um campo principal, (3) argumentos entre parênteses no formato nome: valor, e (4) subcampos listados dentro das chaves. Se a alternativa tiver SELECT, GET, tags XML ou comandos de shell, descarte na hora.