Skip to content

API on DRF of service to discuss about various titles of books, films, music and other.

Notifications You must be signed in to change notification settings

itsme-emichka/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

REST API YaMDb

Описание

YaMDb - это сервис, на котором пользователи могут писать рецензии на произведения, такие как книги, фильмы, музыка и т.д.. Каждая рецензия открывает отдельный тред, в котором авторизованные пользователи могут оставлять комментарии и дискутировать.

Произведения делятся на категории, и в каждой категории есть определенные жанры. Например: Достоевский "Преступление и наказание" - это произведение в категории книги, а жанр - роман.

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

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

  • Django
  • Django REST Framework
  • DRF Simple JWT
  • SQLite

Авторы:

  • Эмилар Локтев (@itsme_emichka)
  • Никита Соловьев (@Nikita_Solovev_V)
  • Евгений Обгольц (@eobgolts)

Как запустить проект

  1. Клонировать репозиторий
    git clone https://github.com/itsme-emichka/api_yamdb.git

  2. Перейти в директорию проекта
    cd api_yamdb

  3. Создать файл .env со следующими переменными

    • SECRET_KEY
    • DEBUG
  4. Создать и активировать виртуальное окружение

    • python -m venv venv
    • Windows - source venv/Scripts/activate
      Linux/MacOS - source venv/bin/activate
  5. Поставить зависимости
    pip install -r requirements.txt

  6. Перейти в директорию с файлом manage.py
    cd api_yamdb

  7. Применить миграции
    python manage.py migrate

  8. Запустить сервер
    python manage.py runserver

Примеры запросов к API

Полная спецификация API доступна по адресу http://your_domain/redoc
Для тестирования API можете использовать postman-collection

GET http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/
Response:

{
    "count": 0,
    "next": "string",
    "previous": "string",
    "results": [
        {
            "id": 0,
            "text": "string",
            "author": "string",
            "score": 1,
            "pub_date": "2019-08-24T14:15:22Z"
        }
    ]
}

GET http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/comments/
Response:

{
    "count": 0,
    "next": "string",
    "previous": "string",
    "results": [
        {
            "id": 0,
            "text": "string",
            "author": "string",
            "pub_date": "2019-08-24T14:15:22Z"
        }
    ]
}

POST http://127.0.0.1:8000/api/v1/titles/

{
    "name": "string",
    "year": 0,
    "description": "string",
    "genre": [
        "string"
    ],
    "category": "string"
}

Response:

{
    "id": 0,
    "name": "string",
    "year": 0,
    "rating": 0,
    "description": "string",
    "genre": [
        {
            "name": "string",
            "slug": "string"
        }
    ],
    "category": {
        "name": "string",
        "slug": "string"
    }
}

GET http://127.0.0.1:8000/api/v1/titles/
Response:

{
    "count": 0,
    "next": "string",
    "previous": "string",
    "results": [
        {
        "id": 0,
        "name": "string",
        "year": 0,
        "rating": 0,
        "description": "string",
        "genre": [
            {
                "name": "string",
                "slug": "string"
            }
        ],
        "category": {
                "name": "string",
                "slug": "string"
            }
        }
    ]
}

About

API on DRF of service to discuss about various titles of books, films, music and other.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages