Exercice : le service d’achat en ligne
On désire mettre en ligne un catalogue de produits parmi lesquels un client peut
constituer un
panier d'achat.
Les cas d'utilisation définis sont :
▪ L'utilisateur consulte la liste des articles du catalogue
▪ L'utilisateur consulte le détail d'un produit
▪ L'utilisateur ajoute un produit à son panier d'achat
▪ L'utilisateur supprime un produit de son panier d'achat
▪ L'utilisateur valide son panier pour le paiement en ligne
1- Décrivez la réalisation d'une API Web RESTful par des exemples de
requêtes/réponses
HTTP.
2- TRAVAUX PRATIQUES : En utilisant le langage de programmation et les
technologies de
votre choix, réaliser une implémentation de cette API. Les opérations exposées
doivent
fonctionner correctement et doivent être reflétées dans la base de données.
1. Description
Pseudo serveur (Base de données) où sont stockés les articles à vendre : [Link]
L’utilisateur consulte la liste des articles du catalogue :
GET /catégories_articles
Le serveur répond (200) en fournissant une liste d'URL pointant chacune sur une catégorie d’articles.
Exemple de réponse du serveur sous forme la forme :
[Link] /catégories1/articles ;
[Link] /catégories2/articles;
[Link] /catégories1/articles, tout en fournissant un lien supplémentaire
permettant au client de créer un compte utilisateur afin de lui permettre une meilleure expérience
utilisateur. Exemple : [Link]
L'utilisateur consulte le détail d'un produit
L’utilisateur peut choisir le lien qu'il souhaite dans la liste ci-dessus et faire un GET pour obtenir le
détail d'un article : GET /detail_articles
Exemple de réponse du serveur pour un GET sur une URL d’articles
{
"_links": {
"self": { "href": "[Link]
" [Link] { "href":
"URL_POUR_ajouter"}
}
"id": "hal",
"properties": {
"name": "article1",
"start": "2022-11-09",
"location": "bobo_DSSO",
"summary": "guaranteed quality"
}
}
L'utilisateur ajoute un produit à son panier d'achat
Pour ajouter, le client effectue un POST sur le lien avec le type de relation [Link]
[Link]/ajouter_au_panier en ayant créé un compte utilisateur et s’étant connecté sur
ledit compte.
Exemple de requête d’ajout au panier :
POST URL_POUR_ajouter HTTP/1.1
L'utilisateur supprime un produit de son panier d'achat
En effectuant un DELETE sur l'URL donnée par le lien de type
[Link] et avec un corps de message vide,
l'utilisateur supprime un article de son panier. Il s'agit de réaliser une mise à jour avec un
contenu vide.
Exemple de requête pour supprimer un article du panier
DELETE URL_DE_SUPPRESSION HTTP/1.1
Content-length: 0
L'utilisateur valide son panier pour le paiement en ligne
L'utilisateur valide son panier en effectuant un POST sur l'URL donnée par le lien de type
[Link] Il n'y a pas de corps à la requête.
Exemple requête de validation
POST URL_DE_VALIDATION HTTP/1.1
Content-Length: 0
…..