Микросервис event-history

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

Микросервис event-history предоставляет функциональность по управлению историей действий пользователя.

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

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

В работе микросервиса участвует сущность Event (Событие), которая содержит информацию о действии пользователя:

  • ID пользователя
  • сущность, к которой относится совершенное действие (например, Availability (Остатки))
  • статус завершенности
  • время совершения действия
  • описание действия

Аутентификация Copy-icon

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

Service context path Copy-icon

/api/event-history/

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

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

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

По умолчанию

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

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

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

 

{
  "env": {
    "ELASTICSEARCH_URL": "url_elasticsearch",
    "KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka"
  }
}

Copy-icon

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

Работа с событиями

  • Получение страницы событий - POST запрос, /v1/events/page
Request body sample

{
   "sort":[
      {
         "sortBy":"startDate",
         "direction":"ASC"
      }
   ],
   "page":0,
   "size":10,
   "filter":{
      
   }
}

Copy-icon
Response sample
{
  "userId": "2b2f6c0e-02e6-4070-b361-c73b944eb6a5",
  "entity": {
    "id": "2b2f6c0e-02e6-4070-b361-c73b944eb6a5",
    "type": "Availability"
  },
  "type": "CREATE",
  "completionStatus": "ERROR",
  "timestamp": "2024-08-28T13:42:56.324Z",
  "payload": {
    "key": "value"
  }
}
Copy-icon
Response codes

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

  • Получение списка событий - POST запрос, /v1/events/list
Request body sample

{
  "eventTypes": [
    "CREATE"
  ]
}

Copy-icon
Response sample

[
   {
      "userId":"202277231504942610",
      "entity":{
         "id":"b107eb95-0a50-471b-87a6-492a8d09407d",
         "type":"LOCATION"
      },
      "type":"CREATE",
      "completionStatus":"SUCCESS",
      "timestamp":"2024-08-19T07:45:24.659Z",
      "payload":{
         "event":"CREATE_LOCATION"
      }
   },
   {
      "userId":"202277231504942610",
      "entity":{
         "id":"04131019-0ebf-4dc0-a1cf-0e34713297ce",
         "type":"LOCATION"
      },
      "type":"CREATE",
      "completionStatus":"SUCCESS",
      "timestamp":"2024-08-19T07:45:47.073Z",
      "payload":{
         "event":"CREATE_LOCATION"
      }
   },
   {
      "userId":"202277231504942610",
      "entity":{
         "id":null,
         "type":"PROMO"
      },
      "type":"CREATE",
      "completionStatus":"SUCCESS",
      "timestamp":"2024-08-19T06:33:13.283Z",
      "payload":{
         "event":"CREATE_PROMO"
      }
   },
   {
      "userId":"202277231504942610",
      "entity":{
         "id":null,
         "type":"PRICE"
      },
      "type":"CREATE",
      "completionStatus":"ERROR",
      "timestamp":"2024-08-15T19:21:07.781Z",
      "payload":{
         "reason":"Article ID = 1073187DC  does not exist in catalog and delivery",
         "event":"CREATE_PRICE"
      }
   },
   {
      "userId":"202277231504942610",
      "entity":{
         "id":null,
         "type":"PRICE"
      },
      "type":"CREATE",
      "completionStatus":"ERROR",
      "timestamp":"2024-08-15T19:21:49.818Z",
      "payload":{
         "reason":"Article ID = 1073186DC does not exist in catalog and delivery",
         "event":"CREATE_PRICE"
      }
   }
]

Copy-icon
Response codes

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

  • Удаление событий по заданному признаку - DELETE запрос, /v1/events
Request parameters

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

Request body sample

{
   "eventTypes":[
      "UPDATE"
   ]
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, события удалены
  • 404 - ошибка, события не найдены

Работа с индексом

  • Получение всех индексов событий из поискового движка - GET запрос, /v1/indexes
Request parameters

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

Response sample
[
  "event-history",
  "event-history-2023"
]
Copy-icon
Response codes

200 - операция выполнена успешно, получены индексы

  • Удаление индекса из поискового движка - DELETE запрос, /v1/indexes/{indexName}
Request parameters

indexName - path-параметр, обязательный: название индекса, который нужно удалить

Copy-icon
Response sample

true

Copy-icon
Response codes
  • 200 - операция выполнена успешно, индекс удален
  • 404 - ошибка, индекс таким именем не найден

Связанные статьи

Микросервисы