|
|
@@ -0,0 +1,36 @@
|
|
|
+# Introduction
|
|
|
+
|
|
|
+On va écrire une application Node.js qui expose des routes HTTP qui vont permettre gérer des entités stockées en base de données.
|
|
|
+
|
|
|
+En premier lieu, initialiser un nouveau fichier `package.json` grâce à la commande `npm init`.
|
|
|
+
|
|
|
+Installer les dépendances (et enregistrer l'information dans le package.json au passage) :
|
|
|
+```sh
|
|
|
+npm install --save express body-parser sequelize mysql2
|
|
|
+```
|
|
|
+
|
|
|
+`express` permet de créer un serveur HTTP, `body-parser` de récupérer les données transmises par le client avec une requête et `sequelize` est la bibliothèque qui va nous servir à gérer le lien avec la BDD. C'est ce qu'on appelle un ORM (Object Relational Mapper). Sa documentation est accessible à l'adresse : https://sequelize.org/v5/
|
|
|
+Vous pouvez notamment commencer par consulter la section [Getting started](https://sequelize.org/v5/manual/getting-started.html).
|
|
|
+
|
|
|
+# Exercices
|
|
|
+
|
|
|
+- Créer une base de données "W4a"
|
|
|
+
|
|
|
+- Ecrire une application Node.js qui :
|
|
|
+ - crée un objet `sequelize` connecté à votre base "W4a"
|
|
|
+ - définit une entité Sequelize (modèle) `Person` ayant des champs `firstname` et `lastname`
|
|
|
+ - synchronise la base avec l'entité définie
|
|
|
+ - crée un serveur HTTP `express`
|
|
|
+ - enregistre les routes HTTP suivantes :
|
|
|
+ - `GET /person` : renvoie l'ensemble des personnes sous la forme d'un tableau d'objets en JSON
|
|
|
+ - `POST /person` : ajoute une nouvelle entité `Person` en base à partir des données fournies avec la requête en JSON
|
|
|
+ - `GET /person/:person_id` : renvoie la personne d'identifiant `person_id` sous la forme d'un objet en JSON
|
|
|
+ - `PUT /person/:person_id` : modifie la personne d'identifiant `person_id` à partir des données fournies en JSON
|
|
|
+ - `DELETE /person/:person_id` : supprime la personne d'identifiant `person_id`
|
|
|
+ - ajoute un middleware de gestion d'erreur qui reçoit un objet contenant le statut et le texte de la réponse d'erreur à renvoyer
|
|
|
+ - lance l'écoute du serveur HTTP sur un port choisi
|
|
|
+
|
|
|
+L'ensemble des fonctions qui font appel à l'entité Sequelize `Person` et dont l'appel sera associé aux différentes routes enregistrées seront définies au sein d'un objet `personCtrl`.
|
|
|
+On écrira les fonctions `get_all, create, get_by_id, update_by_id, delete_by_id`.
|
|
|
+
|
|
|
+L'ensemble de ces routes seront testées grâce à l'outil Postman.
|