HTTP QUERY: novo método resolve um problema antigo das APIs
O método HTTP QUERY é uma nova proposta para o protocolo HTTP que pretende resolver limitações existentes na realização de consultas complexas a APIs. Saiba para que serve, quais as suas vantagens e em que situações faz realmente sentido utilizá-lo.
O que é o método HTTP QUERY
O HTTP QUERY é um novo método do protocolo HTTP criado para responder a um problema que existe há vários anos no desenvolvimento de APIs. A sua principal função é permitir a execução de consultas complexas sobre um determinado recurso sem recorrer aos métodos GET ou POST de forma inadequada.
Atualmente, quando uma aplicação necessita de efetuar uma pesquisa simples, o método GET continua a ser a solução mais adequada. No entanto, quando a consulta envolve muitos parâmetros, estruturas complexas ou filtros avançados, o URL pode tornar-se demasiado grande ou difícil de gerir.
Em muitos destes casos, os programadores acabam por utilizar o método POST apenas para enviar os dados da pesquisa no corpo do pedido. Embora funcione, esta abordagem cria alguma ambiguidade, uma vez que o POST foi concebido principalmente para criar recursos.
É precisamente este problema que o método QUERY procura resolver.
Como funciona o método QUERY
Na prática, o método QUERY permite enviar um corpo da mensagem, tal como acontece com o POST, mas mantendo uma semântica exclusivamente dedicada à consulta de informação. Um pedido poderá conter um corpo em JSON semelhante ao seguinte:
{ "categoria": "tecnologia", "autor": "João", "data": { "inicio": "2026-01-01", "fim": "2026-12-31" }, "ordenarPor": "popularidade" } |
O servidor recebe estes critérios, processa a consulta e devolve os resultados, sem criar, modificar ou eliminar qualquer recurso. Ou seja, o QUERY representa uma operação apenas de leitura.
Qual é a diferença entre GET, POST e QUERY
Apesar de poderem parecer semelhantes em algumas situações, cada método possui um objetivo diferente.
O GET continua a ser indicado para consultas simples, utilizando parâmetros diretamente no URL. É facilmente armazenado em cache, pode ser guardado nos favoritos do browser e é ideal para pesquisas pouco complexas.
O POST destina-se sobretudo ao envio de informação que irá originar alterações no servidor, como criar utilizadores, enviar formulários ou carregar ficheiros.
O QUERY posiciona-se entre ambos. Permite enviar um corpo de dados detalhado, tal como o POST, mas comunica claramente que o pedido serve apenas para obter informação e não para modificar qualquer recurso.
Esta separação melhora a legibilidade das APIs e facilita o trabalho tanto dos programadores como das ferramentas que analisam pedidos HTTP.
| Característica | GET | QUERY | POST |
|---|---|---|---|
| Seguro | Sim | Sim | Potencialmente não |
| Idempotente | Sim | Sim | Potencialmente não |
| URI para a própria consulta | Sim (por definição) | Opcional (cabeçalho Location) |
Não |
| URI para o resultado da consulta | Opcional (cabeçalho Content-Location) |
Opcional (cabeçalho Content-Location) |
Opcional (cabeçalho Content-Location) |
| Permite cache | Sim | Sim | Sim, mas apenas para futuros pedidos GET ou HEAD |
| Conteúdo (body) | Sem semântica definida | Esperado (semântica definida pelo recurso de destino) | Esperado (semântica definida pelo recurso de destino) |
Existem algumas limitações
Apesar das vantagens, o método QUERY ainda é relativamente recente. Isso significa que muitos servidores HTTP, frameworks, bibliotecas e serviços ainda não oferecem suporte nativo para este método.
Durante algum tempo será normal que muitas APIs continuem a recorrer ao POST para consultas complexas, simplesmente porque essa abordagem já é compatível com praticamente todas as plataformas existentes.
Quando faz sentido utilizar QUERY
Este método é especialmente útil em situações como:
- Motores de pesquisa com muitos filtros;
- Plataformas de análise de dados;
- Sistemas de business intelligence;
- APIs que recebem consultas complexas em JSON;
- Serviços que necessitam de efetuar pesquisas avançadas sem alterar informação.
A sua adoção dependerá do suporte que venha a ser implementado nos servidores, browsers, frameworks e restantes ferramentas do ecossistema HTTP. No entanto, a existência de um método dedicado às operações de leitura complexas torna as APIs mais consistentes.
Leia também:






















Ontem já era tarde. Ainda assim as entidades e organizações privadas da web conseguem ouvir, projetar, desenvolver e entregar uma solução eficiente quando os políticos ainda estão a legislar sobre a melhor forma de … ouvir… para entregar uma solução deficiente, parasitária e corrupta.
” políticos ainda estão a legislar sobre a melhor forma de … ouvir… para entregar uma solução deficiente, parasitária e corrupta.” – Essa não é a própria definição de profissão? xD (+1)