Демонстрационное REST API с тремя основными сущностями: пользователи (Users), категории (Categories) и посты (Posts).
Все маршруты защищены аутентификацией через Sanctum (Bearer Token).
Все запросы требуют передавать токен в заголовке Authorization. Токен настроен на уровне коллекции в Postman и автоматически применяется ко всем запросам. Токен можно получить через авторизацию.
Формат данных — JSON.
Все даты в формате YYYY-MM-DD HH:mm:ss.
Ответы содержат поля:
success— статус выполнения запроса (true/false)message— информационное сообщениеdata— полезные данные (объект или массив)
Основные маршруты:
GET /api/v1/posts— получить список постов с пагинацией (3 на страницу)POST /api/v1/posts— создать пост от имени текущего пользователяGET /api/v1/posts/{id}— получить пост по IDPUT /api/v1/posts/{id}— обновить пост (только автор может)DELETE /api/v1/posts/{id}— удалить пост (только автор может)
Особенности:
- При создании поста поле
user_idподставляется автоматически из текущего пользователя. - Для обновления и удаления проверяется, что автор запроса — владелец поста.
- Поля
title,contentиcategory_idобязательны при создании и обновлении. category_idдолжен существовать в таблице категорий.
Основные маршруты:
POST /api/v1/register— регистрация пользователяPOST /api/v1/login— вход (возвращает токен)POST /api/v1/logout— выход (требует токен)
Особенности:
- При успешной регистрации возвращается объект пользователя без пароля.
- При входе возвращается токен в формате Bearer, который нужно использовать для дальнейших запросов.
Основные маршруты:
GET /api/v1/categories— получить список категорий с пагинацией (3 на страницу)POST /api/v1/categories— создать новую категориюGET /api/v1/categories/{id}— получить категорию по IDPUT /api/v1/categories/{id}— обновить категориюDELETE /api/v1/categories/{id}— удалить категорию (если нет связанных постов)
Особенности:
- Уникальное поле
titleобязательно при создании и обновлении. - При попытке удалить категорию с постами возвращается ошибка
409 Conflict. - Все операции доступны аутентифицированным пользователям.