Проект YAMDB собирает отзывы пользователей на произведения. Сами произведения в проекте не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
API YAMDB* - интерфейс для взаимодействия c пользователем, позволяющий получать, создавать, удалять и изменять объекты в базе данных проекта.
- Клонировать репозиторий и перейти в папку с ним:
git clone https://github.com/dasha2000vas/api_yamdb.git
cd api_yamdb
- Создать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
- Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
- Перейти в папку с приложениями, выполнить миграции:
cd api_yamdb
python manage.py migrate
- Запустить проект на локальном сервере:
python manage.py runserver
Перед запуском учтите условия, описанные в примечании⬇️...
-
Эндпоинт: http://127.0.0.1:8000/api/v1/auth/signup/. Метод запроса: POST
Права доступа: Доступно без токенаПри передаче следующих данных:
- "email": "string" (required),
- "username": "string" (required)
Вы получите ответ о создании нового пользователя:
- "email": "string",
- "username": "string"
Также, на указанную почту будет оправлено письмо с кодом, необходимым для дальнейшей авторизации.
-
Эндпоинт: http://127.0.0.1:8000/api/v1/auth/token/. Метод запроса: POST
Права доступа: Доступно без токенаПри передаче имени зарегистрированного пользователя и кода из письма:
- "email": "string" (required),
- "confirmation_code": "string" (required)
Вам в ответе будет отправлен JWT Token, позволяющий авторизоваться:
- "token": "string"
-
Эндпоинт: http://127.0.0.1:8000/api/v1/titles/. Метод запроса: GET
Права доступа: Доступно без токенаВ ответ вы получите список всех произведений, что имеются в базе данных. Опционально, можно параметризировать запрос фильтрацией и поиском по следующим полям: category (slug категории), genre (slug жанра), name (название), year(год выпуска).
-
Эндпоинт: http://127.0.0.1:8000/api/v1/titles/ Метод запроса: POST.
Права доступа: АдминистраторПри передаче следующих данных в теле запроса:
- "name": "string" (required),
- "year": "integer" (required),
- "description": "string",
- "genre": "array of strings" (required),
- "category": "string" (required)
В базу будет добавлено новое произведение и придет ответ в виде:
- "id": "integer",
- "name": "string",
- "year": "integer",
- "rating": "integer",
- "description": "string",
- "genre": "Array of objects",
- "category": "object"
-
Эндпоинт: http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/. Метод запроса: GET
Права доступа: Доступно без токенаПри передаче следующих данных в параметрах запроса:
- "title_id": "integer" (required),
- "review_id": "integer" (required)
Вернется ответ с информацией о конкретном отзыве, оставленном на указанное произведение:
- "id": "integer",
- "text": "string" (required),
- "author": "string",
- "score": "integer" (required),
- "pub_date": "datetime"
-
Эндпоинт: http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/. Метод запроса: PATCH.
Права доступа: Администратор, Модератор, Автор отзываПри передаче следующей информации в теле запроса:
- "text": "string" (required),
- "score": "integer" (required)
Соответствующий отзыв будет изменен и вернется ответ в таком виде:
- "id": "integer",
- "text": "string" (required),
- "author": "string",
- "score": "integer" (required),
- "pub_date": "datetime"
Имя | GitHub |
---|---|
Александр Быньков | ✔️ |
Дарья Василевская | ✔️ |
Павел Нестеров | ✔️ |
В данном руководстве приведены лишь некоторые запросы, доступные в проекте API YAMDB.
Чтобы увидеть полный список возможных запросов (эндпоинтов), Вы можете открыть полноценную документацию: для этого необходимо запустить проект на вашем компьютере и перейти по этому адресу.