Yaak - Cliente de API de Desktop
Yaak é um cliente de API de desktop moderno e offline-first construído com Tauri, Rust e React. Ele organiza e executa requisições REST, GraphQL, gRPC, WebSocket e Server-Sent Events (SSE) em um app rápido e leve que é focado em privacidade: sem telemetria, sem conta necessária e sem bloqueio em nuvem. Workspaces são armazenados como arquivos simples, então você pode sincronizá-los com Git, e suporta ambientes, variáveis e importação de Postman/Insomnia.
Instalação
| Plataforma | Método |
|---|
| macOS | Faça download do .dmg de yaak.app, ou brew install --cask yaak |
| Windows | Faça download do instalador de yaak.app |
| Linux | AppImage / .deb / .rpm de yaak.app |
| Verificar | Inicie o app; confira Help → About para versão |
Tipos de Requisição
| Tipo | Uso |
|---|
| REST / HTTP | Requisições de API padrão |
| GraphQL | Queries/mutations com introspection de schema |
| gRPC | Chame serviços gRPC (com reflection) |
| WebSocket | Conexões de socket bidirecional |
| SSE | Streams de Server-Sent Events |
Conceitos Principais
| Termo | Significado |
|---|
| Workspace | Um agrupamento de projeto de requisições/ambientes |
| Folder | Organiza requisições dentro de um workspace |
| Environment | Conjunto nomeado de variáveis (dev/staging/prod) |
| Variable | Template ${[ name ]} usado entre requisições |
| Sincronização de arquivo simples | Dados do workspace armazenados como arquivos → amigável com Git |
Construindo Requisições
| Elemento | Notas |
|---|
| Método + URL | Com templating de variável |
| Query params | Editor de chave/valor |
| Headers | Editor de chave/valor |
| Body | JSON, form, GraphQL, binário, etc. |
| Auth | Bearer, Basic, OAuth 2.0, chave de API |
Ambientes e Variáveis
| Recurso | Uso |
|---|
| Ambientes | Troque URLs base/segredos por estágio |
| Variáveis | Referencia com ${[ var ]} em qualquer campo |
| Valores dinâmicos | Valores gerados (timestamps, UUIDs) |
| Segredos | Mantidos fora de arquivos simples sincronizados quando configurado |
Recursos de Produtividade
| Recurso | Descrição |
|---|
| Visualizador de resposta | JSON bonito, headers, timing, tamanho |
| Histórico | Respostas anteriores por requisição |
| Importar | Postman, Insomnia, cURL, OpenAPI |
| Plugins | Estenda via um sistema de plugin |
| Sincronização Git | Commite os arquivos de workspace para controle de versão |
| Templating | Requisições em cadeia referenciando respostas anteriores |
Notas gRPC e GraphQL
| Protocolo | Capacidade |
|---|
| gRPC | Reflection de servidor para descobrir serviços/métodos; streaming |
| GraphQL | Introspection de schema, construtor de query, variáveis |
Workflows Comuns
# Workflow de equipe com sincronização baseada em Git
1. Crie um workspace; armazene no seu repo
2. Defina ambientes dev/staging/prod com variáveis
3. Construa requisições REST/GraphQL/gRPC usando ${[ base_url ]}
4. Commite os arquivos simples; colegas puxam e obtêm a mesma coleção
# Requisições em cadeia
- Envie uma requisição de login, capture o token da resposta
- Referencia-o como uma variável em requisições autorizadas subsequentes
Yaak vs Outros Clientes de API
| Aspecto | Yaak | Postman | ATAC | Bruno |
|---|
| Interface | Desktop GUI | Desktop GUI | Terminal TUI | Desktop GUI |
| Protocolos | REST/GraphQL/gRPC/WS/SSE | Amplo | REST | REST/GraphQL |
| Telemetria | Nenhuma | Sim | Nenhuma | Nenhuma |
| Armazenamento | Arquivos simples (Git) | Nuvem/local | Arquivos | Arquivos (Git) |
| Melhor para | GUI focado em privacidade, multi-protocolo | Equipes/nuvem | Terminal-first | GUI + Git |
Recursos