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 :
-
Movieest le micro-service responsable de la gestion des films du cinéma. Il contient et gère une petite base de donnéesjsoncontenant la liste des films disponibles avec quelques informations sur les films. -
Timesest le micro-service responsable des jours de passage des films dans le cinéma. Il contient et gère une petite base de donnéesjsoncontenant la liste des dates avec l’ensemble des films disponibles à cette date. -
Bookingest le micro-service responsable de la réservation des films par les utilisateurs. Il contient et gère une petite base de donnéesjsoncontenant une entrée par utilisateurs avec la liste des dates et films réservés.Bookingfait appel àTimespour 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. -
Useest 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éesjsonavec la liste des utilisateurs.Userfait appel àBookingetMoviepour 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
Moviepour récupérer des informations sur les films. Proposez aussi un point d’entréehelppermettant 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
Postmanou 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.jsonet imaginez une spécification openAPI pour le serviceUseren conséquence de façon à ce qu’il utilise à la fois les servicesBookingetMovie. 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
Bookingpour 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
BookingetMovie
-
-
É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
|