Що таке Laravel?
Laravel — це безкоштовний і відкритий фреймворк для PHP, спеціально розроблений для створення веб-додатків.
Основні можливості: Він має набір вбудованих функціональностей, таких як маршрутизація, валідація, кешування, черги та зберігання файлів.
У цьому пості розглянемо маршрутизацію.
Що таке маршрути?
Маршрути в Laravel з'єднують URL-адреси з конкретними діями або контролерами, дозволяючи додатку ефективно обробляти різні запити. Вони підтримують HTTP-методи, такі як GET, POST і DELETE, а також можуть включати динамічні параметри для гнучкої обробки URL-адрес.
Маршрути визначаються в таких файлах, як web.php
для веб-сторінок та api.php
для API-запитів, забезпечуючи чистий і підтримуваний код.
Основні компоненти маршруту
- Шлях URL: Частина URL, яка активує маршрут.
- HTTP-метод: HTTP-дієслово (наприклад, GET, POST), яке пов'язане з маршрутом.
- Логіка/Обробник: Функція або контролер, що обробляє запит.
Основні відмінності між веб-маршрутами та API-маршрутами
Дослідження веб-маршрутів
Веб-маршрути визначаються в файлі routes/web.php
. Ці маршрути призначені для взаємодії через браузер.
Ось приклади базових веб-маршрутів
Базовий GET маршрут
Route::get('/medium', function () {
return view('medium');
});
Маршрут чекає на GET
запит до /medium
, що повертає вигляд medium
.
Маршрут з контролером
Route::get('/medium', [MediumController::class, 'index']);
Маршрут чекає на GET
запит до /medium
і викликає метод index
контролера MediumController
.
Базовий POST маршрут
Route::post('/submit', [FormController::class, 'submit']);
Маршрут чекає на POST запит до /submit
і викликає метод submit
контролера FormController
.
Маршрут з параметрами
Route::get('/user/{id}', function ($id) {
return 'User ID: ' . $id;
});
Маршрут чекає на GET запит до /user/{id}
і повертає ідентифікатор користувача, переданий в URL.
Основні можливості веб-маршрутів
- Автоматично застосовує групу проміжного ПЗ
web
, яка включає обробку сесій, захист від CSRF та управління файлами cookie. - Ідеальні для додатків з формами, динамічними HTML-сторінками та аутентифікацією користувачів, що базується на сесіях.
Дослідження API маршрутів
API маршрути визначаються в файлі routes/api.php
. Ці маршрути призначені для обробки RESTful API кінцевих точок.
Ось приклади базових API маршрутів
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Основні можливості API маршрутів
- Використовує групу проміжного ПЗ
api
, що робить маршрути безстанними і включає функції, як обмеження швидкості. - Не підтримує сесії або файли cookie, що забезпечує безстанну комунікацію.
- Переважно повертає відповіді у форматі JSON, дотримуючись стандартів API.
Проміжне ПЗ: Основні відмінності між веб і API маршрутами в Laravel
Проміжне ПЗ є ключовою різницею між веб і API маршрутами в Laravel, оскільки воно впливає на їх поведінку наступним чином:
Група веб-проміжного ПЗ
- Обробляє сесії та захист від CSRF.
- Керує файлами cookie та аутентифікацією.
Приклад використання проміжного ПЗ ['web']
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('web');
Група API-проміжного ПЗ
- Дозволяє безстанну комунікацію для кращої продуктивності.
- Використовує обмеження швидкості для підвищення безпеки та запобігання зловживанням.
Приклад використання проміжного ПЗ ['api']
Route::get('/users', [UserController::class, 'index'])->middleware('api');
Коли використовувати веб-маршрути або API-маршрути
API Routes**
Використовуйте веб-маршрути, коли:
- Ваш додаток повертає Blade вигляди або HTML відповіді.
- Потрібна аутентифікація на основі сесій.
- Користувачі взаємодіють з формами, для яких необхідний захист від CSRF.
Використовуйте API маршрути, коли:
- Ви розробляєте RESTful API або бекенд-сервіс.
- Кінцеві точки споживаються мобільними додатками, фронтенд фреймворками або сторонніми системами.
- JSON відповіді є основним форматом виводу.
Висновок
У Laravel веб-маршрути та API маршрути обробляють запити різними способами. Веб-маршрути призначені для традиційних веб-додатків з повними інтерфейсами користувача. API маршрути використовуються для легких, безстанних взаємодій в сучасних додатках. Розуміння цих відмінностей допомагає розробникам ефективно структурувати свої додатки.
Сподобалась стаття? Якщо у вас є питання або коментарі, буду радий почути вашу думку — дайте знати, чи була ця стаття корисною!
Не забудьте поставити лайк, поділитись і підписатися на нові цікаві технічні блоги та оновлення! 🙂
Перекладено з: Understanding the Difference Between Web and API Routes in Laravel