Skip to content

Morpa/meu-http-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meu HTTP Client — Extensão para o Zed

Cliente HTTP para o editor Zed — envia pedidos HTTP directamente do editor, com syntax highlighting, completions e variáveis.

Funcionalidades

  • ▶ Botões de execução acima de cada pedido HTTP
  • Syntax highlighting para ficheiros .http e .rest
  • Completions de métodos, headers e valores comuns
  • Variáveis com @nome = valor e {{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

Pré-requisitos

# 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-wasip2

Instalação

unzip meu-http-client.zip
cd meu-http-client
chmod +x install.sh
./install.sh

O script faz tudo automaticamente:

  1. Compila o LSP server e o CLI (http-lsp, http-client)
  2. Compila a extensão para WASM
  3. Instala a extensão no Zed
  4. 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.


Uso

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/1

Clica no botão que aparece acima de cada pedido para o executar.


Ambientes

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.


Response Handlers

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}}

Resolução de problemas

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.fish

Erro 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors