Meu HTTP Client

rust zed open-source http

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.