API для сервиса сбора отзывов на произведения (книги, фильмы, музыку).
- Технологии
- Запуск проекта
- API Endpoints
- Примеры запросов
- Роли пользователей
- Авторы
- Лицензия
- Python 3.9
- Django 3.2
- Django REST Framework 3.13
- Simple JWT 5.2
- PostgreSQL (опционально)
- Docker (опционально)
- Клонируйте репозиторий:
git clone https://github.com/your_username/api_yamdb.git
cd api_yamdb- Создайте и активируйте виртуальное окружение:
python -m venv venv
source venv/bin/activate # для Linux/Mac
venv\Scripts\activate # для Windows- Установите зависимости:
pip install -r requirements.txt- Настройте базу данных в
api_yamdb/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}- Примените миграции:
python manage.py migrate- Запустите сервер:
python manage.py runserverdocker-compose up -d --buildPOST /api/v1/auth/signup/— регистрация пользователяPOST /api/v1/auth/token/— получение JWT токена
GET /api/v1/users/— список пользователей (только для администратора)POST /api/v1/users/— создать нового пользователя (только для администратора)GET /api/v1/users/me/— профиль текущего пользователя
GET /api/v1/titles/— список произведенийPOST /api/v1/titles/— добавить произведение (только админ)
GET /api/v1/titles/{title_id}/reviews/— список отзывовPOST /api/v1/titles/{title_id}/reviews/— добавить отзывGET /api/v1/titles/{title_id}/reviews/{review_id}/comments/— комментарии к отзыву
Документация API: http://localhost:8000/redoc/
POST /api/v1/auth/signup/
Content-Type: application/json
{
"email": "user@example.com",
"username": "username"
}POST /api/v1/auth/token/
Content-Type: application/json
{
"username": "username",
"confirmation_code": "код_из_email"
}POST /api/v1/titles/1/reviews/
Authorization: Bearer <ваш_токен>
Content-Type: application/json
{
"text": "Отличный фильм!",
"score": 9
}- Аноним — может только читать данные
- Пользователь (user) — может комментировать и оставлять отзывы
- Модератор (moderator) — может удалять и редактировать чужие отзывы и комментарии
- Администратор (admin) — имеет все права, включая управление пользователями и произведениями
- Александр Пак — система аутентификации
- Иван Трифонов — управление произведениями
- Salah Moustafa — отзывы и комментарии, тимлид
MIT License