Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /