nsi:tds:serveur_web20:routeur
Table des matières
Module routeur
Dans le fichier routeur.py on définit la classe Routeur.
Le rôle du routeur est, en fonction de la requête reçue, chercher l'action à exécuter.
Vous pouvez tester le bon fonctionnement avec le module de test : routeur.test.py.
Interface de la classe Routeur
- attribut
_routesde typelistdétaillés plus bas, - attribut
_default_actioncontenant l'action à déclencher par défaut. Cette action est une fonction prenant en argument la requête et qui renvoie le contenu encodé qui sera la réponse à transmettre au client. - méthode
__init__(self, routes, default_action)qui initialise le routeur avec une liste de routes et précise l'action par défaut. - méthode
add_route(self, route)oùrouteest de la forme{'pattern':..., 'action':...}et qui ajoute la route à la liste des routes du routeur. - méthode
trigger(self, req:Requete)
Cette méthode cherche dans la liste de routes la première qui est validée par req.
- Si aucune route n'est validée, déclenche l'action par défaut.
- Si une route est disponible, la fonction
actioncorrespondante est exécutée et sa réponse renvoyée.
trigger signifie déclencher.
routes
Chaque item de _routes est un dictionnaire de forme { 'pattern':..., 'action':...} où pattern est un schéma comme ceux défini dans la classe Requete et action une fonction qui s'exécutera si le schéma est validé.
La fonction doit être prévue pour avoir comme arguments :
req:Requete, représentant la requête envoyée,- En sortie,
actiondoit renvoyer le contenu encodé qui sera la réponse à transmettre au client.
nsi/tds/serveur_web20/routeur.txt · Dernière modification : de goupillwiki
