Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flexberry/flexberry.springbootbackend.sample
https://github.com/flexberry/flexberry.springbootbackend.sample
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/flexberry/flexberry.springbootbackend.sample
- Owner: Flexberry
- License: mit
- Created: 2022-12-06T13:04:10.000Z (about 2 years ago)
- Default Branch: develop
- Last Pushed: 2023-06-19T11:24:45.000Z (over 1 year ago)
- Last Synced: 2023-06-19T13:00:27.101Z (over 1 year ago)
- Language: Java
- Size: 849 KB
- Stars: 0
- Watchers: 8
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Java бэкенд на основе фреймворка Spring Boot
Проект получен с помощью сервиса https://start.spring.io/
Для работы с проектом рекомендуется использовать IntelliJ IDEA не ниже версии 2022.1Общая схема взаимодействия:
![Общая схема](/docs/images/common_schema.png)Возможности, реализованные на данный момент:
1) Работа с БД Postgres. Для примера созданы сущности Customer и Comment.
2) Выполнение простых REST запросов к сущностям - GET, POST, PUT, DELETE.
3) Связи между сущностями. Comment является детейлом Customer. Решена цикличность запроса Детейл-Мастер-Детейл-Мастер....
4) Аудит операций на основе Envers. Для каждой таблицы автоматически создается таблица аудита в этой же БД + одна общая служебная таблица.
5) Сложный запрос на основе нескольких параметров - выборка комментариев в заданном периоде времени.
6) Система логировани с возможностью назначать свои тексты на разные типы ошибок.
7) Система сбора логов [Loki](/docs/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0%20%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%20%D0%B8%D0%B7%20%D0%B1%D1%8D%D0%BA%D0%B5%D0%BD%D0%B4%D0%B0%20%D0%B2%20loki.md).
8) Работа с файлами - Загрузка/Выгрузка.
9) Реализация фильтра по нескольким параметрам. Число параметров модели для фильтра любое, но в качестве примера реализован только тип сравнения "="(equal).
10) Запуск в Docker.
11) Синхронизация данных для поиска и отправка метрик приложения в поисковую систему [ELasticsearch](/docs/%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%20Elasticsearch.md).
12) Отправка потоковых данных в программный брокер сообщений kafka.
13) Сервис для интерактивного просмотра документации [Swagger](/docs/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8%20(Swagger%20%2B%20SpringDoc).md).
14) Платформа с открытым исходным кодом для визуализации, мониторинга и анализа данных Grafana.
15) [Spring Cloud Gateway](/docs/Spring%20Cloud%20Gateway.md) - прокси-сервис, через который проходятвсе запросы. Выступает единственной точкой входа для пользователя.### Запуск в Docker
Для запуска бэкенда в Docker необходимо выполнить
`Flexberry.SpringReactApplication.Sample\Docker\build.sh`
`Flexberry.SpringReactApplication.Sample\Docker\run.cmd`
Для остановки контейнера
`Flexberry.SpringReactApplication.Sample\Docker\stop.cmd`
### Примеры запросов
Запросы выполняются в Postman
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/d9420b10-e793-4e33-b533-219641a0073c)
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/f099463b-aaf2-4885-a6de-8aa7ab070e1e)
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/e792c018-18e4-4abc-957c-955c64c4e18d)
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/38486722-c805-48b6-be35-f4aab95aef13)
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/d9b4cb05-5a2f-49fd-b612-293a9d1da766)
### Пример POST для детейла
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/52517cfc-1b80-4210-b920-d7bcf069fa29)
### Запрос на выборку комментариев в диапазоне дат
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/0ac18d03-f9ea-499d-bf59-d40141d04a91)
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/7aa7b2fe-9732-4c1a-99e3-819c91022bd5)
### Запрос с фильтром
![image](https://github.com/Flexberry/Flexberry.SpringBootBackend.Sample/assets/13151962/0d7fe4e6-8623-4096-a11c-1f11dee83267)
### Примеры запросов для работы с файлами
Загрузить файл:
![PostFile](docs/images/filePost.jpg)
Получить список файлов:
![GetFiles](docs/images/fileGet.jpg)
Скачать указанный файл:
![GetFilesByName](docs/images/fileGetByName.jpg)
### Сервис документации Swagger
localhost:8081/service/docs
### Веб-интерфейс Grafana
localhost:8081/service/grafana