Skip to main content

envelopes

Конверт и сообщения

Данный раздел содержит описание специального конверта сообщений, необходимого для обмена с системой оператора ЭПД.

Основной обмен конвертами происходит через корпоративную систему обмена сообщениями Apache Kafka.

Основные очереди обмена сообщениями:

  • prod - продовая корпоративная Apache Kafka
    • прием: epd.events.input.v1.epd.hub
    • отправка: epd.events.input.v1.hub.epd
  • demo - тестовая корпоративная Apache Kafka
    • прием: epd.events.input.demo.v1.epd.hub
    • отправка: epd.events.input.demo.v1.hub.epd
  • dev-1 - тестовая корпоративная Apache Kafka
    • прием: epd.events.input.dev.v1.epd.hub
    • отправка: epd.events.input.dev.v1.hub.epd

Общее описание

Конверт

Конверт сообщений - это специальный стандартизированный JSON объект. Для работы с API шины необходимо использовать сообщения, завернутые в подобные конверты. Большая часть информации является необязательной и потому будут описаны только необходимые поля.

Название поляОписание
messageIdУникальный идентификатор сообщения (необходимо генерировать при каждой отправке)
messageTypeТип сообщения. Именно этот параметр отвечает за то, как будет обрабатываться это сообщение.
messageТело сообщения, иными словами - данные.
sentTimeДата отправки сообщения. Данный параметр по сути ни на что не влияет, а нужен для определения возраста сообщения.

Сообщение

Сообщение состоит из двух частей: тип и тело.

  • Тип указывается в messageType поле конверта, он же является названием сообщения,
  • Тело сообщения - это непосредственно данные сообщения для выполнения действий или с конкретной информацией о сущности, которые записываются в message.

Примеры сообщений в конверте

Исходящее сообщение

Данный вариант конверта будет использоваться для отправки команд потребителю АПИ шины.
Пример конверта для исходящего сообщения sendDocumentCommandEvent.

{
"messageId": "ed290000-5d01-0015-6490-08d9d6d7cd93",
"messageType": "sendDocumentCommandEvent",
"message": {
"docflowId": "22877C86-73A4-4D97-BBCF-C63A44153C8D",
"docflowType": "ETRN",
"senderId": "2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723",
"receiversId": [{
"id": "2AECD6B395E-4FCB-41AA-B10B-4E634B773772",
"receiverType": "Carrier"
},
{
"id": "2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0",
"receiverType": "Consignee"
}
],
"documentId": "c0478105-cd56-49e9-bb27-5786d228697d",
"documentStorageId": "ed290100-5d01-0015-6490-08d9d6d7cd95",
"documentName": "ON_TRNACLGROT_2AECD6B395E-4FCB-41AA-B10B-4E634B773772_2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0_2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723_0_20220526_c0478105-cd56-49e9-bb27-5786d228697d.xml",
"documentType": "ShipperInfo",
"signatures": [{
"id": "2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723",
"storageID": "ed290200-5d01-0015-6490-08d9d6d7cd95",
"fileName": "ON_TRNACLGROT_2AECD6B395E-4FCB-41AA-B10B-4E634B773772_2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0_2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723_0_20220526_c0478105-cd56-49e9-bb27-5786d228697d.p7s"
}],
"primaryDocumentId": "c0478105-cd56-49e9-bb27-5786d228697d"
},
"sentTime": "2022-05-21T18:25:43+03:00"
}

Входящее сообщение

Данный вариант конверта, как правило, будет приходить в ответных сообщениях.
Пример конверта для входящего сообщения documentCameOutboundEvent.

{
"messageId": "ed290000-5d01-0015-6490-08d9d6d7cd94",
"messageType": "documentCameOutboundEvent",
"message": {
"docflowId": "22877C86-73A4-4D97-BBCF-C63A44153C8D",
"docflowType": "ETRN",
"senderId": "2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723",
"receiverId": "2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0",
"documentId": "c0478105-cd56-49e9-bb27-5786d228697d",
"documentStorageId": "ed290100-5d01-0015-6490-08d9d6d7cd95",
"documentName": "ON_TRNACLGROT_2AECD6B395E-4FCB-41AA-B10B-4E634B773772_2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0_2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723_0_20220520_c0478105-cd56-49e9-bb27-5786d228697d.xml",
"documentType": "ShipperInfo",
"signatures": [{
"id": "2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723",
"storageID": "ed290200-5d01-0015-6490-08d9d6d7cd95",
"fileName": "ON_TRNACLGROT_2AECD6B395E-4FCB-41AA-B10B-4E634B773772_2AE3DF9A700-7E0D-4B9A-A531-E1C29E1F5BC0_2AE4E671C65-3DAB-4974-9FF9-3AEAF80AD723_0_20220520_c0478105-cd56-49e9-bb27-5786d228697d.p7s"
}],
"primaryDocumentId": "c0478105-cd56-49e9-bb27-5786d228697d"
},
"sentTime": "2022-05-21T18:35:43+03:00"
}

Входящее сообщение об ошибке

Данный вариант конверта, как правило, будет приходить в ответных сообщениях, в случае если конверт с ошибкой, например:

  1. Неизвестный тип сообщения указанный в messageType
{
"messageId": "ed290000-5d01-0015-6490-08d9d6d7cd94",
"messageType": "error",
"message": {"Неизвестный тип сообщения в messageType"},
"sentTime": "2022-05-21T18:35:43+03:00"
}
  1. Структура указанная в message не соответствует типу сообщения
{
"messageId": "ed290000-5d01-0015-6490-08d9d6d7cd94",
"messageType": "error",
"message": {"Структура указанная в message не соответствует типу сообщения"},
"sentTime": "2022-05-21T18:35:43+03:00"
}

Примечание: Сообщения об ошибке, будет отправляться на тот же messageId, который был указан в исходящем конверте.