TP Flask, REST et OpenAPI
1. Description
Nous allon concevoir la petite application suivante :
Il s’agit d’une application jouet et peu réaliste pour gérer les films et les réservations d’utilisateurs dans un cinéma. Cette application est composée de 4 micro-services :
-
Movie
est le micro-service responsable de la gestion des films du cinéma. Il contient et gère une petite base de donnéesjson
contenant la liste des films disponibles avec quelques informations sur les films. -
Times
est le micro-service responsable des jours de passage des films dans le cinéma. Il contient et gère une petite base de donnéesjson
contenant la liste des dates avec l’ensemble des films disponibles à cette date. -
Booking
est le micro-service responsable de la réservation des films par les utilisateurs. Il contient et gère une petite base de donnéesjson
contenant une entrée par utilisateurs avec la liste des dates et films réservés.Booking
fait appel àTimes
pour connaître et vérifier que les créneaux réservés existent bien puisqu’il ne connait pas lui même les créneaux des films. -
Use
est le micro-service qui sert de point d’entrée à tout utilisateur et qui permet ensuite de récupérer des informations sur les films, sur les créneaux disponibles et de réserver. Il contient et gère une petite base de donnéesjson
avec la liste des utilisateurs.User
fait appel àBooking
etMovie
pour respectivement permettre aux utilisateurs de réserver un film ou d’obtenir des informations sur les films.
2. Travail à réaliser
-
Proposez des point d’entrée supplémentaires dans le service
Movie
pour récupérer des informations sur les films. Proposez aussi un point d’entréehelp
permettant de connaître l’ensemble des points d’entrée de votre serviceMovie
. Mettez à jour la spécification openAPI en conséquence. -
Testez votre microservice avec
Postman
ou une solution équivalente (https://www.postman.com/). -
Écrivez le microservice
Times
à partir de la spécification OpenAPI fournie dans le repository (UE-archi-distribuees-Showtime-1.0.0-resolved.yaml
) et testez votre service (sauvegardez bien vos collections de requêtes). -
Coder le service
Booking
à partir de la spécification OpenAPI disponible (UE-archi-distribuees-Booking-1.0.0-resolved.yaml
) et testez votre service (sauvegardez bien vos collections de requêtes). -
Regarder le contenu du fichier
user.json
et imaginez une spécification openAPI pour le serviceUser
en conséquence de façon à ce qu’il utilise à la fois les servicesBooking
etMovie
. Des exemples :-
un point d’entrée permettant d’obtenir les réservations à partir du nom ou de l’ID d’un utilisateur ce qui demandera à interroger le service
Booking
pour vérifier que la réservation est bien disponible à la date demandée -
un point d’entrée permettant de récupérer les informations des films pour les réservations d’un utilisateur ce qui demandera à interroger à la fois
Booking
etMovie
-
-
Écrivez le microservice correspondant et testez votre service (sauvegardez bien vos collections de requêtes).
Important
|
Pour coder Booking et User vous aurez besoin d’appeler d’autres services par le biais de leur API REST. Pour cela vous utiliserez le paquet requests (déjà présent dans requirements.txt ) et utilisez la fonction get (ou post ). Voir ici
|