Микросервис email-orchestration

В статье описана логика работы, функции, конфигурация и методы микросервиса email-orchestration.

Микросервис предназначен для взаимодействия сервиса email-рассылки с другими микросервисами платформы.

Доступ к сервису предоставляется по запросу.

Логика работы

В работе микросервиса используется сущность Email, которая содержит данные о конкретном email-письме: ID, отправитель, получатель, копия, тема, содержание, дата создания/отправки и др.).

Аутентификация и авторизация

Для работы с микросервисом аутентификация и авторизация не требуются.

Service context path

/api/email-orchestration/

Настройки и параметры конфигурации

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm",
    "LOGGING_FORMAT": "формат_логирования",
    "LOGGING_LEVEL": "уровень_логирования",
    "SERVER_PORT": "порт_сервера"
  }
}

Copy-icon
Указываемые на каждом отдельном стенде

//пример взят с тестового стенда


{
  "env": {
    "EMAIL_URL": "url_доступа_к_сервису_email",
    "KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka",
    "SPRING_OAUTH_CLIENT_ID": "client_id",
    "SPRING_OAUTH_INTROSPECT_URI": "параметр_URI_проверки_токена_OAuth2",
    "SPRING_OAUTH_ISSUER_URI": "идентификатор_сервера_который_выдает_токены",
    "SPRING_PROFILES_ACTIVE": "предустановленная_конфигурация_для_сервиса"
  }
}

Copy-icon

Методы микросервиса Copy-icon

Отправка email-письма пользователю - POST запрос, /v1/emails/send

Request body sample

{
  "from": "info@online.shop",
  "to": "belov@pochta.ru",
  "subject": "Заказ принят в обработку",
  "body": "Здравствуйте! Ваш заказ #123-456 принят в обработку."
}

Copy-icon
Response sample

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "from": "info@online.shop",
  "to": "belov@pochta.ru",
  "cc": null,
  "subject": "Заказ принят в обработку",
  "body": "Здравствуйте! Ваш заказ #123-456 принят в обработку.",
  "state": "TO_SEND",
  "retries": 0,
  "createdDate": "2024-05-27T10:57:54.370Z",
  "sentDate": "2024-05-27T10:57:54.370Z",
  "lastRetryDate": "2024-05-27T10:57:54.370Z"
}

Copy-icon
Response codes
  • 201 - операция выполнена успешно
  • 500 - ошибка, Internal Server Error