Skip to content

Umiacha/api_yamdb_teamwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект API YaMDb

Описание

Проект API YaMDb предоставляет возможность получения отзывов данных об отзывах пользоветелей на произведения. Для авторизации пользователей используется технология токенов JWT.

API YaMDb дает возможность сторонним разработчикам, создавать свои приложения, которые могут, например, получать сведения о рейтинге и обзорах на произведения, используя данные для своих приложений.

Установка

  1. Клонировать репозиторий
git clone https://github.com/dflient/api_yamdb.git
  1. Перейти в репозиторий
cd api_yamdb
  1. Создать виртуальное окружение
python3 -m venv venv
  1. Активировать виртуальное окружение
source venv/bin/activate
python3 -m pip install --upgrade pip
  1. Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  1. Выполнить миграции и загрузить данные в БД:
python3 manage.py migrate
python3 manage.py importcsv <пусть к файлу>
  1. Запустить проект:
python3 manage.py runserver

Примеры запросов к API

Для небезопасных методов в 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 используются следующие технологии:

  1. Django - фреймворк для создания веб-приложений на языке Python. Он предоставляет множество инструментов для работы с базами данных, шаблонами, формами и многое другое.

  2. Django Rest Framework - расширение для Django, которое позволяет быстро и удобно создавать RESTful API. Оно предоставляет множество инструментов для сериализации и десериализации данных, авторизации и аутентификации пользователей, обработки ошибок и многое другое.

  3. Django Filters - пакет для Django, который предоставляет инструменты для фильтрации данных в запросах. Он позволяет быстро и удобно создавать фильтры по различным полям моделей.

  4. Pytest - фреймворк для автоматического тестирования на языке Python. Он предоставляет множество инструментов для написания и запуска тестов, а также для генерации отчетов о результатах тестирования.

Контактная информация

Для связи с командой в GitHub можно перейти по ссылкам:

https://github.com/dflient https://github.com/Umiacha https://github.com/F1yShy

Также вы можете написать нам на электронную почту, указанную в профилях на GitHub. Будем рады ответить на ваши вопросы и обсудить возможные совместные проекты.

About

Team project from Yandex.Practicum.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •