Configuration du Backend
Backend
Database
CRUD
Créez une API backend avec des endpoints pour gérer les livres : opérations de création, lecture, modification et suppression avec une base de données.
CRUD de bibliothèque (Épisode 1)
Retour à l'Académie
Base de données et CRUD
Résumé express : Créer une base de données complète avec opérations CRUD (Create, Read, Update, Delete) pour gérer une liste de livres avec Luna Park.
1. Architecture du projet
- Créer deux dossiers distincts :
- Backend : pour la base de données et les routes
- Frontend : pour l'interface utilisateur
Dans ce tutoriel, nous commençons par le backend.
2. Création de la base de données
Initialiser la base
- Créer une nouvelle base de données nommée db-books
- La base contient par défaut :
- ID : identifiant unique
- created_at : date de création automatique
Ajouter des colonnes personnalisées
- Ajouter une colonne title (type : string)
- Ajouter une colonne author (type : string)
- Ajouter quelques rows (lignes) avec des données de test
En 15 secondes, votre base de données est prête à l'emploi !
3. Routes API - Concept général
Les routes sont des URL qui permettent de :
- Récupérer des données (GET)
- Envoyer de nouvelles données (POST)
- Modifier des données existantes (PUT)
- Supprimer des données (DELETE)
Nous allons créer 4 routes correspondant aux opérations CRUD.
4. Route GET - Récupérer tous les livres
Créer la route get-books
- Créer une nouvelle route nommée get-books
- Définir la méthode : GET
Méthode simple : dbfind
- Créer un node dbfind
- Sélectionner la table db-books
- Le résultat renvoie un tableau de rows (lignes)
- Connecter le résultat à la réponse
- Relier le fil d'exécution entre dbfind et la route
- Tester avec Execute et Ctrl+Espace pour visualiser
Méthode avancée : dbfrom avec query
- Créer un node dbfrom
- Sélectionner la table db-books
- Ajouter un select pour choisir les champs :
idtitleauthor
- Ajouter un dbexecute
- Tester avec Ctrl+Espace
- Connecter le résultat à la réponse
Typer la réponse (bonne pratique)
- Définir le type de réponse attendu :
- Tableau d'objets
- Chaque objet contient :
id,title,author
- Avantage : vérification automatique du type
- Si un champ manque ou est en trop → erreur missingProperty
5. Route POST - Créer un nouveau livre
Créer la route create-books
- Créer une nouvelle route nommée create-books
- Vérifier que la méthode est POST
Définir le body (données entrantes)
Dans Route Input, ajouter un body contenant :
- title (string) : titre du livre
- author (string) : auteur du livre
Ces données viendront des inputs du frontend
Insérer dans la base
- Tirer un fil depuis le body
- Créer un node dbinsert
- Sélectionner la table db-books
- Connecter le body au champ data
Renvoyer l'état mis à jour (optionnel mais recommandé)
- Ajouter un dbfind après l'insertion
- Sélectionner la table db-books
- Connecter le résultat à la réponse
- Copier le type de réponse depuis get-books (clic droit → copier)
- Coller dans la réponse de create-books
6. Route DELETE - Supprimer un livre
Créer la route delete-books
- Créer une nouvelle route nommée delete-books
- Changer la méthode en DELETE
- Coller le type de réponse (même que get-books)
Définir l'ID à supprimer
Dans Route Input, ajouter un body contenant :
- id (string) : identifiant du livre à supprimer
Supprimer par ID
- Tirer un fil depuis delete-books
- Créer un node delete by ID
- Sélectionner la table db-books
- Connecter l'ID :
- Tirer un fil depuis le body
- Créer un get property
- Sélectionner la propriété id
- Connecter au champ ID du delete by ID
Renvoyer l'état mis à jour
- Ajouter un dbfind après la suppression
- Sélectionner la table db-books
- Connecter le résultat à la réponse
7. Route PUT - Modifier un livre existant
Créer la route update-books
- Créer une nouvelle route nommée update-books
- Changer la méthode en PUT
- Coller le type de réponse
Définir le body
Dans Route Input, ajouter un body contenant :
- id (string) : livre à modifier
- title (string) : nouveau titre
- author (string) : nouvel auteur
Mettre à jour par ID
- Tirer un fil depuis update-books
- Créer un node DBUpdateByID
- Sélectionner la table db-books
Gérer les données d'update
Pour l'ID :
- Créer un spread depuis le body
- Sélectionner id
- Connecter au champ ID
Pour les données à modifier :
- Créer un create object
- Ajouter les propriétés title et author
- Créer un spread depuis le body
- Connecter title et author à l'objet
- Connecter l'objet au champ update
Renvoyer l'état mis à jour
- Ajouter un dbfind après la mise à jour
- Sélectionner la table db-books
- Connecter le résultat à la réponse
Récapitulatif des nodes utilisés
| Node | Usage |
|---|---|
| dbfind | Récupérer toutes les données d'une table |
| dbfrom + select | Requête flexible avec sélection de champs |
| dbexecute | Exécuter une requête dbfrom |
| dbinsert | Insérer une nouvelle entrée |
| delete by ID | Supprimer une entrée spécifique |
| DBUpdateByID | Modifier une entrée existante |
| get property | Extraire une propriété d'un objet |
| spread | Déstructurer un objet |
| create object | Créer un nouvel objet |
Méthodes HTTP
- GET : récupérer des données
- POST : créer de nouvelles données
- PUT : modifier des données existantes
- DELETE : supprimer des données
Conseils pratiques
- Toujours typer les réponses pour éviter les erreurs de structure
- Renvoyer l'état actuel de la base après chaque modification
- Utiliser Ctrl+Espace pour visualiser les résultats pendant le développement
- L'ID est la clé pour identifier précisément chaque élément
- Le body permet de transmettre des données du frontend au backend
- Vérifier systématiquement que la méthode HTTP est correcte pour chaque route