GraphQL (Graph Query Language) é uma linguagem muito útil para busca de dados. Sobre a sintaxe da linguagem GraphQL, assinale a afirmativa correta.
- A)Ela possui um esquema de tipos escalares e enumerações, sem suporte a tipos abstratos.
Errada, porque GraphQL suporta vários tipos, inclusive tipos abstratos como interface e union, além de escalares e enumerações.
- B)A indentação por meio de espaços em branco é a maneira de agrupar os campos dos objetos definidos para consulta.
Errada, porque a organização da consulta em GraphQL não depende de indentação por espaços, e sim da estrutura de campos e chaves.
- C)Ela define um conjunto de operações para consultar dados, mas não oferece meios para modificá-los no lado do servidor.
Errada, porque GraphQL não serve só para consulta; ele também oferece mutações para modificar dados no servidor.
- D)As consultas são estruturadas hierarquicamente e têm o mesmo formato dos dados que elas retornam.
Certa, porque as consultas em GraphQL são hierárquicas e espelham a estrutura dos dados retornados.
- E)O formato XML deve ser usado para serialização das consultas e respostas.
Errada, porque GraphQL usa sua própria sintaxe e não exige XML para serialização de consultas e respostas.
Gabarito: D
GraphQL é uma linguagem de consulta pensada para pedir exatamente os dados de que você precisa, sem aquela conversa longa e repetitiva que às vezes aparece em APIs tradicionais. Em vez de várias rotas e respostas soltas, você monta uma consulta com estrutura hierárquica, espelhando a organização dos próprios dados no servidor. O ponto central aqui é este: a consulta em GraphQL costuma ter o mesmo formato lógico da resposta. Você pergunta por um objeto e já especifica os campos internos desejados, como se estivesse abrindo caixas dentro de caixas. Isso facilita a leitura, a previsibilidade da resposta e reduz o excesso de informação vindo do servidor. Por isso, a alternativa correta é a D. Ela descreve exatamente a ideia-base do GraphQL: consultas hierarquizadas e com formato semelhante ao dos dados retornados. Essa é uma característica marcante da linguagem e costuma aparecer nas questões de prova como diferencial em relação a REST. As demais opções tentam confundir você com limitações falsas ou exigências que não fazem parte da proposta da linguagem. GraphQL não depende de XML, não fica restrito a consultas sem alteração de dados, e sua sintaxe não é guiada por indentação como se fosse uma linguagem de blocos baseada em espaço em branco.