Yaak - Client API Desktop
Yaak è un client API desktop offline-first moderno costruito con Tauri, Rust e React. Organizza ed esegue richieste REST, GraphQL, gRPC, WebSocket e Server-Sent Events (SSE) in un”app veloce e leggera che è privacy-first: niente telemetria, nessun account richiesto e nessun lock-in cloud. I workspace sono memorizzati come file semplici, quindi puoi sincronizzarli con Git, e supporta ambienti, variabili e importazione da Postman/Insomnia.
Installazione
| Piattaforma | Metodo |
|---|
| macOS | Scarica il .dmg da yaak.app, o brew install --cask yaak |
| Windows | Scarica l”installer da yaak.app |
| Linux | AppImage / .deb / .rpm da yaak.app |
| Verifica | Avvia l”app; controlla Aiuto → About per la versione |
Tipi di Richiesta
| Tipo | Uso |
|---|
| REST / HTTP | Richieste API standard |
| GraphQL | Query/mutazioni con introspection dello schema |
| gRPC | Chiama servizi gRPC (con reflection) |
| WebSocket | Connessioni socket bidirezionali |
| SSE | Flussi Server-Sent Events |
Concetti Principali
| Termine | Significato |
|---|
| Workspace | Un raggruppamento di progetto richieste/ambienti |
| Cartella | Organizza richieste all”interno di un workspace |
| Ambiente | Set denominato di variabili (dev/staging/prod) |
| Variabile | ${[ name ]} template usato tra le richieste |
| Sincronizzazione file semplici | Dati workspace memorizzati come file → Git-friendly |
Costruzione di Richieste
| Elemento | Note |
|---|
| Metodo + URL | Con templating variabile |
| Parametri di query | Editor key/value |
| Header | Editor key/value |
| Corpo | JSON, form, GraphQL, binario, ecc. |
| Auth | Bearer, Basic, OAuth 2.0, API key |
Ambienti e Variabili
| Feature | Uso |
|---|
| Ambienti | Cambia URL di base/segreti per fase |
| Variabili | Riferimento con ${[ var ]} in qualsiasi campo |
| Valori dinamici | Valori generati (timestamp, UUID) |
| Segreti | Tenuti fuori dai file semplici sincronizzati dove configurato |
Funzionalità di Produttività
| Feature | Descrizione |
|---|
| Visualizzatore di risposta | JSON gradevole, header, timing, dimensione |
| Cronologia | Risposte precedenti per richiesta |
| Import | Postman, Insomnia, cURL, OpenAPI |
| Plugin | Estendi tramite un sistema di plugin |
| Sincronizzazione Git | Commit i file workspace al controllo versione |
| Templating | Richieste a catena per riferimento a risposte precedenti |
Note su gRPC e GraphQL
| Protocollo | Capacità |
|---|
| gRPC | Reflection del server per scoperta di servizi/metodi; streaming |
| GraphQL | Introspection dello schema, builder di query, variabili |
Flussi di Lavoro Comuni
# Flusso di lavoro del team con sincronizzazione basata su Git
1. Crea un workspace; memorizzalo nel tuo repo
2. Definisci ambienti dev/staging/prod con variabili
3. Crea richieste REST/GraphQL/gRPC usando ${[ base_url ]}
4. Commit i file semplici; i colleghi tirano e ottengono la stessa raccolta
# Richieste a catena
- Invia una richiesta di login, acquisisci il token dalla risposta
- Riferimento come variabile nelle successive richieste autorizzate
Yaak vs Altri Client API
| Aspetto | Yaak | Postman | ATAC | Bruno |
|---|
| Interfaccia | GUI Desktop | GUI Desktop | TUI Terminale | GUI Desktop |
| Protocolli | REST/GraphQL/gRPC/WS/SSE | Ampia | REST | REST/GraphQL |
| Telemetria | Nessuna | Sì | Nessuna | Nessuna |
| Storage | File semplici (Git) | Cloud/locale | File | File (Git) |
| Migliore per | GUI privacy-first, multi-protocollo | Team/cloud | Terminale-first | GUI + Git |
Risorse