Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — VUNESP 2026

ProgramaçãoLinguagens de programação
Código
gp003715
Banca
VUNESP
Órgão
UNESP
Ano
2026
Cargo
V - - Analista de Informática I - Área de Atuação: Desenvolvimento de Sistemas - Edital nº 350
Uma query GraphQL enviada a um servidor recebeu a seguinte resposta:

Captura_de tela 2026-06-22 114724.png (187×162)

Assinale a alternativa que apresenta uma query GraphQL válida que poderia ter gerado essa resposta.
  1. ASELECT name, birthYear FROM person
  2. BGET /person/1
  3. C<query><personID>1</personID></query>
  4. Dcat person | grep name birthYear
  5. E{person(personID: 1 ) {name birthYear}}
Revelar gabarito e comentário

GabaritoE — {person(personID: 1 ) {name birthYear}}

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 é:

{
  campo(argumento: valor) {
    subcampo1
    subcampo2
  }
}
  • As chaves {} delimitam a seleção de campos.

  • O nome do campo (ex.: person) é o que será buscado no servidor.

  • Argumentos são passados entre parênteses, no formato nome: valor (ex.: personID: 1).

  • Os subcampos desejados são listados dentro das chaves, separados por espaço ou quebra de linha.

  • A palavra query é opcional quando a operação é uma consulta (padrão).

{
  "data": {
    "person": {
      "name": "Luke Skywalker",
      "birthYear": "19BBY"
    }
  }
}

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.

Gabarito: letra E

Link permanente: /questoes/gp003715