Метод apiResource
Метод apiResource применяется к экземпляру класса Route
и регистрирует набор маршрутов для RESTful API-контроллера.
Первым параметром передаётся имя ресурса (строка), вторым -
имя класса контроллера. В отличие от resource, этот метод
не регистрирует маршруты для представлений (create и edit),
так как API обычно не требует форм для создания и редактирования.
Метод автоматически создаёт маршруты для методов index, show,
store, update и destroy.
Синтаксис
<?php
Route::apiResource($resource, $controller);
?>
Пример
Давайте зарегистрируем API-ресурс для статей в файле маршрутов:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::apiResource('articles', ArticleController::class);
?>
В результате будут созданы следующие маршруты:
GET /api/articles - index
GET /api/articles/{article} - show
POST /api/articles - store
PUT /api/articles/{article} - update
PATCH /api/articles/{article} - update
DELETE /api/articles/{article} - destroy
Пример
Давайте зарегистрируем API-ресурс с указанием только определённых
действий с помощью метода apiResource в комбинации с
методом only:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::apiResource('articles', ArticleController::class)->only([
'index',
'show',
'store'
]);
?>
Теперь будут доступны только маршруты для получения списка, просмотра одной записи и создания:
GET /api/articles - index
GET /api/articles/{article} - show
POST /api/articles - store
Пример
Используем метод apiResource с указанием исключённых
действий через метод except:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::apiResource('articles', ArticleController::class)->except([
'destroy',
'update'
]);
?>
В этом случае будут созданы все маршруты, кроме удаления и обновления:
GET /api/articles - index
GET /api/articles/{article} - show
POST /api/articles - store
Смотрите также
-
метод
resource,
который регистрирует полный набор маршрутов для ресурса с представлениями -
метод
group,
который объединяет маршруты в группы с общими атрибутами -
метод
prefix,
который добавляет префикс к URI всех маршрутов в группе -
метод
middleware,
который назначает посредников для маршрутов