Laravel 13.35 Nouveauté Publié le

Chercher avec un corps de requête grâce à la méthode QUERY

Route::query() déclare une route pour la méthode HTTP QUERY : une lecture, comme GET, mais avec ses critères dans le corps de la requête.

Notions abordées : RoutageHTTP

Nouveau dans Laravel 13.35. Une recherche aux critères nombreux tient mal dans l'adresse d'un GET. On la passait donc en POST, avec ses critères dans le corps, alors qu'elle ne modifie rien. La méthode HTTP QUERY, normalisée par la RFC 10008 (juin 2026), est faite pour ce cas : elle est sûre et idempotente comme GET, et porte un corps comme POST. Laravel la route maintenant.

Avant

Route::post('/api/livres/recherche', LivreController::class);

Depuis Laravel 13.35

Route::query('/api/livres', LivreController::class);

Les tests ont leurs raccourcis : $this->query() et $this->queryJson(), à côté de get() et getJson(). Attention, Laravel ne range pas encore QUERY parmi les méthodes qui ne font que lire : une route QUERY du groupe web vérifie le jeton CSRF, comme un POST.

À faire

La recherche du catalogue passe par POST /api/livres/recherche, avec un corps JSON : {"auteurs": […], "avant": 1950, "genres": […]}. Déclarez-la plutôt en QUERY /api/livres, dans routes/web.php. Le contrôleur ne change pas.

D'où vient la fonctionnalité : la pull request d'origine.