Создание правила разбора
Запрос
| Тип | Метод |
|---|---|
POST |
/sources_pipelines/create |
Описание: При выполнении запроса будет создано правило разбора с заданными параметрами.
Из поля normalizers создаются связи с полями события (маппинг). Для поиска маппинга используется поле normalizers.field, если маппинг не найден, создаётся новый, со следующими параметрами:
{
"field_path": "<normalizers.field>",
"type": "<normalizers.type>"
}
Пример запроса
POST
http://127.0.0.1/cruddy/v2/sources_pipelines/create
Тело запроса:
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| name | string |
Required | Название правила разбора |
| source_id | string |
Required | Идентификатор источника, события от которого обрабатываются правилом разбора |
| raw | string |
Required | Пример сырого события от источника |
| is_active | boolean |
Required | Признак, активно ли правило при разборе событий от источника |
| is_root | boolean |
Required | Признак, является ли правило безусловно применяемым для источника |
| order | integer |
Required | Порядок исполнения правила при разборе событий от источника |
| filters | Array<Filters> |
Required | Фильтры потока событий от источника |
| parsers | Array<Parsers> |
Required | Механизмы разбора событий |
| normalizers | Array<Normalizers> |
Required | Механизмы нормализации разобранных событий |
Модель данных Filters
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | Идентификатор фильтра |
| field | string |
Required | Поле для проверки |
| ignore_case | boolean |
Required | Флаг сравнения строк без учета регистра |
| method | string |
Required | Функция сравнения |
| negation | string |
Required | Флаг отрицания результата фильтра |
| order | integer |
Required | Порядок применения фильтра |
| status | integer |
Required | Состояние фильтра |
| expressions | Array<object> |
Required | Выражения фильтра |
Модель данных Parsers
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | Идентификатор механизма разбора |
| type | string |
Required | Тип механизма разбора |
| field | string |
Required | Поле для разбора |
| method | string |
Required | Функция механизма разбора |
| negation | string |
Required | Метод разбора |
| order | integer |
Required | Порядок применения механизма разбора |
| status | integer |
Required | Состояние механизма разбора |
| expressions | Array<object> |
Required | Выражения механизма разбора |
Модель данных Normalizers
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | Идентификатор механизма нормализации |
| field | string |
Required | Поле события |
| type | string |
Required | Тип поля |
| method | string |
Required | Метод нормализации |
| order | integer |
Required | Порядок исполнения механизма нормализации |
| status | integer |
Required | Статус механизма нормализации |
| value | string |
Required | Значение |
| fn | string |
Required | Функция нормализации |
| params_fn | Array<string> |
Required | Параметры функции (поле отсутствует, если пустое) |
| req | boolean |
Required | Признак, обязательно ли исполнение механизма нормализации |
| field_path_stops | Array<string> |
Required | Элементы поля (field разбитое по ”.“) |
| field_path_len | integer |
Required | Число элементов поля |
Пример тела запроса
{
"name": "string",
"source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
"raw": "string",
"is_active": true,
"is_root": true,
"order": 0,
"filters": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"field": "string",
"ignore_case": true,
"method": "string",
"negation": "string",
"order": 0,
"status": 0,
"expressions": [
{}
]
}
],
"parsers": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "string",
"field": "string",
"method": "string",
"order": 0,
"status": 0,
"expressions": [
{}
]
}
],
"normalizers": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"field": "string",
"type": "string",
"method": "string",
"order": 0,
"status": 0,
"value": "string",
"fn": "string",
"params_fn": [
"string"
],
"req": true,
"field_path_stops": [
"string"
],
"field_path_len": 0
}
]
}
Успешный ответ
Статус код: 201 - успешное создание настройки.
Формат: JSON.
Тело ответа: модель созданного правила разбора.
Пример ответа
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"name": "string",
"source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
"raw": "string",
"is_active": true,
"is_root": true,
"order": 0,
"filters": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"field": "string",
"ignore_case": true,
"method": "string",
"negation": "string",
"order": 0,
"status": 0,
"expressions": [
{}
]
}
],
"parsers": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "string",
"field": "string",
"method": "string",
"order": 0,
"status": 0,
"expressions": [
{}
]
}
],
"normalizers": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"field": "string",
"type": "string",
"method": "string",
"order": 0,
"status": 0,
"value": "string",
"fn": "string",
"params_fn": [
"string"
],
"req": true,
"field_path_stops": [
"string"
],
"field_path_len": 0
}
]
}
Другие возможные ответы
| Код | Ответ | Описание |
|---|---|---|
400 |
Bad Request |
Неверный тип параметра запроса, либо отсутствует обязательный параметр |
409 |
Bad Request |
Попытка создать отчёт с существующим именем |
500 |
Internal Server Error |
Другие ошибки при удалении объектов |
Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.
Пример ответа
Код 400
{
"error": "Bad Request",
"error_code": 400
}
Код 409
{
"error": "Bad Request",
"error_code": 409,
"extra": {
"fields": [
"name"
]
}
}
Код 500
{
"error": "Internal Server Error",
"error_code": 500
}