Требуется написать сервер на основе Spring Boot, реализовать эндпоинты для данного функционала и покрыть функционал тестами. Эндпоинты, возвращающие списки, должны поддерживать пейджинацию. Для авторизации предлагается использовать Spring Security и HTTP Basic Auth, для хранения данных – Spring Data в связке с БД на выбор, для тестов – junit, также требуется возможность in-memory тестов, не затрагивающих реальную БД. Фронтэнд не требуется, необходимы только эндпоинты и тесты.
- Пользователь может зарегистрироваться (email + пароль).
- Для входа юзер использует email + пароль.
- Когда пользователь вошёл, он может редактировать свой профиль:
- Указать username;
- Указать подробную информацию о себе.
- Когда пользователь вошёл, он может добавить запись в блог. Запись - заголовок + текст, у каждой записи есть время добавления.
- Пользователь может видеть, редактировать и удалять свои записи. Неавторизованный пользователь / другой пользователь может только видеть записи.
- Неавторизованный пользователь видит информацию о юзере, но не может её изменить.
- Также необходимы эндпоинты, по которым можно получить:
- всех зарегистрировавшихся юзеров в порядке регистрации;
- последние записи, оставленные пользователями, вместе с указанием автора записи.
Выполнено в виде двух микросервисов :
- Сервис, отвечающий за домен работы с пользователем.
- Написан на языке Kotlin.
- Содержит функционал для создания пользователя, занесения токена сессии в базу , выдачу токена и посылку сообщения об истекшем токене
- Сервис отвечающий за ведение блогов:
- Написан на Java 8, использует WebFlux Spring подход