Notion de contrôleur frontal
Contrôleur frontal : définition
Un contrôleur frontal est un composant dont le rôle est d'aiguiller les requêtes émises par les utilisateurs d'une application vers les contrôleurs applicatifs adéquats.
Pour réaliser cette tâche les contrôleurs frontaux, que l'on appelle aussi parfois dispatchers, associent des patterns d'URL avec des noms de contrôleurs.
Un exemple simple
Dans notre application chistera
, les utilisateurs pourront accéder à un tableau de bord, ainsi qu'aux différents backlogs. Pour cela, ils auront à leur disposition ces deux types d'URL :
/dashboard/
devra afficher le tableau de bord./backlog/<id_du_backlog>/
devra afficher le backlog ayant pour identifiantid_du_backlog
.
Bien entendu, l'affichage du dashboard fera l'objet d'un contrôleur, tout comme l'affichage d'un backlog.
Notre front controller aura donc pour tâche de rediriger les requêtes d'URL /dashboard/
vers notre contrôleur gérant l'affichage du dashboard, et de rediriger les requêtes d'URL /backlog/<id_du_backlog>/
vers notre contrôleur gérant l'affichage des backlogs.
Testez vos connaissances…
- Router des types d'URL vers les contrôleurs adéquats.
- Router des types d'URL vers les templates adéquats.
- Réaliser les traitements métier nécessaires pour répondre à une requête de l'utilisateur.
- S'assurer que toutes les routes nécessaires au fonctionnement d'un projet ou d'une application sont correctement définies.
/forum/topic/<slug_topic>/
- À repérer le topic que le contrôleur de topics devra afficher.
- Il ne sert à rien et est inséré dans les URL à des fin de SEO.
- Arf, c'est quoi un slug ?
Un slug est une chaîne de caractère, une partie d'URL, qui ne comporte pas d'espace et d'accents. Il permet de repérer quelque chose, et est ainsi une alternatives aux identifiants numériques que l'on traîne souvent dans les URLs et qui ne sont pas SEO-friendly.
Par exemple, /forum/topic/quelques-remarques-sur-django/
(ou encore /forum/topic/quelques-remarques-sur-django/154/
) peut remplacer avantageusement /forum/topic/154/
(voire pire : /forum/topic.html?id=154
).