- Order: Sent to
order_topic
. - Check: Sent to
check_topic
.
- Reads Order from
order_topic
.
- Emp: Sent to
emp_topic
. - Check: Sent to
check_topic
.
- Reads Emp from
emp_topic
.
- Check: Sent to
check_topic
.
- Reads Order from
order_topic
. - Reads Emp from
emp_topic
.
- примеры EvenGraphDTO
- примеры спецификаций
- для каждой спецификации есть прямое соответсвие - по имени
- если в имени спецификации есть число, то эти спецификации можно использовать для импорта /upload POST : результат соединения содержится в файле с таким же именем, только без цифры.
Эта документация описывает формат спецификации OpenAPI, используемый в вашей системе, включая все поддерживаемые типы брокеров, структуру путей и расширения. Документация основана на тестовых случаях из предоставленного кода и включает практические примеры использования.
Спецификация должна быть в формате YAML/Json и содержать следующие обязательные элементы (далее на пример используется yaml):
openapi: 3.0.0
info:
title: Название сервиса
version: Версия сервиса
Определяет пути и конечные точки сервиса. Формат пути зависит от типа брокера:
/kafka/{group}/{topic}/{event}:
post:
responses:
'200':
description: OK
-
group
- группа потребителей (только для kafka) -
topic
- название топика -
event
- название события
/jms/{topic}/{event}:
post:
responses:
'200':
description: OK
/rabbitmq/{topic}/{event}:
post:
responses:
'200':
description: OK
Секция components
содержит описания схем событий:
components:
schemas:
EventName:
type: object
x-incoming:
topics: [topic1, topic2]
x-outgoing:
topics: [topic3, topic4]
Определяет входящие топики для события:
x-incoming:
topics: [имя_топика1, имя_топика2]
Определяет исходящие топики для события:
x-outgoing:
topics: [имя_топика1, имя_топика2]
-
Каждое событие должно иметь уникальное имя в рамках спецификации.
-
Поддерживаемые типы брокеров:
-
KAFKA
-
JMS
-
RABBITMQ
-
-
Для Kafka обязательно указание группы потребителей в пути.
-
События могут быть как входящими (x-incoming), так и исходящими (x-outgoing) одновременно.
openapi: 3.0.0
info:
title: Test Service
version: 1.0.0
paths:
/kafka/group1/topic1/Event1:
post:
responses:
'200':
description: OK
components:
schemas:
Event1:
type: object
x-incoming:
topics: [topic1]
openapi: 3.0.0
info:
title: Complex Service
version: 1.0.0
paths:
/kafka/group1/topicA/EventA:
post:
responses:
'200':
description: OK
/jms/topicB/EventB:
post:
responses:
'200':
description: OK
components:
schemas:
EventA:
type: object
x-incoming:
topics: [topicA]
EventB:
type: object
x-incoming:
topics: [topicB]
x-outgoing:
topics: [topicA]