Init
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# route-passport-kafka-consumer
|
||||
|
||||
Минимальный сервис на Kotlin + Spring Boot, который:
|
||||
- слушает Kafka topic;
|
||||
- получает в сообщении JSON паспорта маршрута;
|
||||
- парсит JSON в DTO;
|
||||
- больше ничего не делает.
|
||||
|
||||
## Что внутри
|
||||
|
||||
- `RoutePassportConsumerApplication` — точка входа Spring Boot.
|
||||
- `RoutePassportMessageListener` — Kafka listener.
|
||||
- `RoutePassportJsonParserService` — сервис парсинга входного JSON в DTO.
|
||||
- `RoutePassportDto` — итоговый DTO из `pcp-types-lib`.
|
||||
- `RawPassportEnvelopeDto` и связанные `Raw*` DTO — модель входного JSON из `pcp-types-lib`.
|
||||
|
||||
## Как запустить
|
||||
|
||||
1. Поднять Kafka.
|
||||
2. Указать адрес брокера в `application.yml` или через переменную окружения `KAFKA_BOOTSTRAP_SERVERS`.
|
||||
3. При необходимости указать topic через `APP_KAFKA_TOPIC`.
|
||||
4. Запустить приложение:
|
||||
|
||||
```bash
|
||||
./gradlew bootRun
|
||||
```
|
||||
|
||||
## Сообщение, которое ожидает сервис
|
||||
|
||||
Сервис ожидает, что value Kafka-сообщения — это JSON того же формата, что и `src/test/resources/passport_example.json`.
|
||||
Поле `geometry` должно приходить строкой в формате WKT.
|
||||
|
||||
## Примечание
|
||||
|
||||
Поскольку в запросе был указан просто «слушает очередь», реализация сделана через Kafka topic как наиболее типичный вариант для стека Kotlin + Spring и Kafka-ориентированного сервиса.
|
||||
Reference in New Issue
Block a user