Les routes et les contrôleurs
La table de routes, les paramètres de chemin et de requête, l'ordre des routes, les réponses 404 et 405, et le travail d'un contrôleur : lire la requête, appeler le modèle, choisir la réponse.
- 23 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Route : de quoi s'agit-il ?
Voir la réponse
Règle qui associe une méthode HTTP et un motif d'URL à l'action chargée de traiter la requête.
Un même chemin peut porter plusieurs routes selon la méthode :
GET /articlesliste,POST /articlescrée. L'ensemble des routes forme la table que l'application parcourt à chaque requête.Le routeur retient la première route qui correspond. Quelle action traite
GET /articles/newavec cette table ?
```text
1. GET /articles index
2. GET /articles/{id} show
3. GET /articles/new new_form
4. POST /articles create`show, avecidvalantnewnew_form, car c'est la route la plus préciseindex, car/articlesest un préfixe du chemin- Aucune : la réponse est 404, car
newn'est pas un nombre
Voir la réponse
show, avecidvalantnew{id}accepte n'importe quel segment,newcompris, et la route 2 est lue avant la route 3. Il faut déclarer/articles/newavant/articles/{id}, ou borneridaux chiffres.Dans le motif
/articles/{id},{id}est un … : l'application extrait sa valeur de l'URL et la transmet à l'action.Voir la réponse
Dans le motif
/articles/{id},{id}est un paramètre de chemin : l'application extrait sa valeur de l'URL et la transmet à l'action.Pour
GET /articles/42, l'action reçoitid = '42', par défaut sous forme de texte : le convertir en entier reste à faire, sauf si la route impose un type.Motif d'URL : de quoi s'agit-il ?
Voir la réponse
Modèle de chemin contenant des emplacements variables entre accolades, que l'application compare à l'URL reçue.
/articles/{id}accepte/articles/42et/articles/new, mais ni/articlesni/articles/42/comments: un emplacement ne couvre qu'un seul segment du chemin.Le formulaire de création envoie
POST /articleset reçoit405 Method Not Allowed, alors queGET /articlesaffiche bien la liste. Quelle est la cause ?- Le formulaire est mal rempli et le serveur le refuse
- L'action de création plante et l'application renvoie 405 par défaut
- L'utilisateur n'est pas connecté, donc la méthode est interdite
- La route
/articlesn'est déclarée que pourGET
Voir la réponse
La route
/articlesn'est déclarée que pourGETLe chemin est connu, la méthode ne l'est pas : c'est exactement un 405. Il manque une route
POST /articlesvers l'action de création. Un plantage donnerait 500, une saisie refusée un 400 ou 422, une session absente un 401 ou une redirection vers la connexion.