O que é o Meu HTTP Client?
O Meu HTTP Client é uma extensão para o editor Zed que transforma ficheiros .http e .rest em clientes HTTP interactivos. Em vez de alternar entre o editor e ferramentas como o Postman ou o Insomnia, podes enviar pedidos HTTP directamente do editor com um clique.
Como funciona?
A extensão é composta por três partes que trabalham em conjunto:
O WASM bootstrap regista a extensão no Zed e conecta o LSP server. É compilado para WebAssembly e carregado directamente pelo editor.
O LSP server (http-lsp) corre como processo nativo e fornece completions de métodos HTTP e headers, navegação entre pedidos via document symbols, e hover com documentação inline.
O CLI (http-client) é invocado pelo Zed quando clicas no botão ▶. Lê o ficheiro .http, resolve as variáveis, executa o pedido e formata a resposta no terminal — com JSON pretty-printed e tempos de resposta.
Funcionalidades
Com o Meu HTTP Client podes escrever os teus pedidos HTTP num ficheiro simples:
@base_url = https://api.exemplo.com
@token = meu-token
### Listar utilizadores
GET {{base_url}}/users
Authorization: Bearer {{token}}
### Criar utilizador
POST {{base_url}}/users
Content-Type: application/json
{
"nome": "André",
"email": "andre@exemplo.com"
}
O botão ▶ aparece acima de cada pedido. Um clique executa-o e mostra a resposta formatada no terminal integrado do Zed.
As variáveis funcionam a dois níveis: podes declará-las no próprio ficheiro com @nome = valor, ou usar um ficheiro http-client.env.json para gerir múltiplos ambientes (dev, staging, prod) e alternar entre eles sem tocar nos ficheiros de pedidos.
Os response handlers permitem capturar valores da resposta de um pedido para usar no seguinte — útil para fluxos de autenticação onde precisas de guardar um token antes de fazer outros pedidos.
Porquê em Rust?
As extensões do Zed são escritas em Rust e compiladas para WebAssembly. A escolha não foi opcional — é a única forma de criar extensões para o Zed. O resultado é uma extensão extremamente leve e rápida, sem runtime adicional.
Instalação
git clone https://github.com/Morpa/meu-http-client
cd meu-http-client
chmod +x install.sh
./install.sh
O script trata de tudo: compila o LSP e o CLI, compila a extensão para WASM, e instala tudo nos sítios certos. A primeira instalação demora alguns minutos porque o Cargo compila as dependências; as seguintes são muito mais rápidas graças ao cache.