Code Monkey home page Code Monkey logo

handlers's Introduction

API-ядро для отработки практики

Функционал

  1. Приветствие
  2. Помощь
  3. Получение списка продуктов по категории
  4. Получение информации об одном продукте
  5. Получение списка категорий
  6. Добавление товара в корзину
  7. Вывести корзину

Реализация

Общее описание

  • Формат запроса:
{
  "action": <int>,
  "data": <dict|None>
}
  • Формат ответа:
{
  "code": <int>,
  "data": <string>
}
  • Коды ответа и их обозначение:

    200 - Успех - запрос успешно обработан
    201 - Создано/добавлено - запись успешно добавлена или создана
    400 - Неверный запрос - введен неверный или несуществующий запрос
    404 - Не найдено или неизвестная команда - например выбран несуществующий товар
    409 - Конфликт выполнения запроса - например на складе не хватает товара для покупки
    500 - Ошибка обработки запроса - например, введены неверные данные для запроса фильтрации


Приветствие

Функция: hanlders.set_hello_message

Необходимо возвращать сообщение с приветствием пользователя в следующем формате:

Запрос

{
    "action": 0,
    "data": {}
}

Ответ:

{
    "code": 200,
    "data": "Привет, пользователь! Рады тебя приветствовать в магазине. Здесь ты можешь просмотреть товары, купить что-то. Для более подробной информации вызови помощь командой '1'"
}

Помощь

Функция: hanlders.help

Необходимо перечислить имеющиеся команды с расшифровкой того, для чего нужна каждая команда, формат следующий:

Запрос

{
    "action": 1,
    "data": {}
}

Ответ:

{
    "code": 200,
    "data": "1 - Вывести это сообщение.\n2 - Показать список продуктов. Можно передать в тело номер категории, чтобы получить товары определенной категории. ..."
}

Получение списка продуктов по категории

Функция: hanlders.products.get_product_list

Возвращает либо все товары магазина, если фильтры не указаны, либо товары, отфильтрованные по двум признакам: цена и категория.

Запрос

{
    "action": 2,
    "data": {
        "price": ['>100'|'<100'|'<=100'|'>=100'|None],
        "category": <int|None>
    }
}

Ответ:

{
    "code": 200,
    "data": "1. Груша (200 руб/кг) 10 шт.\n2. Яблоки (1000 руб/кг) 10шт."
}

Примечание: Если введен номер несуществующей категории, то вывести пустой список товаров


Получение информации об одном продукте

Функция: hanlders.products.get_single_product

Необходимо возвращать сообщение с приветствием пользователя в следующем формате:

Запрос

{
    "action": 4,
    "data": {
      "id": <int>
    }
}

Ответы:

{
    "code": 200,
    "message": "Груша.\nЦена: 200 рублей за кг\nОстаток на складе: 10 штук\nОписание: Длинное описание"
}
{
    "code": 404,
    "message": "Товара с таким номер не найдено"
}

Получение списка категорий

Функция: hanlders.categories.get_category_list

Необходимо возвращать список категорий товаров с выводом их идентификаторов для возможности делать запросы:

Запрос

{
    "action": 3,
    "data": {}
}

Ответ:

{
    "code": 200,
    "data": "1. Фрукты\n2. Овощи"
}

Добавление товара в корзину

Функция: hanlders.cart.put_product_to_cart

Добавить выбранный товар в корзину в указанном количестве:

Запрос

{
    "action": 5,
    "data": {
      "id": 1,
      "count": 5
    }
}

Ответы:

{
    "code": 201,
    "message": "Товар 'Яблоки' в количестве 5 штук добавлен в корзину успешно"
}
{
    "code": 404,
    "message": "Товара с таким номер не найдено."
}
{
    "code": 409,
    "message": "Невозможно добавить товар 'Яблоки' в количестве 11 штук в корзину, потому что их осталось всего 10."
}

Вывести корзину

Функция: hanlders.cart.get_cart

Необходимо возвращать список товаров в корзине с их количеством:

Ответ:

{
    "code": 200,
    "message": "1. Яблоки (200 руб/кг) добавлено 5 штук\n2. Груши (150 руб/кг) добавлено 1 штука"
}

handlers's People

Contributors

gnomeg avatar oscarbotru 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.