Merge pull request #18 from anxi0uz/feature/back-18
readme update 3, added architecture scheme
This commit is contained in:
43
README.md
43
README.md
@@ -245,6 +245,49 @@ Authorization: <access_token>
|
||||
Водитель завершает (in_transit → delivered)
|
||||
```
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
cmd/
|
||||
└── main.go — точка входа, инициализация зависимостей
|
||||
|
||||
internal/
|
||||
├── api/ — OpenAPI спека + сгенерированный oapi-codegen код
|
||||
├── config/ — загрузка конфига (TOML + ENV)
|
||||
├── database/ — подключение к PostgreSQL и Redis, запуск миграций
|
||||
├── handler/ — HTTP хендлеры (Chi), WebSocket хаб, Prometheus middleware
|
||||
├── models/ — структуры БД
|
||||
└── services/ — бизнес-логика (OrderService: создание заказа, статусы, дашборд)
|
||||
|
||||
pkg/
|
||||
├── storage.go — generic CRUD поверх pgx (GetOne, GetAll, Create, Update)
|
||||
└── geocode/ — клиенты Nominatim (геокодинг) и OSRM (маршруты)
|
||||
|
||||
migrations/ — SQL миграции Goose, применяются автоматически при старте
|
||||
configs/ — config.toml, prometheus.yml, datasources Grafana
|
||||
```
|
||||
|
||||
**Слои и зависимости:**
|
||||
|
||||
```
|
||||
HTTP-запрос
|
||||
→ Chi router
|
||||
→ Auth middleware (JWT → Redis)
|
||||
→ Handler
|
||||
→ Service (бизнес-логика, внешние API)
|
||||
→ pkg/storage (generic SQL)
|
||||
→ PostgreSQL
|
||||
```
|
||||
|
||||
**Внешние сервисы:**
|
||||
- **Nominatim** — геокодинг адресов при создании заказа и склада
|
||||
- **OSRM** — построение маршрута и расчёт дистанции/времени
|
||||
- **Redis** — хранение access/refresh токенов, инвалидация при логауте
|
||||
- **Prometheus** — сбор метрик с `/metrics`
|
||||
- **Grafana** — дашборд метрик
|
||||
|
||||

|
||||
|
||||
## Структура БД
|
||||
|
||||

|
||||
|
||||
BIN
docs/infra.jpg
Normal file
BIN
docs/infra.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
Reference in New Issue
Block a user