Laravel Wayfinder est un nouveau package officiel proposé par l’équipe Laravel, conçu pour fluidifier la communication entre un backend Laravel et un frontend écrit en TypeScript. L’idée centrale est simple mais puissante : automatiser la génération de fonctions TypeScript fortement typées, directement à partir des routes et des contrôleurs définis côté serveur. Grâce à ce mécanisme, il devient inutile de hardcoder des URLs ou de deviner les noms de paramètres. Le développeur frontend peut désormais interagir avec les endpoints Laravel comme s’ils étaient des fonctions locales.
Pour démarrer avec Wayfinder, il faut d’abord l’installer via Composer. Cette étape se fait en exécutant la commande composer require laravel/wayfinder. Une fois installé, Laravel met à disposition une commande Artisan nommée wayfinder:generate, qui permet de scanner les fichiers de routes et de contrôleurs afin de produire un fichier TypeScript avec toutes les fonctions nécessaires à l’interaction avec l’API Laravel.
Prenons un exemple concret. Supposons que vous avez un contrôleur PostController avec une méthode show définie comme suit :
public function show(Post $post)
{
return response()->json($post);
}
Wayfinder détecte automatiquement cette méthode et, après génération, vous permet de l’appeler en TypeScript de cette manière :
import { show } from "@actions/App/Http/Controllers/PostController"
const response = await show({ post: 1 })
Cette ligne TypeScript est typée de manière stricte. Le paramètre post est exigé et le type de retour correspond exactement à celui que Laravel fournit. Cette approche réduit considérablement les erreurs lors des appels à l’API, tout en améliorant l’expérience de développement côté client.
Pour assurer que les fonctions générées restent à jour au fil des modifications, il est recommandé d’utiliser un plugin Vite comme vite-plugin-run. Ce plugin peut être configuré pour exécuter automatiquement la commande de génération à chaque fois que vous modifiez vos routes ou contrôleurs. Cette intégration permet un workflow de développement particulièrement fluide et réactif.
Wayfinder est encore en version bêta, ce qui signifie que son API est susceptible d’évoluer. Cependant, même à ce stade, il constitue déjà une avancée notable dans la synchronisation entre frontend et backend dans les projets Laravel modernes. Grâce à lui, la frontière entre les deux mondes s’estompe, ouvrant la voie à un développement plus rapide, plus sûr, et plus agréable.
Pour découvrir plus en détail ce package prometteur, le dépôt officiel est disponible sur GitHub à l’adresse suivante : github.com/laravel/wayfinder.
Sources
- Paul Redmond - Laravel Wayfinder Public Beta
- Github du package: github.com/laravel/wayfinder