Skip to content

tsoyvit/rest-api-laravel

Repository files navigation

REST API Demo: CRUD

Ссылка на коллекцию Postman

Демонстрационное REST API с тремя основными сущностями: пользователи (Users), категории (Categories) и посты (Posts).

Все маршруты защищены аутентификацией через Sanctum (Bearer Token).
Все запросы требуют передавать токен в заголовке Authorization. Токен настроен на уровне коллекции в Postman и автоматически применяется ко всем запросам. Токен можно получить через авторизацию.

Формат данных — JSON.
Все даты в формате YYYY-MM-DD HH:mm:ss.

Ответы содержат поля:

  • success — статус выполнения запроса (true/false)
  • message — информационное сообщение
  • data — полезные данные (объект или массив)

Posts

Основные маршруты:

  • GET /api/v1/posts — получить список постов с пагинацией (3 на страницу)
  • POST /api/v1/posts — создать пост от имени текущего пользователя
  • GET /api/v1/posts/{id} — получить пост по ID
  • PUT /api/v1/posts/{id} — обновить пост (только автор может)
  • DELETE /api/v1/posts/{id} — удалить пост (только автор может)

Особенности:

  • При создании поста поле user_id подставляется автоматически из текущего пользователя.
  • Для обновления и удаления проверяется, что автор запроса — владелец поста.
  • Поля title, content и category_id обязательны при создании и обновлении.
  • category_id должен существовать в таблице категорий.

Users

Основные маршруты:

  • POST /api/v1/register — регистрация пользователя
  • POST /api/v1/login — вход (возвращает токен)
  • POST /api/v1/logout — выход (требует токен)

Особенности:

  • При успешной регистрации возвращается объект пользователя без пароля.
  • При входе возвращается токен в формате Bearer, который нужно использовать для дальнейших запросов.

Categories

Основные маршруты:

  • GET /api/v1/categories — получить список категорий с пагинацией (3 на страницу)
  • POST /api/v1/categories — создать новую категорию
  • GET /api/v1/categories/{id} — получить категорию по ID
  • PUT /api/v1/categories/{id} — обновить категорию
  • DELETE /api/v1/categories/{id} — удалить категорию (если нет связанных постов)

Особенности:

  • Уникальное поле title обязательно при создании и обновлении.
  • При попытке удалить категорию с постами возвращается ошибка 409 Conflict.
  • Все операции доступны аутентифицированным пользователям.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages