В этом бэкэнд-сервере присутствуют эндпонты /categories, /subcategories и /products, с помощью которых можно добавлять, редактировать, удалять и отображать категории, подкатегории и товары с возможностью пагинации.
1.Клонируем репозиторий с сайта GitHub и заходим в директорию с проектом:
git clone [email protected]:NoRIS95/Task2_for_Saraphan.git
cd Task2_for_Saraphan
2.Создаём виртуальное окружение (в нашем случае оно будет называться env) и активируем его:
python3 -m venv env
source ./env/bin/activate
- Устанавливаем зависимости из текстового файла requirements.txt
pip install -r requirements.txt
4.Создаём репозиторий миграции:
flask db init
- Создадим сценарий миграции:
flask db migrate
- Применяем изменения в базе данных:
flask db upgrade
- Заходим в директорию app и создаем папку static:
cd app
mkdir static
- Заходим в папку static, создаём там директории category_photo, subcategory_photo и product_photo и возвращаемся обратно на 2 директории вверх:
cd static
mkdir category_photo
mkdir subcategory_photo
mkdir product_photo
cd ../../
- Задаём путь основного приложения Flask:
export FLASK_APP=main.py
export ADMIN_TOKEN=<....>
- Запускаем наш сервер:
flask run
Примеры запросов для проверки работы манипуляций с категориями, подкатегориями и продуктами лежат в директории tests/.
{"Admin_token": <ADMIN_TOKEN>}
GET /categories
Параметры:
- page - параметр пагинации
- per_page - параметр пагинации
POST /categories
Параметры:
- name - название категории
- slug_name - slug-имя категории
- files
PUT /categories
Параметры:
- id - id категории
- name - новое название категории
- slug_name - новое slug-имя категории
- files
DELETE /categories
Параметры:
- category_id - id категории
GET /subcategories
Параметры:
- page - параметр пагинации
- per_page - параметр пагинации
POST /subcategories
Параметры:
- category_id - id категории
- name - название подкатег ории
- slug_name - slug-имя подкатегории
- files
PUT /subcategories
Параметры:
- category_id - id категории
- id - id подкатегории
- name - новое название подкатегории
- slug_name - новое slug-имя подкатегории
- files
DELETE /subcategories
Параметры:
- id - id подкатегории
GET /products
Параметры:
- page - параметр пагинации
- per_page - параметр пагинации
POST /products
Параметры:
- subcategory_id - id подкатегории
- name - название товара
- slug_name - slug-имя товара
- files
PUT /products
Параметры:
- subcategory_id - id подкатегории
- id - id товара
- name - новое название товара
- slug_name - новое slug-имя товара
- files
DELETE /subcategories
Параметры:
- id - id товара