api_yamdb

Реализация API на базе Django REST Framework

Позволяет работать с моделями базы:

  • User (Пользователи)

Установка:

-настройте виртуальное окружение

    source venv/bin/activate

-установите необходимые зависимости

    python3 -m pip install --upgrade pip
    pip install -r requirements.txt

- перейдите в папку проект

    cd api_yamdb

-разверните базу данных

    python3 manage.py makemigrations
    python3 manage.py migrate

- запустите проект

    python manage.py runserver

Подробная документация

http://127.0.0.1:8000/redoc/

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

Регистрация нового пользователя. необходимо отправить отправить POST-запрос в JSON-формате:

{
"email": "string",
"username": "string"
}

на эндпоинт

http://127.0.0.1:8000/api/v1/auth/signup/

Для получения JWT-токена необходимо отправить POST-запрос в JSON-формате (где confirmation_code - буквенно-цифровая последовательность, пришедшая на указанный до этого email):

{
  "username": "string",
  "confirmation_code": "string"
}

на эндпоинт:

http://127.0.0.1:8000/api/v1/auth/token/

в ответе на запрос приходит token (jwt-token). Все небезопасные запросы делаются с его использованием. Примеры запросов приведены в подробной документации

http://127.0.0.1:8000/redoc/

Для неавторизованных пользователей все записи достпупны только для чтения. Получение списка всех категорий - GET-запрос на эндпоинт:

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

Получение списка жанров:

http://127.0.0.1:8000/api/v1/genres/

Получение списка произведений

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

Получение одного произведения, titles_id - номер произведения:

http://127.0.0.1:8000/api/v1/titles/{titles_id}/

Получение списка всех отзывов по произведенияю titles_id

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

Получение одного отзыва по произведению titles_id

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