Учебный проект создания API для базы данных произведений с отзывами и комментариями. Позволяет делать запросы к ресурсам БД с любого устройства.
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/isBlueTip/yatube_yamdb.git
cd yatube_yamdb
Создать и активировать виртуальное окружение:
python3 -m venv env
source venv/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Выполнить миграции:
python3 yatube_yamdb/manage.py migrate
Запустить проект:
python3 yatube_yamdb/manage.py runserver
-
Аноним — может просматривать описания произведений, читать отзывы и комментарии.
-
Аутентифицированный пользователь (user) — может просматривать описания произведений, читать отзывы и комментарии. Может публиковать отзывы и ставить оценку произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы; может редактировать и удалять свои отзывы и комментарии. Эта роль присваивается по умолчанию каждому новому пользователю.
-
Модератор (moderator) — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
-
Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
-
Суперюзер Django — обладет правами администратора (admin).
- Эндпойнт http://127.0.0.1:8000/api/v1/auth/signup/
- POST - регистрация пользователя через username и email. На почту отправляется код подтверждения confirmation_code
- Эндпойнт http://127.0.0.1:8000/api/v1/auth/token/
- POST - получение JWT-токена в обмен на username и confirmation code
- Эндпойнт http://127.0.0.1:8000/api/v1/categories/
- GET - получить список всех категорий
- POST - добавление новой категории
- Эндпойнт http://127.0.0.1:8000/api/v1/categories/{slug}/
- DELETE - удаление категории
- Эндпойнт http://127.0.0.1:8000/api/v1/genres/
- GET - получение списка всех жанров
- POST - добавление нового жанра
- Эндпойнт http://127.0.0.1:8000/api/v1/genres/{slug}/
- DELETE - удаление жанра
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/
- GET - получение списка всех произведений
- POST - добавить новое произведение
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/{titles_id}/
- GET - получение информации о произведении
- PATCH - частичное обновление информации о произведении
- DELETE - удаление произведения
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/
- GET - получение списка всех отзывов
- POST - добавление нового отзыва (пользователь может оставить только один отзыв на произведение)
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/ - GET - получить отзыв по id для указанного произведения - PATCH - частичное обновление отзыва по id - DELETE - удаление отзыва по id
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/comments/
- GET - получение списка всех комментариев к отзыву
- POST - добавление комментария к отзыву
- Эндпойнт http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/comments/{comment_id}/
- GET - получение комментария для отзыва по id
- PATCH - частичное обновление комментария к отзыву id
- DELETE - удаление комментария по id
- Эндпойнт http://127.0.0.1:8000/api/v1/users/
- GET - получение списка всех пользователей
- POST - добавление нового пользователя
- Эндпойнт http://127.0.0.1:8000/api/v1/users/{username}/
- GET - получение пользователя по username
- PATCH - изменение данных пользователя по username
- DELETE - удаление пользователя по username
- Эндпойнт http://127.0.0.1:8000/api/v1/users/me/
- GET - получение данных своей учетной записи
- PATCH - изменение данных своей учетной записи
Руслан Смирнов
Семён Егоров
Юлия Васильева