Skip to content

Python Developer. Спринт 14-15. Docker: приложение в коробке

Notifications You must be signed in to change notification settings

hikjik/infra_sp2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YaMDb REST API

Описание

Проект реализует REST API для сервиса YaMDb — базы отзывов о различных произведениях (фильмах, книгах, музыке и др.). API предоставляет следующие возможности:

Для неавторизованных пользователей

  • Самостоятельная регистрация с отправкой кода подтверждения на e-mail;
  • Получение JWT токена для авторизации;
  • Получение информации о произведениях, отзывах к ним, просмотр комментариев.

Для авторизованных пользователей

  • Получение и изменение данных своей учетной записи;
  • Добавление, редактирование и удаление своих отзывов на произведения;
  • Добавление, редактирование и удаление своих комментариев к отзывам.

Для модераторов

  • Редактирование и удаление отзывов и комментариев других пользователей.

Для администраторов

  • Добавление и удаление категорий и жанров произведений;
  • Добавление, изменение и удаление информации о произведениях;
  • Регистрация новых пользователей;
  • Просмотр и изменение информации о зарегистрированных пользователях;
  • Удаление пользователей.

Как запустить проект:

  1. Установить docker и docker-compose согласно инструкции.

  2. Клонировать репозиторий и перейти в директорию развёртывания инфраструктуры:

git clone git@github.com:hikjik/api_yamdb.git
cd api_yamdb/infra
  1. Создать файл .env с переменными окружения для работы с базой данных по следующему образцу:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
  1. Запустить контейнеры:
docker-compose up -d
  1. Выполнить миграции, создать суперпользователя и собрать статику с помощью следующих команд:
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py collectstatic --no-input
  1. (Опционально) Загрузить резервную копию базы данных:
docker-compose run web python manage.py loaddata fixtures.json

Документация

После запуска проекта документация доступна по ссылке.

Примеры запросов к API

  1. Самостоятельная регистрация с отправкой кода подтверждения на e-mail
POST /api/v1/auth/signup/

Тело запроса:

{
    "username": "martin",
    "email": "martin@mail.ru"
}

Пример ответа:

{
    "username": "martin",
    "email": "martin@mail.ru"
}
  1. Получение JWT токена
POST /api/v1/auth/signup/

Тело запроса:

{
    "username": "martin",
    "confirmation_code": "62v-e034fd8e1432fb4c2701"
}

Пример ответа:

{
    "token": "string"
}
  1. Получение списка произведений
GET /api/v1/titles?year=1971&category=music&genre=rock&name=deep

Пример ответа:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 30,
            "name": "Deep Purple — Smoke on the Water",
            "year": 1971,
            "rating": 10,
            "description": "",
            "genre": [
                {
                    "name": "Рок",
                    "slug": "rock"
                }
            ],
            "category": {
                "name": "Музыка",
                "slug": "music"
            }
        }
    ]
}

About

Python Developer. Спринт 14-15. Docker: приложение в коробке

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published