Une livraison à la fois

Exercice 2 sur 4 du chapitre 2 · 100 XP · 2 objectifs vérifiés par des tests

Notions abordées : Paramètre de routeCode HTTP404

Dans l'application, un coursier touche une livraison pour voir son détail. Il faut une adresse par livraison.

Votre mission

  1. Ajoutez au contrôleur une méthode Show, branchée sur GET /livraisons/{id}.
  2. Elle cherche dans la tournée la livraison dont l'ID est celui de l'URL, et la renvoie en JSON.
  3. Un numéro qui n'existe pas, ou qui n'est pas un nombre, répond 404 avec {"erreur": "livraison introuvable"}.

Rappel

ctx.Request().RouteInt("id") lit un paramètre de route et le convertit en int. Goravel a aussi RouteInt64, et Route pour la chaîne brute.

ctx.Response().Json(code, données) choisit le code HTTP. Les constantes du paquet net/http de Go sont reprises par Goravel : http.StatusNotFound vaut 404, http.StatusCreated 201, http.StatusUnprocessableEntity 422. On les préfère aux nombres, pour se relire.

En Go, return sort tout de suite de la fonction, au milieu d'une boucle comme ailleurs : le code après la boucle ne s'exécute que si rien n'a été trouvé.