Giter Site home page Giter Site logo

final-task's Introduction

Финалити

Для запуска необходимо:

  1. Запустить следущие команды находясь в корневой папке:
    1. ./gradlew :prepareForDocker (Для Linux, для Windows аналогично используя gradlew.bat)
    2. docker compose -f ./docker-config/docker-compose.yaml up
  2. Следует ждать пока запустятся все необходимые контейнеры. Ожидание запуска контейнеров может составлять около минуты. Контейнер api-gateway может выбрасывать исключения и перезапускаться несколько раз, пока контейнер keycloak не перейдет в полностью рабочее состояние.

Как получить jwt token?

Зайти в браузер по url : http://localhost:8081/login или http://localhost:8081/get-token. Произойдет перенаправление на сайт провайдера аутентификации (Keycloak), необходимо будет пройти аутентификацию. Затем произойдет обратное перенаправление и на странице будет выведен jwt token, который следует использовать в дальнейшем в качестве Bearer token. Время действия - 1 час. Готовые данные для входа:

  1. login: admin

    password: admin

    (Roles: admin)

  2. login: js

    password: js

    (Roles: journalist, subscriber)

  3. login: journ

    password: journ

    (Roles: journalist)

  4. login: sub

    password: sub

    (Roles: subscriber)

Endpoints info

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%.

final-task's People

Contributors

sakujj avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.