Связи и протоколы
Что это
Связь — реальное взаимодействие между двумя объектами на доске системы. Показывает направление коммуникации и используемый протокол.
Свойства связи
| Свойство | Описание |
|---|---|
| Название | Отображается на линии связи |
| Описание | Подробное текстовое описание |
| Направление | Однонаправленная (→) или двунаправленная (↔) |
| Протокол | Способ взаимодействия между объектами |
| Технологии | Используемые технологии |
| Теги | Метки для категоризации |
Действия
Каждая связь может содержать одно или несколько действий — конкретных операций, которые передаются через эту связь. Например, связь по протоколу REST может содержать действия GET /users, POST /users, DELETE /users/{id}.
Действия можно создавать двумя способами:
- Вручную — указав протокол, поля и тело запроса
- Из контракта — выбрав операцию из контракта объекта
Рекомендация
Рекомендуется сначала создать контракты для объектов, а затем использовать их при создании действий в связях. Это обеспечивает согласованность описания API.
Набор полей действия зависит от выбранного протокола (см. Поля протоколов):
| Поле | Описание |
|---|---|
| Название | Имя операции |
| Описание | Что делает операция |
| Протокол | Тип взаимодействия (REST, SQL, Kafka и др.) |
| Поля протокола | Зависят от типа — метод и путь для REST, топик для Kafka и т.д. |
| Тело запроса | Содержимое запроса в формате JSON, XML, SQL и др. |
| Контракт | Ссылка на контракт объекта (необязательно) |
Протоколы
Доступные протоколы зависят от типа объекта, к которому ведёт связь.
Протоколы для сервисов
REST, HTTP(s), gRPC, GraphQL, WebSocket, Webhook, SOAP, SSE, RSocket, SignalR, JSON-RPC, XML-RPC, Thrift, CoAP, FTP, SFTP, SMB, TCP, UDP, QUIC, SCTP
Протоколы для очередей сообщений
Kafka, AMQP, MQTT, NATS, Pulsar, STOMP, ZeroMQ
Протоколы для баз данных
PostgreSQL, MySQL, MariaDB, MS SQL, Oracle DB, ClickHouse, MongoDB, Redis, Cassandra, DynamoDB, Elasticsearch, Neo4j
Логическая связь
Для объектов типов «Пользователь», «Группа» и «Рамка» доступен только протокол Logical — абстрактная связь без конкретного протокола взаимодействия.
Действия
Создание связи
Участник команды с ролью редактора или выше может создать связь между двумя объектами. Для этого нужно соединить выходную точку одного объекта с входной точкой другого.
При создании указывается направление и протокол.
Редактирование связи
Участник команды с ролью редактора или выше может изменить свойства связи: название, описание, направление, протокол, технологии и теги. Также можно добавлять, изменять и удалять действия.
Удаление связи
Участник команды с ролью редактора или выше может удалить связь. Поддерживается массовое удаление.
Внимание
При удалении связи удаляются все её действия. Контракты объектов при этом не затрагиваются.
Права доступа
| Действие | Наблюдатель | Редактор | Администратор | Владелец команды | Владелец организации |
|---|---|---|---|---|---|
| Просмотр связей | ✓ | ✓ | ✓ | ✓ | ✓ |
| Создание связи | ✓ | ✓ | ✓ | ✓ | |
| Редактирование свойств | ✓ | ✓ | ✓ | ✓ | |
| Управление действиями | ✓ | ✓ | ✓ | ✓ | |
| Удаление связи | ✓ | ✓ | ✓ | ✓ |