Outils pour utilisateurs

Outils du site


nsi:tds:serveur_web20:routeur

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 _routes de type list détaillés plus bas,
  • attribut _default_action contenant 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)route est 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 action correspondante 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':...}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,
  • params, un dictionnaire, résultat de req.match(pattern) – voir requete.
  • En sortie, action doit renvoyer le contenu encodé qui sera la réponse à transmettre au client.
nsi/tds/serveur_web20/routeur.txt · Dernière modification : de goupillwiki