Проект YaMDb собирает отзывы пользователей на различные произведения: фильмы, книги, музыку и другие. Пользователи могут оставлять текстовые отзывы, оценки и комментарии.
- Python — 3.9.13
- Django — 3.2
- Django REST Framework — 3.12.4
- SQLite — (по умолчанию)
-
Клонировать репозиторий:
git clone [email protected]:neyfiz/api_yamdb.git cd api_yamdb
-
Создать виртуальное окружение:
python -m venv venv source venv/bin/activate -
Установить зависимости:
pip install -r requirements.txt
-
Выполнить миграции:
python manage.py migrate
-
Наполнить базу данных тестовыми данными:
python manage.py load_data
-
Запустить сервер:
python manage.py runserver
Документация доступна по адресу: [http://127.0.0.1:8000/redoc/]
-
Зарегистрировать пользователя:
POST /api/v1/auth/signup/ { "email": "[email protected]", "username": "username" }Ответ:
{ "email": "[email protected]", "username": "username" } -
Получить токен:
POST /api/v1/auth/token/ { "username": "username", "confirmation_code": "code_from_email" }Ответ:
{ "token": "your_jwt_access_token" } -
Создать отзыв:
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" } -
Получить список произведений:
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" } } } -
Добавить комментарий к отзыву:
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" }
- Пользователь — создание отзывов и комментариев.
- Модератор — редактирование и удаление отзывов и комментариев.
- Админ — полные права.
Над проектом работали: