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

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

Микросервис export-orchestration служит для экспорта файлов.

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

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

В работе микросервиса используются следующие сущности:

  • Template - содержит название шаблона файла для экспорта
  • Region - используется в экспорте файла со списком регионов и содержит данные о регионе
  • Product - используется в экспорте файла со списком товаров каталога и содержит данные о продуктах
  • Price - используется в экспорте файла со списком товаров каталога для отображения информации о стоимости продуктов, а также в экспорте файла со списком цен
  • Order - используется в экспорте файла со списком заказов и содержит данные о заказе
  • Feature - используется в экспорте файла со списком характеристик и содержит данные характеристики
  • Category - используется в экспорте файла со списком категорий и содержит данные категории
  • Availability - используется в экспорте файла со списком остатков товаров и содержит данные об остатке
  • Location - используется в экспорте файла со списком локаций и содержит данные о локации
  • Route - используется в экспорте файла со списком маршрутов и содержит данные о маршруте
  • Event - используется в экспорте файла со списком действий пользователей и содержит данные о действии

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

При обращении к микросервису через API необходимо в заголовке Authorization указывать токен: Authorization: Bearer <токен>.

Service context path Copy-icon

/api/export-orchestration/

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

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

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

По умолчанию

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

  }
}



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

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


{
  "env": {

    "KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka",

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

    "ZITADEL_SERVICE_USER_TOKEN": "токен_пользователя_zitadel",
     "ZITADEL_URL": "url_доступа_к_zitadel"
  }
}





Copy-icon

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

Работа с регионами Copy-icon

  • Экспорт файла со списком регионов - GET запрос, /v1/regions/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта
name - query-параметр: значение поискового запроса
level - query-параметр: уровень региона в иерархии
defaultRegion - query-параметр: флаг, указывающий, является ли регион регионом по умолчанию

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с каталогом Copy-icon

  • Экспорт XLSX файла со списком товаров каталога - GET запрос, /wb/v1/catalog/xlsx
Request body sample

Отсутствуют.

Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с заказами Copy-icon

  • Экспорт файла со списком заказов - GET запрос, /v1/orders/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта
searchTerm - query-параметр: поисковый запрос пользователя
customerId - query-параметр: id покупателя
orderNum - query-параметр: id заказа
createTimeFrom - query-параметр: дата, использующаяся в фильтре "Дата с"
createTimeTo - query-параметр: дата, использующаяся в фильтре "Дата до"
orderStatuses - query-параметр: статус(ы) заказа
userFirstName - query-параметр: имя покупателя
userLastName - query-параметр: фамилия покупателя
discountPriceFirstValue - query-параметр: первый числовой параметр фильтра "Стоимость"
discountPriceFirstOperator - query-параметр: первый числовой оператор фильтра "Стоимость"
discountPriceFilterConnectiveType - query-параметр: тип соединения числовых параметров фильтра "Стоимость" (например, "AND" или "OR")
discountPriceSecondValue - query-параметр: второй числовой параметр фильтра "Стоимость"
discountPriceSecondOperator - query-параметр: второй числовой оператор фильтра "Стоимость" (например, "больше")
orderStatutesToExclude - query-параметр: статус(ы) заказов, которые не должны отображаться на странице

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с ценами Copy-icon

  • Экспорт файла со списком цен - POST запрос, /v1/prices/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body

{
    "articleId": "D022283DC",
    "statusSet": [
        "ACTIVE"
    ],
    "priceListId": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
    "validFrom": "",
    "validTo": "",
    "minQuantityFirstValue": "",
    "minQuantityFirstOperator": "EQ",
    "minQuantityFilterConnectiveType": "AND",
    "minQuantitySecondValue": "",
    "minQuantitySecondOperator": "EQ",
    "priceFirstValue": "",
    "priceFirstOperator": "EQ",
    "priceFilterConnectiveType": "AND",
    "priceSecondValue": "",
    "priceSecondOperator": "EQ",
    "currenciesIds": [
        "02d3eb94-8d0c-4e21-a952-db8684a1534d"
    ]
}

Copy-icon
Response sample

200 - операция выполнена успешно, файл экспортирован

Работа с категориями Copy-icon

  • Экспорт файла со списком категорий - POST запрос, /v1/categories/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "электрон",
    "url": "lektr",
    "catalogId": "c1000001DC"
}

Copy-icon
Response sample

В ответе приходят данные файла экспорта.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с характеристиками Copy-icon

  • Экспорт файла со списком характеристик - POST запрос, /v1/features/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "параметры"
}

Copy-icon
Response sample

В ответе приходят данные файла экспорта.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с товарами Copy-icon

  • Экспорт файла со списком товаров - POST запрос, /v1/products/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "сумка",
    "articleId": "1021539DC",
    "statusList": [
        300
    ],
    "catalogId": "c1000025DC"
}

Copy-icon
Response sample

В ответе приходят данные файла экспорта.

Response codes

200 - операция выполнена успешно, файл экспортирован


Работа с остатками Copy-icon

  • Экспорт файла со списком остатков товаров - POST запрос, /v1/availabilities/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "Главный склад",
    "articleIds": [
        "1021617DC"
    ],
    "quantityFirstOperator": "EQ",
    "quantityFilterConnectiveType": "AND",
    "quantitySecondOperator": "EQ"
}

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с локациями Copy-icon

  • Экспорт файла со списком локаций, где хранятся товары интернет-магазина - POST запрос, /v1/locations/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "сочи"
}

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с маршрутами

  • Экспорт файла со списком маршрутов доставки товаров - POST запрос, /v1/routes/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "сочи"
}

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован

Работа с действиями пользователей

  • Экспорт файла со списком действий пользователей - POST запрос, /v1/events/{templateName}
Request parameters

templateName - path-параметр, обязательный: имя шаблона файла для экспорта

Copy-icon
Request body sample

{
    "searchTerm": "",
    "eventTypes": [
        "DELETE"
    ],
    "statusList": [],
    "entityId": "",
    "entityType": "",
    "email": "",
    "startDate": "",
    "endDate": ""
}

Copy-icon
Response sample

В ответе приходит код операции (например, 200) и данные экспортированного файла.

Response codes

200 - операция выполнена успешно, файл экспортирован