Git Product home page Git Product logo

hogwartsschoolofmagic / configurationservice Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.74 MB

🔥[Микро-сервис] Сервис конфигурации других сервисов 🧩

Home Page: https://HogwartsSchoolOfMagic.github.io/ConfigurationService

License: Apache License 2.0

Java 98.70% Batchfile 1.09% Dockerfile 0.21%
spring-boot liquibase maven lombok workflows java18 docker spring-boot-admin-client spring-cloud-config-server spring-data-jpa swagger maven-checkstyle-plugin sonarcloud spring-eureka-client

configurationservice's Introduction

last-commit time-with-code sonar-code-lines sonar-quality-gate-status ci

📖 Описание


Сервер конфигураций, построенный на базе spring-cloud-config-server. Для хранения конфигураций сервисов используется JDBC Backend (база данных - PostgreSQL). Для работы с созданием/обновлением/удалением/получением свойств конфигураций - предоставляется REST взаимодействие:

МЕТОД ПУТЬ ОПИСАНИЕ ТЕЛО ЗАПРОСА ПАРАМЕТРЫ ЗАПРОСА ОТВЕТ ОТ СЕРВЕРА
POST /api/configurations/page Постраничный поиск свойств конфигураций SearchSettings - TableResult<PropertyReturnDto>
POST /api/configurations Создание свойства конфигурации. Если оно уже есть - ошибка дублирования PropertyDto refresh PropertyReturnDto
POST /api/configurations/batch Создание нескольких свойств конфигураций. Если они существуют - ошибка дублирования List<PropertyDto> refresh List<PropertyReturnDto>
GET /api/configurations/{propertyId} Поиск свойства конфигурации по UUID идентификатору - - PropertyReturnDto
PUT /api/configurations Обновление существующего свойства конфигурации. Если оно не существует - создается новое PropertyDto refresh PropertyReturnDto
PUT /api/configurations/batch Обновление нескольких существующих свойств конфигураций. Если они не существуют - создаются новые List<PropertyDto> refresh List<PropertyReturnDto>
DELETE /api/configurations/batch Удаление нескольких свойств конфигураций SearchSettingsSimple refresh List<PropertyReturnDto>
DELETE /api/configurations/{propertyId} Удаление свойства конфигурации по UUID идентификатору - refresh PropertyReturnDto
POST /api/configurations/refresh/{destination} Отправка сообщения выбранному сервису с информацией о том, что нужно получить обновленные свойства конфигурации - - -
POST /api/configurations/refresh Отправка сообщения нескольким сервисам с информацией о том, что нужно получить обновленные свойства конфигурации List<String> - -

❗ Требования


  • JDK: 18 и выше;
  • Docker: postgres + kafka;

📋 Инструкции по запуску


Все команды выполняются в консоли. Для всех действий можно использовать IDE, но кто это знает — тот так и будет делать и инструкция ему не нужна.

Клонирование репозитория
  1. Создаем папку: mkdir GitProjects (имя папки может быть любым, но вам нужно будет продолжать использовать только его);
  2. Переходим в папку: cd GitProjects;
  3. Клонируем репозиторий: git clone https://github.com/HogwartsSchoolOfMagic/ConfigurationService.git;
  4. Переходим в созданную папку: cd ConfigurationService.
  5. Выполнено.
Сборка проекта

Внутри папки: ConfigurationService, нужно выполнить команду: mvn clean install.

Настройка и запуск базы данных

После клонирования репозитория — мы уже должны быть в папке проекта.

  1. Для работы Docker нужно его сначала установить - https://docs.docker.com/engine/install;
  2. Чтобы настроить базу данных, необходимую для работы приложения, переходим в папку: cd docker\postgres;
  3. Запускаем .bat файл командой: postgres.bat. Стандартный порт: 5024;
Запуск приложения

После сборки приложения выполните команду: mvn spring-boot:run. Стандартный порт: 8888.

⚙ Включает функциональность


  • Трансляция свойств конфигурации;
  • Настройка, подключение и работа с базой данных Postgres;
  • Использование LiquiBase для создания структуры базы данных.

🔨 Стек технологий


  • Spring Boot: WEB, Data, Admin client;
  • Spring Cloud: Server, Eureka client;
  • Postgres;
  • Kafka;
  • LiquiBase;
  • Lombok;
  • Mapstruct;
  • Docker.

🎫 Лицензия


Apache License Version 2.0

Copyright ©2022, Владислав [SmithyVL] Кузнецов

configurationservice's People

Contributors

smithyvl avatar

Stargazers

 avatar

Watchers

 avatar

configurationservice's Issues

[FEATURE] Создание `сервиса конфигурации`

Описание функциональности
Вам необходимо создать сервис конфигурации, который необходим для того, чтобы получать настройки для всех других сервисов.

  • Создание и настройка многомодульной структуры;
  • Использование отдельной базы данных для хранения настроек;
  • Добавление модуля REST для редактирования настроек;
  • Тестирование в Postman.

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.