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

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

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

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

Логика работы Copy-icon

В работе микросервиса используется сущность MediaRequest, которая содержит данные о запросе медиа (название стенда; название сервиса; название папки, где хранится медиа; список медиа файлов; флаг о наличии/отсутствии необходимости изменения размера медиа файла и др.).

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

При обращении к сервису аутентификация и авторизация не нужны.

Service context path Copy-icon

/api/media-orchestration/

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

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

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

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm"
  }
}


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

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


{
  "env": {
    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
  }
}




Copy-icon

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

  • Создание медиа - POST запрос, /v1/media
Request parameters

standName - название стенда
serviceName - название сервиса
folder - название папки
files - список медиа файлов
fileMap - карта файлов с указанием их названия и медиа-ключа
withResizing - флаг для активации изменения размера изображения
originalFileName - оригинальное название файла
originalFileNameMediaKey - оригинальный медиа-ключ названия медиа файла

Copy-icon
Response sample

mediaKey - строковое значение, если медиа успешно создано

Copy-icon
Response codes
  • 200 - медиа файл создан, возвращен медиа-ключ файла
  • 422 - ошибка, отсутствуют обязательные параметры
  • Публикация медиа файла - PUT запрос, /v1/media
Request body sample

{
    "standName": "master",
    "serviceName": "catalog",
    "folder": "images",
    "fileMap": {
        "1-pinot-grigio-640x294.jpg": "1716034828389-1882559365.jpg"
    },
    "withResizing": "false"
}

Copy-icon
Response sample

{
    "1-pinot-grigio-640x294.jpg": "master/catalog/images/1716034828389-1882559365.jpg"
}

Copy-icon
Response codes
  • 200 - операция успешно выполнена, медиа файл опубликован
  • 404 - ошибка, медиа файл не найден
  • Удаление медиа файла - DELETE запрос, /v1/media/{standName}/{serviceName}/{folder}/{fileName}
Request parameters

standName - path-параметр, обязательный: название стенда
serviceName - path-параметр, обязательный: название сервиса
folder - path-параметр, обязательный: название папки
fileName - path-параметр, обязательный: название файла

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes
  • 204 - медиа файл успешно удален
  • 404 - ошибка, медиа файл не найден
  • Создание медиа по пути - POST запрос, /v1/media/{standName}/{serviceName}/{folder}
Request parameters

standName - path-параметр, обязательный: название стенда
serviceName - path-параметр, обязательный: название сервиса
folder - path-параметр, обязательный: название папки

withResizing - флаг для активации изменения размера изображения


Copy-icon
Request body sample

file (MultipartFile) - файл для загрузки

Copy-icon
Response sample

mediaKey - сгенерированный медиа-ключ файла

Copy-icon
Response codes
  • 201 - медиа файл создан, возвращен медиа-ключ файла
  • 422 - ошибка, отсутствуют обязательные параметры
  • Публикация медиа (перенос медиа в публичный бакет) - PUT запрос, /v1/media/{standName}/{serviceName}/{folder}/{fileName}
Request parameters

standName - наименование стенда (обязательный параметр)
serviceName - наименование сервиса (обязательный параметр)
folder - наименование папки (обязательный параметр)
fileName - наименование файла

withResizing - флаг для активации изменения размера изображения

Copy-icon
Response sample

Отсутствует.

Response codes
  • 200 - медиа файл успешно опубликован
  • 404 - ошибка, медиа файл не найден