- Запустить следущие команды находясь в корневой папке:
-
./gradlew :prepareForDocker
(Для Linux, для Windows аналогично используя gradlew.bat) -
docker compose -f ./docker-config/docker-compose.yaml up
-
- Следует ждать пока запустятся все необходимые контейнеры. Ожидание запуска контейнеров может составлять около минуты. Контейнер api-gateway может выбрасывать исключения и перезапускаться несколько раз, пока контейнер keycloak не перейдет в полностью рабочее состояние.
Зайти в браузер по url : http://localhost:8081/login
или http://localhost:8081/get-token
.
Произойдет перенаправление на сайт провайдера аутентификации (Keycloak), необходимо будет пройти аутентификацию. Затем произойдет
обратное перенаправление и на странице будет выведен jwt token, который следует использовать в дальнейшем в качестве Bearer token.
Время действия - 1 час.
Готовые данные для входа:
-
login: admin
password: admin
(Roles: admin)
-
login: js
password: js
(Roles: journalist, subscriber)
-
login: journ
password: journ
(Roles: journalist)
-
login: sub
password: sub
(Roles: subscriber)
http://localhost:8081/news/swagger
http://localhost:8081/comments/swagger
Имеется единая точка входа в микросервисное приложение - Api Gateway. Микросервисы и Api Gateway используют Eureka Discovery Server для взаимного обнаружения. Кроме Api Gateway, Eureka, есть News-service, Comments-service. News-service запрашивает комментарии и оповещает о создании, удалении новостей с помощью Spring Openfeign. У этих двух микросервисов разные базы данных. В базе данных для News-service имеется одна таблица, cодержащая всю информацию о новостях. В базе данных для Comments-service содержится две таблицы, одна для обеспечения согласованности данных News_id, хранящая id новостей находящихся в базе данных News-service и айди соответствующего автора новости. Другая таблица хранит всю информацию о комментариях и имеет внешний ключ news_id, зависящий от id в таблице News_id. Добавлен кастомный кеш стартер. Имеются WireMock, MockMvc тесты. Сервисы покрыты на 100%.