Principe fondamental
Règle d’or : Aucun composant ne doit appelernhost.graphql directement. Toutes les interactions passent par le dossier src/api/ via les wrappers apiCall() et apiCallVoid().
❌ Ne jamais faire
✅ Toujours faire
Structure de l’API layer
Fichiers de base
client.ts - Client Nhost singleton
- Une seule instance partagée
- Gestion de session centralisée par Nhost
- Token JWT automatiquement injecté dans les requêtes
base.ts - Wrappers et gestion d’erreurs
- Erreurs typées (ApiError) et prévisibles
- Logging centralisé via
logger(pas de console.log) - Détection automatique des erreurs réseau
- Nom d’opération pour le debugging
Patterns d’utilisation
Pattern 1 : Query simple
Pattern 2 : Mutation avec variables
Pattern 3 : Update avec _set (convention Hasura)
Pattern 4 : Delete (void)
Authentification
auth.ts
Bonnes pratiques
✅ À faire
- Toujours utiliser apiCall/apiCallVoid
- Toujours typer les retours :
Promise<EnhancedTool[]> - Utiliser logger au lieu de console.log
- Nommer les opérations :
'tools.list','workflows.create' - Valider les entrées côté client avant d’envoyer
❌ À éviter
- Appels
nhost.graphqldirects dans les composants - Ignorer les erreurs silencieusement
- Types
any— utilisersrc/api/types.ts - console.log en production — utiliser
logger
Ressources
Nhost & GraphQL
Architecture backend complète
Database Schema
Structure des 13 tables
Hooks
Utiliser l’API dans des hooks
Testing
Tester l’API layer