Giter Club home page Giter Club logo

yamdb_final's Introduction

Добро пожаловать на проект YaMDb!

Привет! YamDb это приложение для обмена отзывами на различные произведения искусства, такие как фильмы, книги, музыка и т.д. Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи. Проект выполнен в рамках обучающего курса Яндекс Практикум.

Технологии

Проект написан на Python 3.7.0, предусмотрена аутентификация по токену.

Использованные библиотеки:

  • Django==2.2.19
  • python-dotenv
  • djangorestframework
  • django-filter
  • djangorestframework-simplejwt==4.7.2
  • djoser
  • psycopg2-binary
  • pytest==6.2.4
  • pytest-django==4.4.0
  • pytest-pythonpath==0.7.3

Фреймворки:

  • Django Rest Framework

Сервер:

  • NGINX: 1.21.3-alpine

Контейниризация:

  • DOCKER-compose: 3.8

API

В проекте реализованы эндпоинты для взаимодействия с базой данных и возможностью создавать, редактировать и удалять не только отзывы, а также оставлять комментарии, данные передаются в формате json.

Полный список эндпоинтов можно получить по адресу http://127.0.0.1:8000/redoc/ после развертки проекта локально.

Примеры:

Получить список произведений:

GET /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 /api/v1/titles/
{
  "name": "string",
  "year": 0,
  "description": "string",
  "genre": [
    "string"
  ],
  "category": "string"
}

Получить все посты

При указании параметров limit и offset выдача должна работать с пагинацией.

  GET /api/v1/posts/
Parameter Type Description
limit integer Необязательный параметр
offset integer Необязательный параметр

Создать пост

  POST /api/v1/posts/1
Parameter Type Description
text string Обязательный. Текст публикации

Автор

example workflow

yamdb_final's People

Contributors

vv-m avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.