Foodgram, «Продуктовый помощник». Онлайн-сервис и API для него. На этом сервисе пользователи могут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.
Проект доступен по адресу gregfedy.sytes.net
Документация к API доступна по адресу gregfedy.sytes.net/api/docs/
Админ-зона доступна по адресу gregfedy.sytes.net/admin/
- Получение JWT-токена в обмен на password и email
- Удаление JWT-токена текущего пользователя
- Регистрация пользователя
- Изменение пароля текущего пользователя
- Получение списка пользователей
- Получение профиля пользователя по id
- Получение профиля текущего пользователя
- Получение списка всех тегов
- Получение тега по id
- Получение списка всех рецептов
- Создание рецепта
- Получение рецепта по id
- Изменение рецепта по id
- Удаление рецепта по id
- Скачивание файла со списком покупок
- Добавление рецепта в список покупок по id
- Удаление рецепта из списка покупок по id
- Добавление рецепта в избранное по id
- Удаление рецепта из избранного по id
- Получение списка подписок текущего пользователя
- Подписка на пользователя по id
- Отписка от пользователя по id
- Получение списка всех ингредиентов
- Получение ингредиента по id
- Необходимо отправить POST-запрос на добавление нового пользователя
с параметрами email, username, first_name, last_name,
password на эндпоинт
/api/users/
. - Дальше необходимо отправить POST-запрос с параметрами password
и email на эндпоинт
/api/auth/token/login/
, в ответе на запрос придёт token (JWT-токен). - При желании можно отправить POST-запрос на эндпоинт
/api/auth/token/logout/
для удаления JWT-токена.
Cкачать Docker Desktop для Mac или Windows. Docker Compose будет установлен автоматически. В Linux следует убедиться, что установлена последняя версия Compose. Официальная инструкция по установке Docker.
Пример:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
SECRET_KEY=...
DEBUG=False
ALLOWED_HOSTS=127.0.0.1
Для запуска необходимо выполнить из директории /infra команду:
docker-compose up -d
Применяем миграции:
docker-compose exec backend python manage.py migrate
Создание суперпользователя:
docker-compose exec backend python manage.py createsuperuser
Выполните команду:
docker-compose exec backend python manage.py collectstatic --no-input
Для заполнения базы тестовыми данными вы можете использовать файл ingredients.csv, который находится в директории /data. Выполните команду:
docker-compose exec backend python manage.py load_csv data/
Остановить работу всех контейнеров можно командой:
docker-compose down
Для пересборки и запуска контейнеров воспользуйтесь командой:
docker-compose up -d --build
Мониторинг запущенных контейнеров:
docker stats
Останавливаем и удаляем контейнеры, сети, тома и образы:
docker-compose down -v
Команда покажет, сколько места на диске занимают образы, контейнеры, тома и билд-кеш. Будет и информация о том, сколько места можно освободить, удалив ненужное:
docker system df
Все неактивные (остановленные) контейнеры удаляются командой:
docker container prune
Можно удалить образы, какие использовались как промежуточные для сборки других образов, но на которые не ссылается ни один контейнер. Их называют dangling images (англ. «висячие образы»). Для выполнения такой задачи используется команда:
docker image prune
Удалить вообще всё, что не используется (неиспользуемые образы, остановленные контейнеры, тома, которые не использует ни один контейнер, билд-кеш), можно командой:
docker system prune