Skip to content

REST API проекта сбора отзывов и оценок пользователей на произведения

Notifications You must be signed in to change notification settings

aaaaaaaalesha/yamdb_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Командный проект YaMDb

Python Django DjangoREST JWT SQLite

REST API проекта сбора отзывов и оценок пользователей на произведения.

Установка

Как развернуть наш проект у себя.

  1. Склонируйте репозиторий
$ git clone https://github.com/aaaaaaaalesha/api_yamdb.git
$ cd api_yamdb
  1. Создайте и активируйте виртуальное окружение
$ python3 -m venv venv
$ venv/bin/activate
  1. Установите зависимости
$ pip install -r requirements.txt
  1. Выполните миграции
$ cd api_yamdb
$ python3 manage.py makemigrations
$ python3 manage.py migrate
$ cd ..
  1. Запуск сервера
$ python3 .\api_yamdb\manage.py runserver
  1. Импортирование тестовых данных из CSV в базу данных
$ cd api_yamdb
$ python3 manage.py import_database [path, ...]

, где path - путь до директории с csv-файлами или до самих файлов по отдельности, параметр опциональный, по умолчанию файлы будут взяты из директории /api_yamdb/static/data.

Примеры

Некоторые примеры запросов к API. Более подробную информацию можно посмотреть после запуска проекта на странице Redoc, например: http://127.0.0.1:8000/redoc/

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

Получить код подтверждения на переданный email. Права доступа: Доступно без токена. Использовать имя 'me' в качестве username запрещено. Поля email и username должны быть уникальными.

[POST] /api/v1/auth/signup/

{
  "email": "bla2132143@yandex.ru",
  "username": "login123"
}
  • Status Code: 200
{
  "email": "bla2132143@yandex.ru",
  "username": "login123"
}

При этом пользователю приходит письмо следующего содержания:

From: yamdb@yandex.ru
To: bla2132143@yandex.ru
Date: Wed, 08 Feb 2023 17:48:42 -0000
Message-ID: <167587852265.2372.2942627407382418585@PC>

Привет, login123!
Нам пришёл запрос на регистрацию от Вас. Если это были не Вы, игнорируйте это письмо!
Ваш код подтверждения: OCMH5
Для окончания регистрации Вам необходимо выполнить запрос:
[POST] /auth/token/
{
  "username": "login123",
  "confirmation_code": "OCMH5"
}

2. Получение JWT-токена

Получение JWT-токена в обмен на username и confirmation code. Права доступа: Доступно без токена.

[POST] /api/v1/auth/token/

{
  "username": "login123",
  "confirmation_code": "OCMH5"
}
  • Status Code: 200
{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjc4Mjk4MDk4LCJpYXQiOjE2NzU4Nzg4OTgsImp0aSI6ImFhOWY1ZjZlMmE2MzQzMGE5MjhkMWI1Yjg0NTNmYWFhIiwidXNlcl9pZCI6MX0.ipOVw6wvRs57COYm8J0ozm-HzHrcX9Rqm6taxr74Xe4"
}

3. Добавление новой категории

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

[POST] /api/v1/categories/

{
  "name": "Фильм",
  "slug": "film"
}
  • Status Code: 201
{
  "name": "Фильм",
  "slug": "film"
}

3. Добавление нового жанра

Добавить жанр. Права доступа: Администратор. Поле slug каждого жанра должно быть уникальным.

[POST] /api/v1/genres/

{
  "name": "Боевик",
  "slug": "action"
}
  • Status Code: 201
{
  "name": "Боевик",
  "slug": "action"
}

Авторы

Автор Контакт
Алексей Александров (teamlead) @aaaaaaaalesha
Ольга Панарина @OlgaPanarina
Максим Ласточкин @Mificus

About

REST API проекта сбора отзывов и оценок пользователей на произведения

Topics

Resources

Stars

Watchers

Forks