Skip to content

kefirchk/EPAM-java-project

Repository files navigation

EPAM-java-project

@Автор: Алексей Климович, гр. 150501.

Вариант 11.

Задание: Сервис должен принимать четыре параметра (значение a, значение b, начало отрезка, конец отрезка) и вернуть результат решения уравнения «х + a = b», где a – значение a, b – значение b, методом подбора, выбирая корень из значений отрезка предоставленного параметрами «начало» и «конец отрезка».

Intro

  1. Создать и запустить локально простой веб/REST сервис, используя любой открытый (например, в открытом доступе в сети интернет) пример с использованием Java stack: Spring (Spring Boot)/maven/gradle/Jersey/ Spring MVC. Добавить GET ендпоинт, принимающий входные параметры в качестве queryParams в URL и возвращающий результат в виде JSON согласно варианту.

Error logging/handling

  1. Добавить валидацию входных параметров с возвращением 400 ошибки. Добавить обработку внутренних unchecked ошибок с возвратом 500 ошибки Добавить логирование действий и ошибок. Написать unit test

Collections intro, project structure

  1. Добавить простейший кэш в виде in-memory Map для сервиса. Map должна содержаться в отдельном бине/классе, который должен добавляться в основной сервис с помощью dependency injection механизм Spring

Concurrency

  1. Добавить сервис для подсчёта обращений к основному сервису. Счётчик должен быть реализован в виде отдельного класса, доступ к которому должен быть синхронизирован. Используя jmeter/postman или любые другие средвста сконфигурировать нагрузочный тест и убедиться, что счётчик обращений работает правильно при большой нагрузке.

Functional programming with Java 8

  1. Преобразовать исходный сервис для работы со списком параметров для bulk операций используя Java 8 лямбда выражения. Добавить POST метод для вызова bulk операции и передачи списка параметров в виде JSON

Functional filtering and mapping

  1. Добавить аггрегирующий функционал (подсчёт макс, мин, средних значений) для входных параметров и результатов с использованием Java 8 map/filters функций. Расширить результат POST соотвественно.

Data persistence

  1. Добавить возможность сохранения всех результатов вычислений в базе данных или файле, используя стандартные persistence фреймворки Java (Spring Data/Hibernate/MyBatis)

Asynchronous calls

  1. Добавить возможность асинхронного вызова сервиса используя future, возвращать статус вызова REST сервиса не дожидаясь результатов подсчётов. Результаты подсчётов должны быть представлены в БД по предопределённой ID

About

REST service as laboratory work from EPAM on the subject Programming in High-Level Languages

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages