Publicado em: 03, abril 2025
Sempre acompanho lançamentos no ecossistema Laravel em busca de ferramentas que possam tornar o desenvolvimento mais eficiente e organizado. Ontem 02 de Abril, fiquei interessado em uma ferramenta promissora chamada Laravel Wayfinder, que parece resolver muitos dos desafios na integração entre backend Laravel e frontend TypeScript.
O Laravel Wayfinder é uma solução que gera automaticamente funções TypeScript totalmente tipadas diretamente a partir das rotas e controllers Laravel. Essa funcionalidade promete acabar com a necessidade de URLs hardcoded e elimina os erros comuns de digitação ou parâmetros incorretos no frontend.
Com o Wayfinder, desenvolvedores podem chamar endpoints Laravel diretamente como funções comuns do TypeScript, garantindo uma integração mais fluida e segura entre backend e frontend.
A instalação é realmente bem simples:
composer require laravel/wayfinder npm i -D vite-plugin-run
Configure o vite.config.js para monitorar mudanças automaticamente:
import { run } from "vite-plugin-run"; export default defineConfig({ plugins: [ run([ { name: "wayfinder", run: ["php", "artisan", "wayfinder:generate"], pattern: ["routes/*.php", "app/**/Http/**/*.php"], }, ]), ], resolve: { alias: { "@actions/": "./resources/js/actions", "@routes/": "./resources/js/routes", }, }, });
Com um simples comando, as definições são geradas automaticamente:
php artisan wayfinder:generate
Essas definições são organizadas automaticamente nos diretórios wayfinder, actions e routes, proporcionando um ambiente de desenvolvimento mais claro e eficiente.
O Wayfinder permite acessar URLs e métodos HTTP facilmente, como neste exemplo:
import { show } from "@actions/App/Http/Controllers/PostController"; const postUrl = show.url(1); // Retorna "/posts/1" const postHead = show.head(1); // { url: "/posts/1", method: "head" }
Outra promessa interessante do Wayfinder é a geração automática de atributos para formulários convencionais:
php artisan wayfinder:generate --with-form
Exemplo de uso:
import { store } from "@actions/App/Http/Controllers/PostController"; const Page = () => ( <form {...store.form()}> {/* action="/posts" method="post" */} </form> );
Para desenvolvedores que utilizam Inertia.js, o Wayfinder é particularmente promissor ao facilitar ainda mais o processo de comunicação com backend:
import { useForm } from "@inertiajs/react"; import { store } from "@actions/App/Http/Controllers/PostController"; const form = useForm({ name: "Meu novo post" }); form.submit(store()); // POST automático para `/posts`
O Laravel Wayfinder é uma ferramenta com grande potencial para melhorar significativamente a produtividade e a segurança em projetos Laravel com TypeScript. Estou bastante entusiasmado com suas possibilidades e recomendo que desenvolvedores fiquem atentos a esta solução para o futuro próximo.
Experimente e veja o quanto ela pode ajudar no seu dia a dia de desenvolvimento!
Mais de 10 anos de experiência com Laravel e sólidos conhecimentos em frameworks front-end, como ReactJS, React Native e Vue JS. Experiência em Design de Serviço. No primeiro projeto profissional como júnior, desenvolveu em e-commerce para a maior indústria de equipamentos odontológicos da América Latina. Atualmente, atua como Full Stack Engineer Specialist em uma grande multinacional. Lidera decisões técnicas e é um suporte fundamental para a equipe de desenvolvimento.