Проект API YaMDb предоставляет возможность получения отзывов данных об отзывах пользоветелей на произведения. Для авторизации пользователей используется технология токенов JWT.
API YaMDb дает возможность сторонним разработчикам, создавать свои приложения, которые могут, например, получать сведения о рейтинге и обзорах на произведения, используя данные для своих приложений.
- Клонировать репозиторий
git clone https://github.com/dflient/api_yamdb.git
- Перейти в репозиторий
cd api_yamdb
- Создать виртуальное окружение
python3 -m venv venv
- Активировать виртуальное окружение
source venv/bin/activate
python3 -m pip install --upgrade pip
- Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
- Выполнить миграции и загрузить данные в БД:
python3 manage.py migrate
python3 manage.py importcsv <пусть к файлу>
- Запустить проект:
python3 manage.py runserver
Для небезопасных методов в API требуется авторизация
Получение списка всех произведений (GET запрос). Права доступа - Доступно без токена:
Запрос
http://127.0.0.1:8000/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 запрос). Пользователь может оставить только один отзыв на произведение. Права доступа - Аутентифицированные пользователи.:
Запрос
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/genres/
Ответ
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"name": "string",
"slug": "string"
}
]
}
Все методы описаны в документации по ссылке:
http://127.0.0.1:8000/redoc/
Для реализации API для сервиса Yatube используются следующие технологии:
-
Django - фреймворк для создания веб-приложений на языке Python. Он предоставляет множество инструментов для работы с базами данных, шаблонами, формами и многое другое.
-
Django Rest Framework - расширение для Django, которое позволяет быстро и удобно создавать RESTful API. Оно предоставляет множество инструментов для сериализации и десериализации данных, авторизации и аутентификации пользователей, обработки ошибок и многое другое.
-
Django Filters - пакет для Django, который предоставляет инструменты для фильтрации данных в запросах. Он позволяет быстро и удобно создавать фильтры по различным полям моделей.
-
Pytest - фреймворк для автоматического тестирования на языке Python. Он предоставляет множество инструментов для написания и запуска тестов, а также для генерации отчетов о результатах тестирования.
Для связи с командой в GitHub можно перейти по ссылкам:
https://github.com/dflient https://github.com/Umiacha https://github.com/F1yShy
Также вы можете написать нам на электронную почту, указанную в профилях на GitHub. Будем рады ответить на ваши вопросы и обсудить возможные совместные проекты.