Тестовое задание

  • Используя фреймворк Laravel реализовать RESTful api.
  • Реализовать сущности
    • Товары
    • Категории
    • Товар-Категория
  • Реализовать выдачу данных в формате json по RESTful
    • Создание Товаров (у каждого товара может быть от 2-х до 10 категорий)
    • Редактирование Товаров
    • Удаление товаров (товар помечается как удаленный)
    • Создание категорий
    • Удаление категорий (вернуть ошибку если категория прикреплена к товару)
  • Получение списка товаров
    • Имя / по совпадению с именем
    • id категории
    • Название категории / по совпадению с категорией
    • Цена: от - до
    • Опубликованные: да / нет
    • Не удаленные

Особенности реализации

Сущность "Товар-Категория" реализована только на уровне БД, модель для нее не требуется.

Фильтрация в списке товаров задается в параметре filter

Фильтрация по неудаленным товарам заменена на фильтрацию "включая удаленные", что показалось чуть более логичным

Документация в формате OpenApi в папке docs, там же json-конфигурация для Postman'а

Docker

  • Запуск: docker-compose up -d
  • Консоль: docker-compose exec testapp-backend bash
  • Базовый урл (при внесении соответствующей записи в hosts-файл): http://api.testapp.local