Services (Zod-first)
Le parcours recommandé reste :
- initialiser le module,
- générer les services via la CLI,
- ajuster ensuite les fichiers générés.
Exemple : nouvelle app Nuxt 4 + premier service
bash
bunx nuxi@latest init my-nfz-services
cd my-nfz-services
bun install
bun add nuxt-feathers-zod feathers-pinia
bun add -D @pinia/nuxt
bunx nuxt-feathers-zod init embedded --force
bunx nuxt-feathers-zod add service articles --adapter mongodb --collection articles --idField _id --docs
bun devStructure attendue
txt
services/<name>/
<name>.ts
<name>.class.ts
<name>.schema.ts
<name>.shared.tsRôle des fichiers
<name>.ts: enregistrement du service<name>.class.ts: implémentation du service<name>.schema.ts: schémas Zod / validateurs / résolveurs quand activés<name>.shared.ts: contrat client + types + comportement partagé
Adapters supportés
Memory
Adapter par défaut, utile pour :
- démos,
- smoke tests,
- démarrage rapide.
bash
bunx nuxt-feathers-zod add service messagesMongoDB
À utiliser quand un mongodbClient embedded est configuré.
bash
bunx nuxt-feathers-zod add service users --adapter mongodb --collection users --idField _idSchémas
Par défaut, le générateur vise aujourd’hui un démarrage simple.
bash
bunx nuxt-feathers-zod add service messages --schema noneActiver des schémas explicitement :
bash
bunx nuxt-feathers-zod add service messages --schema zod
bunx nuxt-feathers-zod add service messages --schema jsonAuth sur un service
bash
bunx nuxt-feathers-zod add service users --auth --adapter mongodb --collection users --idField _idEn pratique, users reste le service de référence pour l’auth embedded.
Endpoints REST
Avec rest.path = '/feathers' :
GET /feathers/articlesGET /feathers/articles/:idPOST /feathers/articlesPATCH /feathers/articles/:idDELETE /feathers/articles/:id
Bonnes pratiques
- conserver
servicesDirs: ['services'] - ne pas déplacer les services hors d’un dossier scanné
- générer via la CLI puis personnaliser
- ne pas casser
*.shared.tssans comprendre son rôle côté client
