Voltar
GraphQL ganha sua primeira especificação para funcionar sobre HTTP

GraphQL ganha primeira especificação oficial para funcionar sobre HTTP

Aprofundamento CEVIU

Aprofundamento

Desde o lançamento em 2015, a especificação do GraphQL é agnóstica em relação ao transporte. Ela descreve serviços que recebem requisições, executam e produzem respostas, mas deixa a cargo de quem implementa como isso trafega. Para a maioria que usa GraphQL sobre HTTP, a falta de um documento comum dificultava a interoperabilidade com outras ferramentas HTTP e a observability.

A GraphQL over HTTP é um documento novo, complementar à especificação principal, que continua agnóstica. A mudança central é o media type application/graphql-response+json. Antes, muitos servidores respondiam com application/json, e o cliente não distinguia uma resposta GraphQL bem formada do servidor de origem de um erro vindo de proxy, cache ou outro intermediário. O contorno era devolver sempre 200, o que esvaziava o monitoramento (as piadas sobre "200 Not OK"). Agora, com esse media type, o cliente pode parsear o corpo como resposta GraphQL válida independentemente do status. A regra geral: se houve dados, 2xx; se só erros, 4xx ou 5xx. Exemplos citados: 405 para mutation via GET, 406 e 415 para media type não suportado, 431 para headers grandes e 500 para erro de servidor. A especificação também introduz o status 294 Partial Success para quando há dados e erros juntos.

Segundo a fonte, a maioria dos frameworks e bibliotecas já suporta a especificação. Os próximos passos previstos são o verbo HTTP QUERY, persisted documents e request batching, este último útil em composite schemas (Federation).

O que mudou

Em 25 de junho de 2026, o CEVIU noticiou "O método HTTP QUERY", sobre a proposta de um método seguro e idempotente para enviar requisições sem alterar o recurso-alvo. A fonte atual diz que o IETF moveu o QUERY para proposed standard e que o GraphQL pretende suportá-lo, mas na próxima revisão da especificação, não nesta primeira versão.

Por que isso importa

Para quem opera uma API GraphQL, isso sugere rever a regra de responder 200 para tudo. Dashboards, alertas e caches HTTP passam a ter sinal útil no código de status. Quem escreve clientes ou bibliotecas deve checar o tratamento do novo media type e do 294, já que a especificação ainda deve ganhar o QUERY e o batching.

Linha do tempo

  1. CEVIU noticia o método HTTP QUERY, proposto como seguro e idempotente.

  2. GraphQL lança a primeira especificação GraphQL over HTTP, com o media type application/graphql-response+json.

Perguntas frequentes

O que é a especificação GraphQL over HTTP?

É um documento novo, complementar à especificação principal do GraphQL, que padroniza como requisições e respostas trafegam por HTTP. A especificação principal continua agnóstica ao transporte.

Para que serve o media type application/graphql-response+json?

Ele permite ao cliente saber que o corpo é uma resposta GraphQL bem formada, independentemente do código de status. Assim dá para diferenciá-la de erros de proxies, caches e outros intermediários.

Como ficam os códigos de status agora?

Se a requisição retornou dados, usa-se 2xx. Se retornou só erros, 4xx ou 5xx. Há também o novo 294 Partial Success para respostas com dados e erros ao mesmo tempo.

Preciso migrar minha API agora?

Segundo a fonte, a maioria dos frameworks e bibliotecas já suporta a especificação, então muita gente já a usa sem saber. Vale conferir a documentação da sua biblioteca.

Fontes

Avalie este artigo:
Categoria
CEVIU Web Dev
Publicado
13 de novembro de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser