Yaak - Client API Desktop
Yaak est un client API desktop moderne et offline-first construit avec Tauri, Rust, et React. Il organise et exécute les requêtes REST, GraphQL, gRPC, WebSocket, et Server-Sent Events (SSE) dans une application rapide et légère qui est respectueuse de la confidentialité : pas de télémétrie, pas de compte requis, et pas de verrouillage cloud. Les espaces de travail sont stockés comme fichiers plats, donc vous pouvez les synchroniser avec Git, et il supporte les environnements, les variables, et l’importation depuis Postman/Insomnia.
Installation
| Plateforme | Méthode |
|---|
| macOS | Télécharger le .dmg depuis yaak.app, ou brew install --cask yaak |
| Windows | Télécharger l’installateur depuis yaak.app |
| Linux | AppImage / .deb / .rpm depuis yaak.app |
| Vérifier | Lancer l’app ; vérifier Aide → À propos pour la version |
Types de requête
| Type | Utilisation |
|---|
| REST / HTTP | Requêtes API standard |
| GraphQL | Requêtes/mutations avec introspection de schéma |
| gRPC | Appeler les services gRPC (avec réflexion) |
| WebSocket | Connexions de socket bidirectionnelle |
| SSE | Flux Server-Sent Events |
Concepts clés
| Terme | Signification |
|---|
| Workspace | Un groupement de projet de requêtes/environnements |
| Folder | Organise les requêtes dans un espace de travail |
| Environment | Ensemble nommé de variables (dev/staging/prod) |
| Variable | ${[ name ]} modèle utilisé sur les requêtes |
| Plain-file sync | Données d”espace de travail stockées comme fichiers → Git-friendly |
Construire des requêtes
| Élément | Remarques |
|---|
| Method + URL | Avec modèle de variable |
| Query params | Éditeur clé/valeur |
| Headers | Éditeur clé/valeur |
| Body | JSON, form, GraphQL, binary, etc. |
| Auth | Bearer, Basic, OAuth 2.0, clé API |
Environnements et variables
| Fonctionnalité | Utilisation |
|---|
| Environments | Basculer les URL de base/secrets par stage |
| Variables | Référencer avec ${[ var ]} dans n’importe quel champ |
| Dynamic values | Valeurs générées (timestamps, UUIDs) |
| Secrets | Gardés en dehors des fichiers plats synchronisés où configuré |
Fonctionnalités de productivité
| Fonctionnalité | Description |
|---|
| Response viewer | JSON jolie, headers, timing, taille |
| History | Réponses précédentes par requête |
| Import | Postman, Insomnia, cURL, OpenAPI |
| Plugins | Étendre via un système de plugins |
| Git sync | Commit les fichiers de l’espace de travail au contrôle de version |
| Templating | Chaîner les requêtes en référençant les réponses précédentes |
Notes gRPC et GraphQL
| Protocole | Capacité |
|---|
| gRPC | Réflexion du serveur pour découvrir les services/méthodes ; streaming |
| GraphQL | Introspection de schéma, query builder, variables |
Workflows courants
# Workflow d'équipe avec sync basé sur Git
1. Créer un espace de travail ; le stocker dans votre repo
2. Définir les environnements dev/staging/prod avec des variables
3. Construire les requêtes REST/GraphQL/gRPC utilisant ${[ base_url ]}
4. Commit les fichiers plats ; les coéquipiers tirent et obtiennent la même collection
# Chaîner les requêtes
- Envoyer une requête de connexion, capturer le token de la réponse
- Le référencer comme variable dans les requêtes autorisées suivantes
Yaak vs autres clients API
| Aspect | Yaak | Postman | ATAC | Bruno |
|---|
| Interface | Desktop GUI | Desktop GUI | Terminal TUI | Desktop GUI |
| Protocoles | REST/GraphQL/gRPC/WS/SSE | Large | REST | REST/GraphQL |
| Télémétrie | Aucune | Oui | Aucune | Aucune |
| Storage | Fichiers plats (Git) | Cloud/local | Fichiers | Fichiers (Git) |
| Meilleur pour | GUI respectueuse de confidentialité, multi-protocole | Équipes/cloud | Terminal-first | GUI + Git |
Ressources