0Pricing
PHP Academy · Урок

Маршруты API и ресурсные контроллеры

Регистрируйте RESTful-маршруты и создавайте ресурсные контроллеры с помощью Artisan

«Маршруты API и ресурсные контроллеры» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Маршруты API в Laravel

Определяйте маршруты API в routes/api.php. К этим маршрутам автоматически добавляется префикс /api, и они используют группу промежуточного ПО api (без сохранения состояния — без сеансов и файлов cookie).

Базовый маршрут API

Возвращайте JSON из замыкания.

<?php
Route::get("/users/{id}", function (int $id) {
    $user = User::findOrFail($id);
    return response()->json($user);
});

Маршруты ресурсов API

Route::apiResource() регистрирует 5 маршрутов RESTful (пропуская create и edit, которые отображают формы).

<?php
// routes/api.php
use App\Http\Controllers\Api\UserController;

Route::apiResource("users", UserController::class);
// GET /api/users           → index
// POST /api/users          → store
// GET /api/users/{user}    → show
// PUT /api/users/{user}    → update
// DELETE /api/users/{user} → destroy

Создание контроллера API

Используйте флаг --api, чтобы создать контроллер без методов create и edit.

$ php artisan make:controller Api/UserController --api --model=User

Пример контроллера API

Контроллер API возвращает ответы в формате JSON.

<?php
namespace App\Http\Controllers\Api;

class UserController extends Controller
{
    public function index(): JsonResponse
    {
        return response()->json(User::paginate(15));
    }

    public function show(User $user): JsonResponse
    {
        return response()->json($user);
    }

    public function store(StoreUserRequest $request): JsonResponse
    {
        $user = User::create($request->validated());
        return response()->json($user, 201);
    }

    public function destroy(User $user): JsonResponse
    {
        $user->delete();
        return response()->json(null, 204);
    }
}

Коды состояния HTTP

Возвращайте подходящие коды состояния: 200 (OK), 201 (создано), 204 (нет содержимого), 400 (неверный запрос), 401 (не авторизовано), 403 (доступ запрещен), 404 (не найдено), 422 (сущность не поддается обработке).

Проверка FormRequest

Используйте FormRequest для создания понятных и повторно используемых правил проверки.

$ php artisan make:request StoreUserRequest

Пример StoreUserRequest

Определяйте правила и авторизацию в классе запроса.

<?php
class StoreUserRequest extends FormRequest
{
    public function authorize(): bool { return true; }
    public function rules(): array {
        return [
            "name"  => "required|string|max:255",
            "email" => "required|email|unique:users",
        ];
    }
}

Группировка маршрутов API

Группируйте маршруты API с помощью префикса и пространства имен.

<?php
Route::prefix("v1")->middleware("auth:sanctum")->group(function () {
    Route::apiResource("posts", PostController::class);
    Route::apiResource("users", UserController::class);
});

except() и only()

Исключайте определенные маршруты из регистрации ресурса или ограничивайте ее только ими.

<?php
Route::apiResource("users", UserController::class)->only(["index", "show"]);
Route::apiResource("posts", PostController::class)->except(["destroy"]);

Вложенные ресурсы

Регистрируйте вложенные маршруты ресурсов для связанных моделей.

<?php
Route::apiResource("users.posts", UserPostController::class);
// GET /api/users/{user}/posts/{post}

Итоги

Используйте Route::apiResource() для RESTful-маршрутов API в routes/api.php. Создавайте контроллеры с помощью --api. Возвращайте JSON с правильными кодами состояния HTTP. Выполняйте проверку с помощью FormRequest.

Быстрая проверка

Сколько маршрутов регистрирует apiResource()?

Часто задаваемые вопросы

Урок «Маршруты API и ресурсные контроллеры» бесплатный?

Да — полный текст урока «Маршруты API и ресурсные контроллеры» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Маршруты API и ресурсные контроллеры»?

Регистрируйте RESTful-маршруты и создавайте ресурсные контроллеры с помощью Artisan Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Маршруты API и ресурсные контроллеры»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Маршруты API и ресурсные контроллеры
  2. Ресурсы API и ответы JSON
  3. Аутентификация с Laravel Sanctum
  4. Ограничение частоты запросов и версионирование API
← Назад к PHP Academy