TP Flask, REST et OpenAPI

1. Description
Nous allons concevoir une petite application permettant de gérer une salle de cinéma, et les réservations des utilisateurs :

Il s’agit d’une application jouet et peu réaliste. 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. -
Scheduleest 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 utilisateur avec la liste des dates et films réservés.Bookingfait appel àSchedulepour 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. -
Userest le micro-service est le micro-service qui servirait typiquement à authentifier les utilisateurs. Il contient et gère une petite base de donnéesjsonavec la liste des utilisateurs.
2. Travail à réaliser
-
Coder chacun des services pour permettre tout simplement d’accéder, d’ajouter ou de supprimer des éléments de leur petite base de données
json(CRUD). Pas d’update nécessaire surBookingetSchedule.-
Certains points d’entrée ont besoin d’intéragir avec d’autres services, par exemple à l’ajout d’une réservation le service
Bookingdoit vérifier auprès deScheduleque la date réservée pour le film est correcte (d’où la flèche deBookingversSchedule). -
Soyez logique ! par exemple, il ne parait pas adapté de pouvoir accéder à toutes les réservations de tous les utilisateurs si on n’est pas admin.
-
-
Coder deux ou trois points d’entrée supplémentaires plus intéressants permettant de recouper des informations.
-
Par exemple un point d’entrée dans
Bookingpermettant de récupérer les réservations et le détail du film réservé (d’où les flèches de booking vers Movie). -
Si vous avez besoin, vous pouvez ajouter des flèches entre les services.
-
-
Écrire les documentations OpenAPI associées à vos services avec des exemples et avec la description des données en entrée et en sortie.
|
Important
|
Pour coder Booking 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
|