Микросервис region-orchestration
Микросервис region-orchestration предоставляет функциональность для управления регионами (получение списка, создание и редактирование регионов).
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса используется сущность Регион (Region), которая определяет географические зоны, куда могут быть доставлены товары интернет-магазина.
Аутентификация
При обращении к микросервису через API в запросах необходимо в заголовке
Authorization указать токен: Authorization: Bearer
<токен>
.
Авторизация
Для обращения к сервису у пользователя должна быть роль Admin и/или Admin_Settings.
Подробнее о ролях можно узнать здесь.
Service context path
/api/region-orchestration/
Настройки и параметры конфигурации
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "ХХm",
"JAVA_XMX": "YYYm"
}
}
// пример взят с тестового стенда
{
"env": {
"KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka",
"OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
"OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
"OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
}
}
Методы микросервиса
- Получение отфильтрованного списка регионов - GET запрос, /v1/regions
name - query-параметр: название региона
{
"id":
"anf8ch39-fj39-js2l-ybn3-l49xn2kr9lln",
"name": "г.Воронеж",
"headId": "jwic9v08-djw8-j301-соид-alvi48dn48fn",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
200 - операция выполнена успешно, получен отфильтрованный список регионов
- Получение региона по его id - GET запрос, /v1/regions/{regionId}
regionId - query-параметр: уникальный идентификатор региона
{
"id":
"anf8ch39-fj39-js2l-ybn3-l49xn2kr9lln",
"name": "г.Воронеж",
"headId":
"jwic9v08-djw8-j301-соид-alvi48dn48fn",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
- 200 - операция выполнена успешно, получена информация о запрашиваемом регионе
- 400 - ошибка, не удалось найти запрашиваемый регион
- Получение иерархии регионов - GET запрос, /v1/regions/hierarchy
name - query-параметр: название региона
[
{
"id": "f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"name": "Россия",
"level": 1,
"defaultRegion": false,
"inferiors": [
{
"id": "ound48f3-dubh-84j3-kd93-lemvu80a3j32",
"name": "г.Москва",
"headId":
"f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"dhru8vj3-mfk3-3ht9-5mdl23jvia93",
"name": "до МКАД",
"headId":
"ound48f3-dubh-84j3-kd93-lemvu80a3j32",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "58sk20ck-kpme-59vj-fjx8-fk38xjvluu4n",
"name": "за МКАД",
"headId":
"ound48f3-dubh-84j3-kd93-lemvu80a3j32",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
]
},
{
"id":
"jwic9v08-djw8-j301-соид-alvi48dn48fn",
"name":
"Воронежская область",
"headId":
"f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"anf8ch39-fj39-js2l-ybn3-l49xn2kr9lln",
"name": "г.Воронеж",
"headId":
"jwic9v08-djw8-j301-соид-alvi48dn48fn",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "vo3nd240-vjs4-k5mi-fjn1-jc3kg49hsn6v",
"name":
"г.п.Нижекисляйское",
"headId": "jwic9v08-djw8-j301-соид-alvi48dn48fn",
"level":
3,
"defaultRegion": false,
"inferiors": [
{
"id": "cfaee4e3-ba20-4462-9def-cebde1a762b3",
"name": "2 г.п.Нижекисляйское",
"headId":
"vo3nd240-vjs4-k5mi-fjn1-jc3kg49hsn6v",
"level": 4,
"defaultRegion": false,
"inferiors": [
{
"id":
"fae80693-fdfa-4f4a-a633-6443fcbc7cac",
"name": "3
г.п.Нижекисляйское",
"headId": "cfaee4e3-ba20-4462-9def-cebde1a762b3",
"level": 5,
"defaultRegion": false,
"inferiors": [
{
"id":
"80539850-f7bd-4e16-a6c9-e5c813d1eeda",
"name": "4 г.п.Нижекисляйское",
"headId": "fae80693-fdfa-4f4a-a633-6443fcbc7cac",
"level": 6,
"defaultRegion": false,
"inferiors": [
{
"id":
"31d2d0bc-8941-4839-b677-b070cfc9128c",
"name": "",
"headId": "80539850-f7bd-4e16-a6c9-e5c813d1eeda",
"level": 7,
"defaultRegion": false,
"inferiors":
[
{
"id": "d22861a2-02ed-46dc-8f4b-10c91bf526f9",
"name": "6 Нижекисляйское",
"headId":
"31d2d0bc-8941-4839-b677-b070cfc9128c",
"level": 8,
"defaultRegion": false,
"inferiors": []
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"id":
"fj3j0x2k-kwu7-dj39-sh38-fjwux73h2j1k",
"name":
"г.Санкт-Петербург",
"headId":
"f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"level":
2,
"defaultRegion": false,
"inferiors": []
},
{
"id":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"name":
"Московская область",
"headId":
"f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"d94b10fa-0d81-4b4c-8203-7061cd0a412d",
"name": "Домодедово",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "438d6919-5769-4d8d-93f3-9765508d357a",
"name": "Мытищи",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "fe0729b2-fa41-44cb-9634-0b156655f2ea",
"name": "Балашиха",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": true,
"inferiors": []
}
]
},
{
"id":
"03099693-03ef-4318-95ae-e694e3ab98a8",
"name":
"Саратовская область",
"headId":
"f84jwl59f-kol3-94j2-u4jr-je9fjan350kf",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"6c276d96-6485-4706-aa6a-661eba7f560f",
"name": "г. Саратов",
"headId":
"03099693-03ef-4318-95ae-e694e3ab98a8",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
]
}
]
},
{
"id":
"04773181-d788-4905-8d39-2881a6168446",
"name": "Venkatanarasimharajuvaripeta",
"level": 1,
"defaultRegion": false,
"inferiors": [
{
"id": "ef2a84ea-ba65-4a54-bc41-47c6de9eb2bb",
"name": "2 уровень новый город",
"headId": "04773181-d788-4905-8d39-2881a6168446",
"level": 2,
"defaultRegion": false,
"inferiors": [
{
"id":
"506796f6-45e1-4586-8c8d-2fcd9e0e809d",
"name": "3 уровень еще один город",
"headId":
"ef2a84ea-ba65-4a54-bc41-47c6de9eb2bb",
"level": 3,
"defaultRegion": false,
"inferiors": [
{
"id":
"42fa1849-9730-4585-812d-10541498db23",
"name": "4 уровень город",
"headId":
"506796f6-45e1-4586-8c8d-2fcd9e0e809d",
"level": 4,
"defaultRegion": false,
"inferiors": []
}
]
}
]
}
]
},
{
"id":
"275e749f-c81c-4f8f-a36c-e5e02438d8f0",
"name": "Беларусь",
"level": 1,
"defaultRegion": false,
"inferiors": [
{
"id":
"1150bb7a-8be5-4c7e-9f0c-5ba355ffee24",
"name":
"Брестсткая область",
"headId":
"275e749f-c81c-4f8f-a36c-e5e02438d8f0",
"level":
2,
"defaultRegion": false,
"inferiors": []
},
{
"id":
"1150bb7a-8be5-4c7e-9f0c-5ba355ffee23",
"name":
"Минская область",
"headId":
"275e749f-c81c-4f8f-a36c-e5e02438d8f0",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"959dc973-fa40-4e43-9854-d34ba3468ec6",
"name": "Молодечно",
"headId":
"1150bb7a-8be5-4c7e-9f0c-5ba355ffee23",
"level": 3,
"defaultRegion": false,
"inferiors": [
{
"id":
"e3cb003e-376f-48b0-9b35-82f22123f9da",
"name": "улица Мира",
"headId":
"959dc973-fa40-4e43-9854-d34ba3468ec6",
"level": 4,
"defaultRegion": false,
"inferiors": []
}
]
}
]
}
]
},
{
"id":
"f0d33b0c-f190-4fc6-a0a0-e2f3d47e0be5",
"name": "Регион 1 уровня",
"level": 1,
"defaultRegion": false,
"inferiors": [
{
"id":
"c8459666-d9a5-4bc8-b577-525ca84c3777",
"name":
"Регион 2 уровня измененный",
"headId":
"f0d33b0c-f190-4fc6-a0a0-e2f3d47e0be5",
"level":
2,
"defaultRegion": false,
"inferiors": [
{
"id":
"u590bjdm-b450-e3k4-df9а-fj588dh3ncj3",
"name": "Регион 3 уровня",
"headId":
"c8459666-d9a5-4bc8-b577-525ca84c3777",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
]
}
]
},
{
"id":
"fjtndk54-fk33-f89s-lkfn49vl3jvk",
"name": "5 Кисляйское",
"level": 1,
"defaultRegion": false,
"inferiors": []
}
]
200 - операция выполнена успешно, получены данные о иерархии регионов
- Получение списка регионов для быстрого выбора - GET запрос, /v1/regions/fast-select
Отсутствуют.
[
{
"id": "fe0729b2-fa41-44cb-9634-0b156655f2ea",
"name": "Балашиха",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": true,
"inferiors": []
},
{
"id": "6c276d96-6485-4706-aa6a-661eba7f560f",
"name": "г. Саратов",
"headId":
"03099693-03ef-4318-95ae-e694e3ab98a8",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "959dc973-fa40-4e43-9854-d34ba3468ec6",
"name": "Молодечно",
"headId":
"1150bb7a-8be5-4c7e-9f0c-5ba355ffee23",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "506796f6-45e1-4586-8c8d-2fcd9e0e809d",
"name": "3 уровень еще один город",
"headId":
"ef2a84ea-ba65-4a54-bc41-47c6de9eb2bb",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "438d6919-5769-4d8d-93f3-9765508d357a",
"name": "Мытищи",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "d94b10fa-0d81-4b4c-8203-7061cd0a412d",
"name": "Домодедово",
"headId":
"2815c9c8-c74a-4f22-8fa1-c78925bda53a",
"level": 3,
"defaultRegion": false,
"inferiors": []
},
{
"id": "58sk20ck-kpme-59vj-fjx8-fk38xjvluu4n",
"name": "за МКАД",
"headId":
"ound48f3-dubh-84j3-kd93-lemvu80a3j32",
"level": 3,
"defaultRegion": false,
"inferiors": []
}
]
-
200 - операция выполнена успешно, получен список регионов для быстрого выбора
- Создание региона - POST запрос, /v1/regions
Отсутствуют.
{
"name": "Smolensk2",
"headId": "5f8a299b-7551-4ded-998d-6639758f6887",
"defaultRegion": true
}
В ответе приходит только код операции, например, 201.
- 201 - операция выполнена успешно, новый регион создан
- 400 - ошибка, не удалось создать регион, невалидные данные
- Изменение региона - PATCH запрос, /v1/regions/{Id}
id - query-параметр: идентификационный номер региона
{
"name": "Smolensk3",
"defaultRegion": false
}
В ответе приходит только код операции, например, 204.
- 204 - операция выполнена успешно, данные региона изменены
- 400 - ошибка, не удалось обновить информацию о регионе, невалидные данные