- Spring boot 3.0.4
- PostgreSQL 15.2
- Gradle 7.6.1
- Docker
Исходный текст задания можно посмотреть здесь
Спецификацию к API можно посмотреть здесь
- Выполнены 1, 2 и 3 задания из четырех описанных.
- Из сторонних библиотек были использованы:
spring-boot-starter-validation
для валидации запросовorg.projectlombok:lombok:1.18.26
для уменьшения количества вспомогательного кодаbucket4j_jdk8-core
для реализации Rate limiter'a
- Тесты не были специфицированы в задании, поэтому решил не включать их в окончательную версию
- Тело ответа на BadRequest'ы пустое, т.к. так указано в спецификации. Реализовал возможность расширения этого пункта
- По заданию рейтинг курьера имеет тип Integer, поэтому он округляется по математическим правилам до целого числа.
- Поскольку rate limiter необходимо было сделать на каждую ручку свой, то на каждую ручку было создано "ведро" с токенами - костыль, но работает
- В задании сказано, что доступ к БД по паролю "password", но в шаблоне был пароль "postgres". Поставил везде "password"