Skip to content

The YaMDb project collects user reviews of various works: films, books, music and others. Users can leave text reviews, ratings and comments.

Notifications You must be signed in to change notification settings

neyfiz/api_yamdb

Repository files navigation

API YaMDb

Проект YaMDb собирает отзывы пользователей на различные произведения: фильмы, книги, музыку и другие. Пользователи могут оставлять текстовые отзывы, оценки и комментарии.

Используемые технологии

  • Python — 3.9.13
  • Django — 3.2
  • Django REST Framework — 3.12.4
  • SQLite — (по умолчанию)

Установка

  1. Клонировать репозиторий:

    git clone [email protected]:neyfiz/api_yamdb.git 
    cd api_yamdb 
  2. Создать виртуальное окружение:

    python -m venv venv 
    source venv/bin/activate 
  3. Установить зависимости:

    pip install -r requirements.txt 
  4. Выполнить миграции:

    python manage.py migrate 
  5. Наполнить базу данных тестовыми данными:

    python manage.py load_data
  6. Запустить сервер:

    python manage.py runserver 
    

Использование API

Документация доступна по адресу: [http://127.0.0.1:8000/redoc/]

Регистрация и аутентификация

  1. Зарегистрировать пользователя:

    POST /api/v1/auth/signup/  
    { 
        "email": "[email protected]", 
        "username": "username" 
    }

    Ответ:

    {
        "email": "[email protected]",
        "username": "username"
    }
  2. Получить токен:

    POST /api/v1/auth/token/ 
    { 
        "username": "username", 
        "confirmation_code": "code_from_email" 
    }

    Ответ:

    {
        "token": "your_jwt_access_token"
    }
  3. Создать отзыв:

    POST /api/v1/titles/{title_id}/reviews/
    Authorization: Bearer your_jwt_access_token
    Content-Type: application/json

    Пример запроса:

    {
        "text": "Great movie, highly recommended!",
        "score": 5
    }

    Ответ:

    {
        "id": 1,
        "text": "Great movie, highly recommended!",
        "author": "username",
        "score": 5,
        "pub_date": "2019-08-24T14:15:22Z"
    }
  4. Получить список произведений:

    GET /api/v1/titles/
    Authorization: Bearer your_jwt_access_token

    Ответ:

    {
    "count": 2,
    "next": "string",
    "previous": "string",
    "results": [
        {
            "id": 1,
            "name": "Film Title",
            "year": 2023,
            "rating": 4.5,
            "description": "A thrilling movie about...",
            "genre": [
                {
                    "name": "Action",
                    "slug": "action"
                }
            ],
            "category": {
                "name": "Film",
                "slug": "film"
            }
        }
    }
  5. Добавить комментарий к отзыву:

    POST /api/v1/reviews/1/comments/
    Authorization: Bearer your_jwt_access_token
    Content-Type: application/json

    Пример запроса:

    {
        "text": "I totally agree with this review!"
    }

    Ответ:

    {
        "id": 1,
        "text": "I totally agree with this review!",
        "author": "username",
        "pub_date": "2023-10-01T14:15:22Z"
    }

Роли пользователей

  • Пользователь — создание отзывов и комментариев.
  • Модератор — редактирование и удаление отзывов и комментариев.
  • Админ — полные права.

Команда проекта

Над проектом работали:

About

The YaMDb project collects user reviews of various works: films, books, music and others. Users can leave text reviews, ratings and comments.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages