Проект YamDB API предоставляет Вам базу данных лучший произведений со всего мира, отсортированных по категориям (например, фильмы, песни, книги и т.д.). Для того, чтобы просматривать список произведений, узнавать их рейтинг, читать отзывы на них, а также комментарии к отзывам, даже не требуется регистрация! Зарегистрировавшись, Вы получите ещё больший функционал и сможете оставлять отзывы на произведения с проставлением рейтинга, а также писать комментарии к отзывам других людей.
-
Для начала склонируйте репозиторий к себе на машину:
git clone https://github.com/xaer981/api_yamdb.git
cd api_yamdb
-
Затем создайте виртуальное окружение и установите зависимости:
Windows
python -m venv venv
source venv/Scripts/activate
pip install -r requirements.txt
Mac
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
-
После этого необходимо выполнить миграции:
cd api_yamdb/
python manage.py makemigrations python manage.py migrate
Important
В случае, если некоторые таблицы не создадутся по тем или иным причинам, после предыдущей команды используйте:
python manage.py migrate --run-syncdb
-
Далее можно загрузить в базу данных тестовые данные с помощью следующей команды:
python manage.py import_data
-
А теперь запускаем!:
python manage.py runserver
- Для начала стоит зарегистрироваться, чтобы получить полный функционал:
Note
Если полный функционал вам не нужен, то перейдите сразу к "Примерам запросов":
POST http://127.0.0.1:8000/api/v1/auth/signup/
В body запроса необходимо указать:
{
"username": "<username>",
"email": "<email@email.com>"
}
-
Отлично! Теперь нужно получить токен:
POST http://127.0.0.1:8000/api/v1/auth/token/
В body запроса необходимо указать:
{ "username": "<username>", "confirmation_code": "<confirmation_code, который находится в письме из папки sent_emails>" }
-
Теперь у Вас есть токен! С помощью него начинаем пользоваться сервисом.
-
С помощью данного запроса Вы можете получить информацию о своём аккаунте.
GET http://127.0.0.1:8000/api/v1/users/me/
-
А с помощью такого запроса эту информацию дополнить:
PATCH http://127.0.0.1:8000/api/v1/users/me/
В body запроса необходимо указать то, поле(я) которое(ые) Вы хотите изменить, например:
{ "first_name": "<Ваше имя>", "last_name": "<Ваша фамилия>" }
Note
Здесь указаны лишь некоторые запросы, полный список можете посмотреть после запуска сервера локально: http://localhost:8000/
-
Получить список всех произведений в БД (на одну страницу выдаётся по 10 произведений):
GET http://127.0.0.1:8000/api/v1/titles/
-
Получить список отзывов на данное произведение:
GET http://127.0.0.1:8000/api/v1/titles/<title_id>/reviews/
-
Получить список комментариев к данному отзыву:
GET http://127.0.0.1:8000/api/v1/titles/<title_id>/reviews/<review_id>/comments/
-
Получить список существующих категорий произведений:
GET http://127.0.0.1:8000/api/v1/categories/
-
Получить список существующих жанров произведений:
GET http://127.0.0.1:8000/api/v1/genres/
-
Хотите написать отзыв на произведение? Да пожалуйста!:
POST http://127.0.0.1:8000/api/v1/titles/<title_id>/reviews/
В body запроса необходимо указать следующее:
{ "text": "<текст вашего отзыва>", "score": 5 // <ваша оценка произведения от 1 до 10> }
-
Комментарий к отзыву? И так можно:
POST http://127.0.0.1:8000/api/v1/titles/<title_id>/reviews/<review_id>/comments/
В body запроса необходимо указать следующее:
{ "text": "<текст вашего комментария>" }
@SGERx @teehazee @xaer981