Démarrage rapide
1. Crée ton fichier de base de données
Section intitulée « 1. Crée ton fichier de base de données »La commande init génère un db.yml prêt à l’emploi et un yrest.config.yml dans le répertoire courant :
npx @yrest/cli initTrois templates intégrés sont disponibles via --sample :
| Template | Contenu |
|---|---|
basic(par défaut) | Collections |
relational |
|
ecommerce |
|
npx @yrest/cli init --sample relational # template relationnelnpx @yrest/cli init --sample ecommerce # template e-commercenpx @yrest/cli init --file api.yml # nom de fichier personnaliséTu peux aussi ignorer init et écrire le fichier manuellement — le format est du YAML simple :
users: - id: 1 name: Ana email: ana@test.com - id: 2 name: Luis email: luis@test.com
posts: - id: 1 title: First post userId: 1Toute clé de premier niveau qui ne commence pas par _ devient une collection avec des routes CRUD complètes.
2. Démarre le serveur
Section intitulée « 2. Démarre le serveur »npx @yrest/cli serve db.ymlyrest · http://localhost:3070
Collections (base: /): CRUD /users CRUD /posts
Meta: GET /_aboutLe port par défaut est 3070. Il a été choisi pour éviter les conflits avec les ports de développement les plus courants (3000, 3001, 4000, 8080, 8000), afin que tu puisses exécuter yRest à côté de ton serveur de développement frontend sans toucher à aucune configuration.
Options disponibles :
| Flag | Par défaut | Description |
|---|---|---|
-p, —port <n> | 3070 | Port d’écoute |
-H, —host <host> | localhost | Hôte à lier (utilise |
-b, —base <path> | (aucun) | Préfixe toutes les routes — ex. |
-w, —watch | off | Recharge |
-r, —readonly | off | Rejette toutes les écritures (POST/PUT/PATCH/DELETE → 405) |
-d, —delay <ms> | 0 | Ajoute une latence fixe à chaque réponse |
—pageable [limit] | off | Enveloppe les listes dans |
—snapshot | off | Expose |
—handlers <file> | (aucun) | Chemin vers un fichier |
—id-strategy <s> | increment |
|
Les options peuvent aussi être définies dans yrest.config.yml pour ne pas avoir à les répéter à chaque démarrage. Les flags CLI ont toujours la priorité sur le fichier de configuration.
3. Utilise l’API
Section intitulée « 3. Utilise l’API »Chaque collection obtient automatiquement la surface REST complète. Voici les opérations les plus courantes sur la collection users de l’exemple ci-dessus :
# Lister tous les utilisateurscurl http://localhost:3070/users
# Obtenir un utilisateur par son idcurl http://localhost:3070/users/1
# Filtrer par valeur de champcurl "http://localhost:3070/users?name_like=ana"
# Paginercurl "http://localhost:3070/users?_page=1&_limit=10"
# Triercurl "http://localhost:3070/users?_sort=name&_order=asc"
# Créer un nouvel utilisateur (l'id est attribué automatiquement)curl -X POST http://localhost:3070/users \ -H "Content-Type: application/json" \ -d '{"name":"Carlos","email":"carlos@test.com"}'
# Mise à jour partiellecurl -X PATCH http://localhost:3070/users/1 \ -H "Content-Type: application/json" \ -d '{"name":"Ana Mise à jour"}'
# Supprimercurl -X DELETE http://localhost:3070/users/1Les modifications effectuées via POST/PUT/PATCH/DELETE sont persistées dans db.yml en temps réel. Redémarre le serveur pour revenir aux données d’origine, ou active --snapshot et appelle POST /_snapshot pour sauvegarder l’état actuel explicitement.
4. Explore la vue d’ensemble de l’API
Section intitulée « 4. Explore la vue d’ensemble de l’API »Ouvre http://localhost:3070/_about dans ton navigateur.
Cette page intégrée affiche tous les endpoints générés regroupés par collection, les modes serveur actifs, les routes personnalisées définies dans _routes et des exemples curl prêts à l’emploi pour chaque opération. Elle se met à jour automatiquement lors du rechargement du serveur — utile comme référence rapide pendant que tu construis ton frontend.
Prochaines étapes
Section intitulée « Prochaines étapes »- Configuration — toutes les options de
yrest.config.yml - Format de base de données — apprends le schéma YAML complet
- Paramètres de requête — filtres, tri, pagination, projections
- Relations — lie des collections avec
_rel - Routes personnalisées — ajoute des endpoints non-CRUD
- API programmatique — utilise avec Vitest et Playwright