Микросервис event-history
Микросервис event-history предоставляет функциональность по управлению историей действий пользователя.
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса участвует сущность Event (Событие), которая содержит информацию о действии пользователя:
- ID пользователя
- сущность, к которой относится совершенное действие (например, Availability (Остатки))
- статус завершенности
- время совершения действия
- описание действия
Аутентификация
При обращении к микросервису через API в запросах на удаление необходимо в заголовке Authorization указывать токен: Authorization: Bearer <токен>
.
Service context path
/api/event-history/
Настройки и параметры конфигурации
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "XXm",
"JAVA_XMX": "YYYm"
}
}
//пример взят с тестового стенда
{
"env": {
"ELASTICSEARCH_URL": "url_elasticsearch",
"KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka"
}
}
Методы микросервиса
Работа с событиями
- Получение страницы событий - POST запрос, /v1/events/page
{
"sort":[
{
"sortBy":"startDate",
"direction":"ASC"
}
],
"page":0,
"size":10,
"filter":{
}
}
{
"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"
}
}
200 - операция выполнена успешно, получена страница со списком событий
- Получение списка событий - POST запрос, /v1/events/list
{
"eventTypes": [
"CREATE"
]
}
[
{
"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"
}
}
]
200 - операция выполнена успешно, получен список событий
- Удаление событий по заданному признаку - DELETE запрос, /v1/events
Отсутствуют.
{
"eventTypes":[
"UPDATE"
]
}
- 200 - операция выполнена успешно, события удалены
- 404 - ошибка, события не найдены
Работа с индексом
- Получение всех индексов событий из поискового движка - GET запрос, /v1/indexes
Отсутствуют.
[
"event-history",
"event-history-2023"
]
200 - операция выполнена успешно, получены индексы
- Удаление индекса из поискового движка - DELETE запрос, /v1/indexes/{indexName}
indexName - path-параметр, обязательный: название индекса, который нужно удалить
true
- 200 - операция выполнена успешно, индекс удален
- 404 - ошибка, индекс таким именем не найден