Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории:«Книги», «Фильмы», «Музыка». Список категорий может быть расширен (например, можно добавить категорию «Картины» или «Ювелирные изделия»). Произведению может быть присвоен жанр из списка предустановленных (например, «Легенда», «Поп» или «Триллер»). Администратор может добавлять произведения, категории и жанры. Пользователи оставляют к произведениям отзывы и ставят произведению оценку в диапазоне от 1 до 10; из пользовательских оценок формируется рейтинг. Пользователь может оставить только один отзыв на одно произведение. Пользователи могут оставлять комментарии к отзывам. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
Python 3.10, Django 3.2, DRF 3.12, JWT, DJOSER, SQLite
Скачать и установить python 3.10 с сайта https://www.python.org/.
Зарегистрируйтесь на GitHub, при регистрации укажите имя пользователя, адрес электронной почты и придумайте пароль. После того как вы нажмёте кнопку «Создать аккаунт», система попросит вас подтвердить электронную почту. Загляните в почтовый ящик, там будет письмо с кодом подтверждения.
Скачайте и установите GitBash.
Запустите Git Bash (если у вас Windows) или Терминал (на Linux/MacOS). Выполните команду ssh-keygen
Консоль попросит ввести путь к файлу, в который будут сохранены сгенерированные ключи, и одновременно предложит сохранить их в файл по умолчанию:
Enter file in which to save the key (/home/имя_пользователя/.ssh/id_rsa):
Сохраните ключи в папку по умолчанию: для этого нажмите Enter на Windows или Return на macOS.
При создании ключей система попросит придумать пароль для доступа к ключам. Когда вы будете задавать пароль, в терминале ничего не отобразится, даже звёздочки.
Рисунок в окне терминала будет свидетельствовать, что ключи успешно созданы:
Теперь необходимо сохранить открытый ключ в вашем аккаунте на GitHub.
Выведите ключ в терминал командой:
cat .ssh/id_rsa.pub
Cкопируйте ключ от символов ssh-rsa , включительно, и до конца:
Зайдите в свой аккаунт на GitHub, перейдите в раздел настроек.
Выберите пункт SSH and GPG keys; для создания нового ключа нажмите на кнопку New SSH key в правом верхнему углу.
Откроется страница с двумя полями ввода: Title (заголовок ключа). Когда будете задавать заголовок, учитывайте, что в дальнейшем вы, возможно, добавите и другие ключи. Например, с другого своего компьютера, чтобы получить с него доступ к репозиториям на GitHub. Поэтому выбирайте для каждого ключа уникальные заголовки, например ключ с домашнего компьютера можно назвать HomePC, а с рабочего — WorkPC. Key (ключ). Сюда необходимо вставить скопированный из терминала ключ.
Нажмите кнопку Add SSH key — ключ добавится к вашему аккаунту. Если вы захотите получить SSH-доступ к своему аккаунту на GitHub с нескольких компьютеров, для каждого из них должен быть создан и добавлен свой SSH-ключ.
Место, где хранится и обновляется код проекта, чаще всего в виде файлов, называют репозито́рием.
Напечатайте в терминале команду git clone, после неё поставьте пробел, вставьте скопированный адрес и выполните команду:
git clone git@github.com:akiqq/api_yamdb.git
python3 -m venv env source env/bin/activate python3 -m pip install --upgrade pip
pip install -r requirements.txt
python3 manage.py migrate
python3 manage.py runserver
POST http://127.0.0.1:8000/api/v1/auth/signup/
{
"email": "user@example.com",
"username": "string"
}
Пример ответа.
{
"username": "string",
"confirmation_code": "string"
}
POST http://127.0.0.1:8000/api/v1/auth/token/
Получаем токен.
{
"username": "string",
"confirmation_code": "string"
}
Пример ответа.
{
"token": "string"
}
GET http://127.0.0.1:8000/api/v1/categories/
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"name": "string",
"slug": "string"
}
]
}
POST http://127.0.0.1:8000/api/v1/categories/
{
"username": "string",
"password": "string"
}
PATCH http://127.0.0.1:8000/api/v1/titles/{titles_id}/
{
"name": "string",
"year": 0,
"description": "string",
"genre": [
"string"
],
"category": "string"
}
Пример ответа:
{
"id": 0,
"name": "string",
"year": 0,
"rating": 0,
"description": "string",
"genre": [
{
"name": "string",
"slug": "string"
}
],
"category": {
"name": "string",
"slug": "string"
}
}
DELETE http://127.0.0.1:8000/api/v1/titles/{titles_id}/
GET http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"id": 0,
"text": "string",
"author": "string",
"score": 1,
"pub_date": "2019-08-24T14:15:22Z"
}
]
}
POST http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/
{
"text": "string",
"score": 1
}
Пример ответа.
{
"id": 0,
"text": "string",
"author": "string",
"score": 1,
"pub_date": "2019-08-24T14:15:22Z"
}
GET http://127.0.0.1:8000/api/v1/titles/{title_id}/reviews/{review_id}/
{
"id": 0,
"text": "string",
"author": "string",
"score": 1,
"pub_date": "2019-08-24T14:15:22Z"
}
POST http://127.0.0.1:8000/api/v1/users/
{
"username": "string",
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"bio": "string",
"role": "user"
}
Пример ответа.
{
"username": "string",
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"bio": "string",
"role": "user"
}
Авторы:
Александр - Тимлид
Дмитрий - Разработчик
Владимир - Разработчик