TP CRUD REST
Objectifs du TP
Objectifs de ce TP:
Implémenter un CRUD simple
Implémenter une API Web REST+JSON
Implémenter un CRUD accessible via une API REST
Émettre des réponses HTTP contenant du JSON
Transformons maintenant le CRUD des utilisateurs que nous avons construit au TP1 sous la forme d'une API Web REST afin que le code du Front-end puisse ajouter ou supprimer des utilisateurs dans la base de données. Avant de créér votre propre API Web au format REST ci-dessous quelques notions permettant de mieux comprendre tous ces termes : HTTP, JSON, API, REST, ...
Votre API REST pour le CRUD des users
users
Crééons maintenant une API REST pour la gestion des utilisateurs du TP1. Créer un nouveau répertoire $PROJET_CDAW/BackEnd/tp2
.
Documentez votre API REST
En vous inspirant de documentations REST existantes ajouter dans votre dépôt (tp2/doc/index.html
ou tp2/doc/README.md
) une documentation de l'API REST que vous allez implémenter pour la gestion des utilisateurs.
Exemples de documentation d'API :
https://punkapi.com/documentation/v2
Voici des exemples pour votre API :
Lire toutes les utilisateurs :
GET /users
sans paramètreretourne une réponse HTTP dont le contenu JSON décrit tous les utilisateurs de la base
Créer un utilisateur :
POST /users
nécessite de passer tous les champs de l'utilsateur à créer en paramètre POST (name, email) sauf le champ
id
qui sera automatique affecté par le serveurEn cas succès, retourne le code de statut HTTP
201 Created
et le champLocation
de l'en-tête HTTP doit contenir l'URL de la nouvelle ressource donc son identifiant. Exemple :Location: /user/5
En cas d'erreur, retourne le code d'erreur de statut HTTP approprié parmis : https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Implémenter GET /users
GET /users
Commençons par implémenter un endpoint /users
supportant la méthode GET
sans paramètre et qui retournera la liste des utilisateurs dans la base en JSON.
Voici les fichiers à créer et compléter :
config.php
(cf. TP1) contient les données de connexion à la basebootstrap.php
qui configure un autoloader PHP permettant de charger automatique les fichiers contenant les définitions de classes :
DatabaseConnector.php
qui est un singleton stockant la connexion à la base (objet PDO) :
UserModel.php
qui sera une version modifiée de votre classeUser
écrite dans le TP1 :
UsersController.php
qui contient le code permettant de répondre aux requêtes de l'API :GET /users
etPOST /users
:
api.php
qui est le root-endpoint de votre API REST :
Tester votre API Web avec :
votre navigateur pour les requêtes simples (GET)
curl
en ligne de commandeAdd-on navigateur : Advanced REST client (Chrome) ou RESTClient (Firefox)
https://www.postman.com/
Finir votre API
Créer un utilisateur :
POST /users
Supprimer un utilisateur :
DELETE /user/{id}
Lire les données d'un utilisaeur :
GET /user/{id}
Modifier un utilisaeur :
PUT /user/{id}
Last updated
Was this helpful?