https://github.com/tatianasharova/api_yamdb
Сервис для работы с отзывами.
https://github.com/tatianasharova/api_yamdb
django djoser drf rest-api sqlite
Last synced: 2 months ago
JSON representation
Сервис для работы с отзывами.
- Host: GitHub
- URL: https://github.com/tatianasharova/api_yamdb
- Owner: TatianaSharova
- Created: 2024-04-07T19:02:09.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-21T06:25:17.000Z (over 2 years ago)
- Last Synced: 2025-12-02T15:24:18.272Z (7 months ago)
- Topics: django, djoser, drf, rest-api, sqlite
- Homepage:
- Size: 165 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Проект выполнен студентами 72 кагорты Яндекс Практикума.
## https://github.com/Godjes, https://github.com/TatianaSharova, https://github.com/Kasylin
### **описание проекта*
Произведения(Titles) делятся на категории(Categories). Список категорий может быть расширен.
Произведению может быть присвоен жанр(Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»).
Добавлять произведения, категории и жанры может только администратор.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы(Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг((raiting)) (целое число). На одно произведение пользователь может оставить только один отзыв.
Пользователи могут оставлять комментарии(Сomments) к отзывам.
Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
### **Используемые технологии**
| программа | версия |
|-------------------------------|--------|
| Django | 3.2.16 |
| pytest | 6.2.4 |
| pytest-pythonpath | 0.7.3 |
| pytest-django | 4.4.0 |
| djangorestframework | 3.12.4 |
| djangorestframework-simplejwt | 4.7.2 |
| Pillow | 9.3.0 |
| PyJWT | 2.8.0 |
| requests | 2.26.0 |
| djoser | 2.1.0 |
### **Запускаем проект в dev режиме на OC Linux**
**Клонировать репозиторий с GitHub**
```
git clone git@github.com:boginskiy/api-Yatube.git
```
**Установить виртуальное окружение venv**
```
python3 -m venv venv
```
**Aктивировать виртуальное окружение venv**
```
source venv/bin/activate
```
**Обновить менеджер пакетов pip**
```
python3 -m pip install --upgrade pip
```
**Установить зависимости из файла requirements.txt**
```
pip install -r requirements.txt
```
**Выполнить миграции**
```
python3 manage.py migrate
```
**Запустить проект**
```
python3 manage.py runserver
```
## **API запросы**
### ***Регистрация пользователя***
Зарегестрироваться POST`http://127.0.0.1:8000/api/v1/auth/signup/`.
Получить код подтверждения на переданный email. Права доступа: Доступно без токена. Использовать имя 'me' в качестве username запрещено. Поля email и username должны быть уникальными. Должна быть возможность повторного запроса кода подтверждения.
email -required string <= 254 characters
username - required string <= 150 characters ^[\w.@+-]+\Z
### **GET запрос**
Получение списка всех произведений 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"
}
}
]
}
```
### **GET Получение списка всех пользователей**
Получить список всех пользователей. Права доступа: Администратор GET `http://127.0.0.1:8000/api/v1/users/`.
```
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"username": "string",
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"bio": "string",
"role": "user"
}
]
}
```