Skip to content

nonwander/api_yamdb-1

 
 

Repository files navigation

API YaMDb (Django Rest Framework)

Проект 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/


Установка.

Cистемные требования и технологии:

python==3.8.6
Django==3.0.5
djangorestframework==3.11.0
djangorestframework-simplejwt==4.6.0
PyJWT==2.1.0

Порядок установки:

  1. Клонировать репозиторий
  2. Установить зависимости из requirements.txt
  3. Запустить проект
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 начинаются с «/api/v1/»

  1. Получение 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»
    ]
}
  1. Отправление confirmation_code на переданный email:
    POST-запрос: auth/email/
{
    «email»: «string»
}


Авторы проекта:

Немыкин Евгений — приложение «api_users_auth»;
Тимофей Тарасов — приложение «api»;
Никита Максимов — приложение «titles».

About

YaMDb - API-service of a blog platform

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • HTML 0.5%