Перейти к содержанию

Создание правила разбора

Запрос

Тип Метод
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
}