Привет! YamDb это приложение для обмена отзывами на различные произведения искусства, такие как фильмы, книги, музыка и т.д. Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи. Проект выполнен в рамках обучающего курса Яндекс Практикум.
Проект написан на Python 3.7.0, предусмотрена аутентификация по токену.
- Django==2.2.19
- python-dotenv
- djangorestframework
- django-filter
- djangorestframework-simplejwt==4.7.2
- djoser
- psycopg2-binary
- pytest==6.2.4
- pytest-django==4.4.0
- pytest-pythonpath==0.7.3
- Django Rest Framework
- NGINX: 1.21.3-alpine
- DOCKER-compose: 3.8
В проекте реализованы эндпоинты для взаимодействия с базой данных и возможностью создавать, редактировать и удалять не только отзывы, а также оставлять комментарии, данные передаются в формате json.
Полный список эндпоинтов можно получить по адресу http://127.0.0.1:8000/redoc/ после развертки проекта локально.
Получить список произведений:
GET /api/v1/titles/
[
{
"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"
}
}
]
}
]
Получить список произведений:
POST /api/v1/titles/
{
"name": "string",
"year": 0,
"description": "string",
"genre": [
"string"
],
"category": "string"
}
Получить все посты
При указании параметров limit и offset выдача должна работать с пагинацией.
GET /api/v1/posts/
Parameter | Type | Description |
---|---|---|
limit |
integer |
Необязательный параметр |
offset |
integer |
Необязательный параметр |
POST /api/v1/posts/1
Parameter | Type | Description |
---|---|---|
text |
string |
Обязательный. Текст публикации |