routes/web.go grossit, et Margot a déjà d'autres idées. Comme dans Laravel, le code des routes ira dans un contrôleur. Le neveu de Margot, qui « fait du Go », a commencé CoursierController et y a rangé la liste des coursiers.
Votre mission
- Dans
app/http/controllers/coursier_controller.go, ajoutez une méthodeIndexqui répond{"coursiers": [...]}avec la listecoursiersdu fichier. - Ajoutez une méthode
Show, qui reprend ce que fait la route/coursiers/{prenom}. - Dans
routes/web.go, créez le contrôleur aveccontrollers.NewCoursierController(), branchezGET /coursierssurIndexetGET /coursiers/{prenom}surShow, et retirez l'ancienne fonction.
Rappel
Go n'a pas de classes : un contrôleur est une struct, ici vide (type CoursierController struct{}), à laquelle on attache des méthodes. Le (r *CoursierController) placé avant le nom de la méthode est son receveur, l'équivalent de $this. Le * et le & désignent l'adresse de la struct plutôt qu'une copie : retenez juste la forme, on y revient au chapitre 4. NewCoursierController() est un simple constructeur, une convention de Go plutôt qu'un mot-clé.
coursiers.Index, sans parenthèses, est la méthode elle-même, que la route appellera à chaque requête : c'est le [CoursierController::class, 'index'] de Laravel.
[]string{"Margot", …} est une slice de chaînes, la liste de Go. Passée à Json, elle devient un tableau JSON.