Cliente HTTP para o editor Zed — envia pedidos HTTP directamente do editor, com syntax highlighting, completions e variáveis.
- ▶ Botões de execução acima de cada pedido HTTP
- Syntax highlighting para ficheiros
.httpe.rest - Completions de métodos, headers e valores comuns
- Variáveis com
@nome = valore{{nome}} - Ambientes via
http-client.env.json(dev, staging, prod) - Resposta colorida com JSON formatado no terminal
- Geração de cURL copiado para o clipboard
- Response handlers para capturar valores da resposta entre pedidos
- Zed Editor
- Rust instalado via
rustup(não via Homebrew)
# Instala o Rust se não tiveres
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Adiciona o target WASM necessário
rustup target add wasm32-wasip2unzip meu-http-client.zip
cd meu-http-client
chmod +x install.sh
./install.shO script faz tudo automaticamente:
- Compila o LSP server e o CLI (
http-lsp,http-client) - Compila a extensão para WASM
- Instala a extensão no Zed
- Copia os binários para
~/.local/bin/
Depois fecha o Zed completamente (Cmd+Q) e reabre.
Nota: A primeira instalação demora ~5 minutos porque o Rust compila todas as dependências. As seguintes são muito mais rápidas.
Cria um ficheiro com extensão .http ou .rest:
@base_url = https://jsonplaceholder.typicode.com
@user_id = 1
### Listar posts
GET {{base_url}}/posts
Accept: application/json
### Obter post específico
GET {{base_url}}/posts/{{user_id}}
### Criar post
POST {{base_url}}/posts
Content-Type: application/json
{
"title": "O meu post",
"body": "Conteúdo aqui",
"userId": {{user_id}}
}
### Apagar post
DELETE {{base_url}}/posts/1Clica no botão ▶ que aparece acima de cada pedido para o executar.
Cria um ficheiro http-client.env.json na pasta do projecto:
{
"activeEnv": "dev",
"dev": {
"base_url": "http://localhost:3000",
"token": "dev-token-123"
},
"staging": {
"base_url": "https://staging.api.exemplo.com",
"token": "staging-token-456"
},
"prod": {
"base_url": "https://api.exemplo.com",
"token": "prod-token-789"
}
}As variáveis do ambiente activo (activeEnv) são resolvidas automaticamente nos pedidos.
Captura valores da resposta para usar noutros pedidos:
### Login
POST https://api.exemplo.com/auth/login
Content-Type: application/json
{
"email": "user@exemplo.com",
"password": "secret"
}
> {%
client.global.set("token", response.body.token);
client.global.set("user_id", response.body.user.id);
%}
### Pedido autenticado (usa o token capturado acima)
GET https://api.exemplo.com/profile
Authorization: Bearer {{token}}Botões ▶ não aparecem → Fecha o Zed completamente (Cmd+Q) e reabre. Não uses "Install Dev Extension".
Erro "command not found: http-client"
→ Garante que ~/.local/bin está no PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# ou para fish:
echo 'fish_add_path $HOME/.local/bin' >> ~/.config/fish/config.fishErro de compilação WASM → O Homebrew rust não inclui o target WASM. Usa o rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-wasip2