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

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

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

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

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

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

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

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

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

Service context path

/api/export-orchestration/

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

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

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

По умолчанию

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

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

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


{
  "env": {
    "AVAILABILITY_URL": "url_доступа_к_сервису_availability",
    "CATALOG_URL": "url_доступа_к_сервису_catalog",

    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ECOM_ISSUER_URI": "url_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel",
    "ORDER_URL": "url_доступа_к_сервису_order",
    "PRICE_URL": "url_доступа_к_сервису_price",
    "PROMO_URL": "url_доступа_к_сервису_promo",
    "REGION_URL": "url_доступа_к_сервису_region",
    "ROUTE_URL": "url_доступа_к_сервису_route",
    "STORE_URL": "url_доступа_к_сервису_store",
    "TEMPLATE_URL": "url_доступа_к_сервису_load-template"
  }
}



Copy-icon

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

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

Request parameters

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

Copy-icon
Response sample

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

Response codes

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

Работа с каталогом

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

Request body sample

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

Response sample

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

Response codes

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

Работа с заказами

Экспорт файла со списком заказов - 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 - операция выполнена успешно, файл экспортирован

Работа с ценами

Экспорт файла со списком цен - 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 - операция выполнена успешно, файл экспортирован

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

Экспорт файла со списком категорий - 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 - операция выполнена успешно, файл экспортирован

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

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

Request parameters

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

Copy-icon
Request body sample

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

Copy-icon
Response sample

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

Response codes:

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

Работа с товарами

Экспорт файла со списком товаров - 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 - операция выполнена успешно, файл экспортирован

Работа с остатками

Экспорт файла со списком остатков товаров - 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 - операция выполнена успешно, файл экспортирован

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

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

Request parameters

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

Copy-icon
Request body sample

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

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

Response codes:

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