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

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

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

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

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

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

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

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

Service context path

/api/media-orchestration/

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

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

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

По умолчанию

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

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

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


{
  "env": {
    "MEDIA_URL": "url_путь_доступа_к_сервису_media",
    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ECOM_ISSUER_URI": "url_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 - ошибка, медиа файл не найден