Микросервис 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 - ошибка, не удалось обновить информацию о регионе, невалидные данные
 
     
    