Команда Laravel випустила першу бета-версію пакету Laravel Wayfinder, нового рішення, яке з'єднує ваші маршрути між фронтендом і бекендом:
Laravel Wayfinder забезпечує безперешкодне з'єднання між вашим бекендом на Laravel і фронтендом на TypeScript. Він автоматично генерує повністю типізовані, імпортовані функції TypeScript для ваших контролерів і маршрутів, що дозволяє безпосередньо викликати ваші Laravel ендпоінти у клієнтському коді, як будь-яку іншу функцію. Тепер не потрібно жорстко кодувати URL, вгадувати параметри маршрутів чи ручно синхронізувати зміни бекенду.
Wayfinder генерує визначення TypeScript для ваших маршрутів і методів контролерів за допомогою команди Artisan: php artisan wayfinder:generate
. Ви також можете налаштувати Vite для автоматичного виконання команди wayfinder:generate
при зміні файлів маршрутів і контролерів, щоб фронтенд завжди залишався актуальним.
Після генерації визначень TypeScript ви можете використовувати їх для отримання URL і HTTP-методу:
import { show } from "@actions/App/Http/Controllers/PostController";
show(1); // { url: "/posts/1", method: "get" }
// Викликаємі контролери
import StorePostController from "@actions/App/Http/Controllers/StorePostController";
StorePostController();
// Методи контролерів
import PostController from "@actions/App/Http/Controllers/PostController";
PostController.show(1);
// Іменовані маршрути
import { show } from "@routes/post";
// Іменований маршрут - `post.show`...
show(1); // { url: "/posts/1", method: "get" }
Ще одна вражаюча особливість — безшовна інтеграція Wayfinder з Inertia та useForm
. Просто передайте об'єкт у метод submit()
форми, і він автоматично визначить URL і метод запиту:
import { useForm } from "@inertiajs/react";
import { store } from "@actions/App/Http/Controllers/PostController";
const form = useForm({
name: "Мій великий пост",
});
form.submit(store()); // Відправить POST на `/posts`...
На момент написання Wayfinder знаходиться на початковому етапі публічної бета-версії. Можливі зміни API перед стабільним релізом v1.0
, які можна відстежувати в журналі змін проекту. Додаткову інформацію про цей пакет, повні інструкції з встановлення та вихідний код можна знайти на GitHub за адресою laravel/wayfinder.