Vue d’ensemble
L’API Layer est une couche d’abstraction TypeScript qui centralise toutes les interactions avec le backend Nhost via GraphQL. Elle fournit des fonctions type-safe, une gestion d’erreurs cohérente et une détection automatique des erreurs réseau. Principe fondamental :Aucune requête GraphQL directe dans les composants. Tout passe parAvantages :src/api/via les wrappersapiCall()etapiCallVoid().
- Type safety avec TypeScript strict
- Gestion d’erreurs centralisée (ApiError)
- Détection automatique des erreurs réseau
- Logging via
logger(jamais deconsole.logen prod) - Tests unitaires simplifiés
- Refactoring facile (changement de backend transparent)
Client Nhost
Configuration
Fichier :src/api/client.ts
nhost.graphql— requêtes GraphQL vers Hasuranhost.auth— authentification (signIn, signOut, session)nhost.storage— upload/download de fichiers
Wrappers apiCall / apiCallVoid
apiCall — Pour les opérations qui retournent des données
Fichier :src/api/base.ts
apiCallVoid — Pour les opérations sans retour (mutations)
ApiError Class
Tools API — Exemple complet
Fichier :src/api/tools.ts
Les requêtes sont faites via nhost.graphql.request() avec des queries GraphQL :
Utilisation dans les composants
Pattern recommandé
❌ Mauvais : Requête GraphQL directeAvec Custom Hook (meilleure approche)
Bonnes pratiques
✅ À faire
Toujours utiliser apiCall/apiCallVoid❌ À éviter
Ne pas appeler nhost.graphql directement dans les composants. Toujours passer parsrc/api/.
Ne pas ignorer les erreurs silencieusement.
Ne pas utiliser de types any — préférer les types définis dans src/api/types.ts.
Ressources
Nhost & GraphQL
Architecture backend complète
Database Schema
Structure des tables pour comprendre les relations
Custom Hooks
Hooks qui utilisent l’API Layer
Testing
Guide complet pour tester l’API