- /add/
- /subtract/
- /multiply/
- /divide/
На каждую точку входа можно передать два числа: A и B.
Данные будут передаваться в формате:
{ "A": 1234, "B": 4567 }
Точка входа должна проверить, что входные данные являются числами, и выполнить действие, соответствующее её названию: add - сложить, subtract - вычесть, multiply - умножить, divide - разделить. Пример ответа для данных выше, при отправке на вход /add/:
{ "answer": 5801 }
Если данные не являются числами или возникает ошибка во время расчёта, точка входа должна вернуть ответ со статусом 400 BadRequest и сообщением об ошибке. Пример ответа с ошибкой:
{ "error": "Division by zero!" } ##Задание 2
-
Напишите клиент для приложения из задания 1. Добавьте в проект приложение webapp с одним представлением Index, которое рендерит пустую страницу с двумя инпутами для чисел, 4 кнопками для действий и блоком для вывода результата.
-
Каждой кнопке соответствует одно из действий: сложение, вычитание, умножение, деление. По клику на них должны отправляться AJAX-запросы на соответствующие точки входа в API. После получения ответа, выведите его в блоке для ответа и подсветите зелёным цветом. Если произошла ошибка, выведите её в блоке для ответа, и подсветите красным.
-
Бонус 2 (+0.2 балла). Используйте одну общую функцию для обработки кликов на все кнопки. Используйте дата-атрибуты на кнопках, чтобы определять точку входа API, куда нужно послать запрос. Можно сделать кнопки из ссылок и хранить адрес точки входа прямо в href.