Проект YaMDb представляет собой блог-платформу для сбора отзывов пользователей на ресурсы медиатеки, обращение к ресурсам выполняется посредством запросов к API проекта.
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
Проект создавался для практики создания сервиса API в команде, синхронизируясь через Git.
Проект YaMDb включает в себя основные приложения:
• .api — модели, view, эндпойнты для отзывов (Review) и комментариев (Comments), права доступа для запросов к ресурсам; определение средней оценки произведения;
• .api_users_auth — система регистрации и аутентификации, определение прав доступа, работа с токеном, система подтверждения по e-mail;
• .titles — модели, view и эндпойнты для категорий (Categories), жанров (Genres) и произведениий (Titles).
Для API проекта YaMDb доступны ресурсы:
• Ресурс AUTH: аутентификация.
• Ресурс USERS: пользователи.
• Ресурс TITLES: произведения, к которым пишут отзывы (определённый фильм, книга или песня).
• Ресурс CATEGORIES: категории (типы) произведений («Фильмы», «Книги», «Музыка»).
• Ресурс GENRES: жанры произведений; одно произведение может быть привязано к нескольким жанрам.
• Ресурс REVIEWS: отзывы на произведения; отзыв привязан к определённому произведению.
• Ресурс COMMENTS: комментарии к отзывам; комментарий привязан к определённому отзыву.
Полная документация API YaMDb хранится в Redoc, также будет доступна на локальной машине после запуска проекта по адресу: http://localhost:8000/redoc/
python==3.8.6
Django==3.0.5
djangorestframework==3.11.0
djangorestframework-simplejwt==4.6.0
PyJWT==2.1.0
- Клонировать репозиторий
- Установить зависимости из requirements.txt
- Запустить проект
git clone https://github.com/nonwander/api_yamdb-1
pip install -r requirements.txt
python manage.py runserver
В завершении установки, перед тем, как развернуть проект, необходио создать профиль администратора сети YaMDb:
python manage.py createsuperuser
Проект не имеет части Frontend.
Проект запускается сервере разработчика Django на «внутреннем» IP-адресе 127.0.0.1 на порте 8000.
Проект хранит данные в предустановленной базе SQLite.
В проекте не предусмотрено использование переменных окружения.
В перспективе вынести из .api_yamdb/settings.py переменную ADMIN_EMAIL, на данный момент являющейся системной константой.
Запросы к API начинаются с «/api/v1/»
- Получение JWT-токена в обмен на email и confirmation_code:
(content type: aplication/json)
POST-запрос: auth/token/
Request sample:
{
«email»: «string»,
«conformation_code»: «string»
}
Response sample (200):
{
«token»: «string»
}
Response sample (400):
{
«field_name»: [
«string»
]
}
- Отправление confirmation_code на переданный email:
POST-запрос: auth/email/
{
«email»: «string»
}
Немыкин Евгений — приложение «api_users_auth»;
Тимофей Тарасов — приложение «api»;
Никита Максимов — приложение «titles».