Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий может быть расширен администратором. Произведению может быть присвоен жанр из списка предустановленных. Новые жанры может создавать только администратор. Пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.
- auth: аутентификация
- users: пользователи
- titles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка)
- categories: категории (типы) произведений («Фильмы», «Книги», «Музыка»)
- genres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам
- reviews: отзывы на произведения. Отзыв привязан к определённому произведению
- comments: комментарии к отзывам. Комментарий привязан к определённому отзыву
Каждый ресурс описан в redoc файле, доступный после запуска приложения: указаны эндпоинты (адреса, по которым можно сделать запрос), разрешённые типы запросов, права доступа и дополнительные параметры, если это необходимо.
Windows
Скачайте и установите Git Bash. Подробная инструкция и дистрибутив можно найти на сайте. Затем в меню пуск найдите и запустите приложение Git Bash.macOS или Linux
Откройте главное меню приложений и выберите приложение "Терминал".Следуйте официальной документации Docker для Вашей ОС.
git clone https://github.com/Whitenz/yamdb_final
cd yamdb_final/infra/
SECRET_KEY=YOUR_SECRET_KEY
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres # задайте свой пароль
DB_HOST=db
DB_PORT=5432
sudo docker-compose up -d
sudo docker-compose exec web python manage.py migrate
sudo docker-compose exec web python manage.py collectstatic --no-input
sudo docker-compose exec web python manage.py createsuperuser
sudo docker-compose exec web python manage.py loaddata fixtures.json
✨ Поздравляю ✨
Приложение запущено и готово к работе.
- Регистрация пользователей и выдача токенов
/api/v1/auth/signup/ - POST
/api/v1/auth/token/ - POST
- Категории произведений
/api/v1/categories/- GET, POST
/api/v1/categories/{slug}/ - DEL
- Категории жанров
/api/v1/genres/ - GET, POST
/api/v1/genres/{slug}/ - DELETE
- Произведения, к которым пишут отзывы
/api/v1/titles/ - GET, POST
/api/v1/titles/{titles_id}/ - GET, PATCH, DELETE
- Отзывы к произведениям
/api/v1/titles/{title_id}/reviews/ - GET, POST
/api/v1/titles/{title_id}/reviews/{review_id}/ - GET, PATCH, DELETE
- Комментарии к отзывам
/api/v1/titles/{title_id}/reviews/{review_id}/comments/ - GET, POST
/api/v1/titles/{title_id}/reviews/{review_id}/comments/{comment_id}/ - GET, PATCH, DELETE
- Пользователи
/api/v1/users/ - GET, POST
/api/v1/users/{username}/- GET, PATCH, DELETE
/api/v1/users/me/ - GET, PATCH
Список всех отзывов
curl -X GET 'http://localhost/api/v1/categories/'
Ответ
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"name": "Книга",
"slug": "book"
},
{
"name": "Музыка",
"slug": "music"
},
{
"name": "Фильм",
"slug": "movie"
}
]
}
- Django
- PyJWT
- djoser
- postgresql
- nginx
- gunicorn
- docker
BSD 3-Clause License
Ilya Kolesnikov