Получение категорий
method: GET
Authorization: No Auth
URL: http://domaine:port/api/v1/categories/
Status: 200 OK
Response:
{
"count": 1,
"next": "http://domaine:port/api/v1/categories/?page={int}",
"previous": "http://domaine:port/api/v1/categories/?page={int}",
"results": [
{
"title": "str",
"slug": "str",
"image": "http://domaine:port/media/images/{str}.png",
"subcategories": [
{
"title": "str",
"slug": "str",
"image": "http://domaine:port/media/images/{str}.png"
}
]
}
]
}
Получение продуктов
method: GET
Authorization: No Auth
URL: http://domaine:port/api/v1/products/
Status: 200 OK
Response:
{
"count": 1,
"next": "http://domaine:port/api/v1/products/?page={int}",
"previous": "http://domaine:port/api/v1/products/?page={int}",
"results": [
{
"title": "str",
"slug": "str",
"image": [
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png"
],
"price": 1,
"category": "str",
"subcategory": "str"
}
]
}
Регистрация пользователя
method: POST
Authorization: No Auth
URL: http://domaine:port/api/v1/auth/users/
Status: 201 Created
Request:
{
"username": "str",
"password": "str"
}
Response:
{
"email": "str",
"username": "str",
"id": 1
}
Получение токена
method: POST
Authorization: No Auth
URL: http://domaine:port/api/v1/auth/jwt/create/
Status: 200 OK
Request:
{
"username": "str",
"password": "str"
}
Response:
{
"refresh": "str",
"access": "str"
}
Добавление/изменение/удаление товара из корзины
method: POST
Authorization: Bearer Token
URL: http://domaine:port/api/v1/basket/
Status: 201 Create
Request:
{
"product": "str",
"count": 1
}
Response:
{
"product": {
"title": "str",
"slug": "str",
"image": [
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png"
],
"price": 1,
"category": "str",
"subcategory": "str"
},
"count": 1,
"total_price_product": 1
}
method: PUT, PATCH
Authorization: Bearer Token
URL: http://domaine:port/api/v1/basket/
Status: 200 OK
Request:
{
"product": "str",
"count": 1
}
Response:
{
"product": {
"title": "str",
"slug": "str",
"image": [
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png"
],
"price": 1,
"category": "str",
"subcategory": "str"
},
"count": 1,
"total_price_product": 1
}
method: DELETE
Authorization: Bearer Token
URL: http://domaine:port/api/v1/basket/
Status: 204 No Content
Request:
{
"product": "str",
"count": 1
}
Получение информации по корзине
method: GET
Authorization: Bearer Token
URL: http://domaine:port/api/v1/basket/info/
Status: 200 OK
Response:
{
"products": [
{
"product": {
"title": "str",
"slug": "str",
"image": [
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png",
"http://domaine:port/media/images/{str}.png"
],
"price": 1,
"category": "str",
"subcategory": "str"
},
"count": 1,
"total_price_product": 1
}
],
"total_count": 1011,
"total_price_products": 6066
}
Очистка корзины
method: DELETE
Authorization: Bearer Token
URL: http://domaine:port/api/v1/basket/clean/
Status: 204 No Content
Через Docker
- 1. Создать и заполнить файл
.env
в папкеinfra
по шаблону.env.example
. -
2. Если имеется утилита
Make
, в корне проекта выполнить командуmake project-init
,иначе
выполнить команду
docker compose -f ./infra/docker-compose.yml --env-file ./infra/.env up -d
.Docker
соберёт контейнеры сpostgreSQL
, приложением, выполнит миграцию,заполнит БД тестовыми категориями, подкатегориями и продуктами, создаст superuser-a.
После сервер будет доступен по адрессу:
http://127.0.0.1:8000/
. -
Примечание
3. В контейнер с приложением проброшен
volume
с кодом, изменение кода в проекте обновляет его в контейнере и перезапускает сервер. -
4. Последующие запуски проекта осуществляются через команду
make project-start
или
docker compose -f ./infra/docker-compose-start.yml --env-file ./infra/.env up -d
Через консоль
- 1. Создать и заполнить файл
.env
в папкеinfra
по шаблону.env.example
. -
2. Создать БД в
postgreSQL
. -
3. Перейти в корень проекта и создать виртуальное окружение
python -m venv venv
. -
4. Активировать виртуальное окружение
source venv/Scripts/activate
. -
5. Установить зависимости
pip install -r requirements.txt
. -
6. Выполнить миграцию БД
python src/manage.py migrate
. -
7. Создать superuser-a
python src/manage.py createsuperuser --noinput
. -
8. Заполнить БД тестовыми данными(категории, подкатегории, продукты)
python src/manage.py test_data
. -
9. Запустить сервер
python src/manage.py runserver
. -
10. Сервер будет доступен по адрессу:
http://127.0.0.1:8000/
.