REST API на PHP — это как пытаться собрать IKEA без инструкции: вроде понятно, что к чему, но без багов и WTF-моментов не обойдёшься. Slim — минималистичный фреймворк, который почти не мешает, зато почти всё приходится руками. Но для маленьких проектов или быстрого прототипа — норм.
Шаг 1: Установка Slim
Composer должен быть на месте, иначе дальше не идём. Новый проект создаём так:
composer create-project slim/slim-skeleton my-api
В директории my-api будет всё, что нужно для старта. Не ждите магии, Slim не создаёт за вас базу и роуты — только скелет.
Шаг 2: Маршруты
В public/index.php добавляем простой маршрут:
get('/users', function ($request, $response, $args) {
$users = [
['id' => 1, 'name' => 'John Doe'],
['id' => 2, 'name' => 'Jane Doe'],
];
$response->getBody()->write(json_encode($users));
return $response->withHeader('Content-Type', 'application/json');
});
$app->run();
Проверяем:
php -S localhost:8000 -t public public/index.php и открываем http://localhost:8000/users.
JSON появился — отлично, сервер живой.
Шаг 3: POST и создание пользователей
Хочешь добавлять пользователей? Простейший вариант:
$app->post('/users', function ($request, $response, $args) {
$data = $request->getParsedBody();
$user = [
'id' => 3,
'name' => $data['name'] ?? 'Unknown',
];
$response->getBody()->write(json_encode($user));
return $response->withHeader('Content-Type', 'application/json');
});
Главный лайфхак: проверяй, что приходит в $request->getParsedBody(). Без этого API упадёт на пустых данных.
Шаг 4: Обработка ошибок
Без ошибок REST API — это лотерея. Добавляем стандартный middleware:
$app->addErrorMiddleware(true, true, true);
Теперь Slim будет выдавать JSON с ошибкой вместо того, чтобы тихо падать.
Шаг 5: Документация
Swagger, Postman или даже простой README помогут понять, кто что ждёт от твоего API. Поверь, без документации коллеги будут орать «что за чёрт?» на проде.
Заключение
Slim позволяет делать REST API на PHP быстро, но без контроля и проверки данных всё превратится в хаос. Простые маршруты, POST/GET и нормальная обработка ошибок — вот твой минимальный набор выживания. Всё остальное — костыли и баги.
0 комментариев