Skip to content

sqqqwer/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-YAMDB

API реализация проекта "YAMDB"

Содержание

1. Кратко о сервисе

Сервис предоставляет возможность авторизованным пользователям оставлять отзывы на произведения и комментировать отзывы других пользователей. Произведения создаются только администратором сервиса.

2. Полное описание

Представлено в виде ReDoc-а по адресу <домен>/redoc/ (если проект установлен локально, то адрес http://127.0.0.1:8000/redoc/)

3. Функционал

  • Реализована система регистрации и аутентификации пользователей
  • Произведения могут создавать только администраторы проекта
  • Авторизованные пользователи могут оставлять отзывы к произведениям
  • Авторизованные пользователи могут оставлять комментарии к отзывам

4. Стек технологий

  • Python 3.9
  • Django
  • Django REST FrameWork
  • Simple_JWT
  • pytest

5. Установка проекта

  • Клонируйте репозиторий
git clone git@github.com:sqqqwer/api_yamdb.git
  • Перейдите в проект
cd api_yamdb/
  • Cоздайте и активировируйте виртуальное окружение:
python -m venv venv

Если Linux:

. venv/bin/activate

Если Windows:

. venv/Scripts/activate
  • Обновите pip
python -m pip install --upgrade pip
  • Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
  • Выполните миграции:
python manage.py migrate
  • Запустите проект:
python manage.py runserver

6. Регистрация и авторизация пользователей

Регистрация

  • Вам необходимо перейти в <domen_name>/api/v1/auth/signup/
  • Отправьте POST-запрос в формате json
{
  "username": "create_your_username",
  "email": "enter_your_email_for_verification"
}

Авторизация

  • Перейдите в <domen_name>/api/v1/auth/token/
  • Отправьте POST-запрос в формате json
{
  "username": "entering_before_username",
  "conformation_code": "code_which_you_get_on_specified_email"
}
  • Вы получите токен авторизации для вашего пользователя

7. Импорт данных из .csv документов:

  1. Находясь в локальной директории api_yamdb/, создайте базу данных.
python manage.py migrate
  1. Запустите импортёр.
python manage.py load_from_csv '<project_dir>/api_yamdb/static/data'

8. Примеры запросов

Просмотр категорий без аутентификации

Запрос

GET http://127.0.0.1:8000/api/v1/categories/

Ответ

{
  "count": 3, 
  "next": null,
  "previous": null,
  "results": [
    {
      "name": "Фильм",
      "slug": "movie"
    },
    {
      "name": "Книга",
      "slug": "book"
    },
    {
      "name": "Музыка",
      "slug": "music"
    }
  ]
}

Попытка неавторизованного пользователя удалить пользователя

Запрос

DELETE http://127.0.0.1:8000/api/v1/users/regular_user/

Ответ

{
    "detail": "Authentication credentials were not provided."
}

9. Авторы

  • Борисов Василий
  • Чернявский Владислав
  • Ермаков Виталий

About

Group Project. Imdb-like Api (Django Rest)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages