Skip to content

Latest commit

 

History

History
116 lines (82 loc) · 5.8 KB

File metadata and controls

116 lines (82 loc) · 5.8 KB

Laravel API Basic Shop

Содержание

Структура проекта

Простой API магазина на Laravel, запущенный в Docker контейнерах. Проект разделен на 3 основные части

  • collection- коллекция запросов для Postman;
  • deploy - конфигурация Docker для контейнеризации;
  • project - Laravel-приложение.

API представляет собой обычный интернет магазин, в котором можно зарегистрироваться как клиент, добавить товары в корзину и оформить заказ.

Администратор может добавить товары, изменять их и удалить их.

Используемые контейнеры:

  • php:8.4.12-fpm;
  • nginx;
  • PostgreSQL;
  • PGAdmin;
  • redis.

Запуск с Docker

Установите Docker на свою систему и убедитесь в его работоспособности.

  • Скопируйте файлы из deploy в project
  • Создайте файл .env и скопируйте содержимое из .env.example (.env редактирование)
  • В терминале в папке project пропишите:
    • docker-compose up -d, чтобы создать контейнер и запустить его;
    • Docker exec laravel-container cp .env.example .env;
    • Docker exec laravel-container composer install;
    • Docker exec laravel-container php artisan key:generate;
    • Docker exec laravel-container php artisan migrate; После выполнения этих команд, вы можете перейти на http://localhost, чтобы убедиться, что все заработало. Вы увидите стартовую страницу Laravel.

По умолчанию используется PostgreSQL в контейнере.

Работа с API

Для работы с API вы должны отправлять запросы в виде JSON. Для этого используются такие приложения, как Postman и Bruno.

Чтобы автоматическая запись токена пользователя работала, создайте окружение (или дополните) с переменной TOKEN и используйте это окружение.

Коллекция запросов Postman вы можете найти в папке collection.

Для Bruno импортируйте, однако для автоматизации добавления значения токена придется самостоятельно его добавлять в окружение и убрать все скрипты в запросах

Наполнение базовыми данными в базу данных

  • Пользователи: php artisan db:seed --class=UserSeeder

    • Клиент
      • 'fio': 'Test Client'
      • 'email': 'user@shop.ru'
      • 'password': 'password'
    • Администратор
      • 'fio': 'Test Admin'
      • 'email': 'admin@shop.ru'
      • 'password': 'password'
  • Товары: php artisan db:seed --class=ProductSeeder

Создание администратора

Создайте нового пользователя с помощью json запроса, и вы должны получить id пользователя. Пропишите в терминале:

Docker exec laravel-container php artisan app:adminstatus {id пользователя}, {0 - клиент, 1 - администратор}

Postman коллекция запросов

Существует 3 роли: гость, клиент, администратор

Дальше написаны возможности для каждой роли, а также запрос из postman коллекции (в папке collection) в виде названия этого запроса

  • Гость может:

    • просматривать товары product_get_all

    • увидеть конкретный товар product_show

    • зарегистрироваться sign_up

    • войти в существующий аккаунт login

  • Клиент может:

    • то же самое, что и гость (вероятно, регистрироваться заново не нужно будет, но это возможно)

    • выйти из аккаунта logout

    • изменить профиль update_profile

    • добавить товары в корзину cart_add_product

    • увидеть, что в корзине cart_get

    • удалить товар из корзины cart_delete

    • оформить заказ (корзина будет очищена) create_order

    • увидеть историю заказов get_orders

  • Администратор может:

    • то же самое, что и клиент

    • добавить товар product_add
    • изменить товар product_update
    • удалить товар product_delete