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

Поиск источников

Запрос

Тип Метод
POST /input_sources/search

Описание: При выполнении запроса будут возвращены найденные источники с учётом заданных фильтров.

По умолчанию в объекты не загружаются связанные модели по типам связи many2many и has-many, для включения загрузки их нужно указывать в поле relations объекта запроса.

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

Поле _relations запроса расширяет поле relations для связей кроме один-к-одному, т.е. сущности, указанные в последнем поле, появятся в ответе в поле _relations в любом случае.

Пример запроса

POST
http://127.0.0.1/cruddy/v2/input_sources/search

Тело запроса:

Параметр Тип данных Обязательность Описание
include_fields Array<string> Required Список полей для выборки.
Если модель содержит поля, не указанные в запросе, они будут отсутствовать в ответе
exclude_fields Array<string> Required Список полей для удаления из выборки.
Если модель содержит поля, указанные в запросе, они будут отсутствовать в ответе
filters Array<filters> Required Список фильтров по полям модели
ordering Array<ordering> Required Настройки сортировки
virtual_search object<virtual_search> Required Поле для поиска по подстроке по всем строковым полям модели и настройка строгого поиска
extension_params object<extension_params> Required Информация по связанным объектам
relations Array<string> Required Список связей для выборки. Список доступных связей отображается в ответе запроса на получение метаданных - “/_meta”
limit integer Required Лимит выдачи найденных объектов
offset integer Required Отступ от начала результата поиска в базе
_relations Array<string> Optional Перечисление связанных сущностей идентификаторы которых нужно вернуть в ответе в поле _relations
Array of filters
Параметр Тип данных Обязательность Описание
field string Required Название поля модели
value object Required Значение для фильтрации
filter_type string Required В зависимости от этого значения определяется допустимые значения в поле value. Допустимые значения:
- equal -> строка|число, проверяет равенство значений
- substr -> строка, проверяет вхождение подстроки
- intersection -> массив (тип элемента зависит от типа поля), проверяет вхождение значения поля в переданный массив
- range -> массив (тип элемента зависит от типа поля), проверяет вхождение значения поля в переданный диапазон
- related -> строка или массив строк (uuid), проверят связанность с моделью по идентификатору
если value: [], проверяет наличие или отсутствие связанных сущностей
- exists -> значение отсутствует, проверяется равенство колонки с null
negation boolean Optional Флаг использования отрицания при проверке фильтра
Array of ordering
Параметр Тип Обязательность Описание / Допустимые значения
field string Required Поле модели выбранное для сортировки
direction string Required Направление сортировки. Допустимые значения:
- asc
- desc
Параметр Тип Обязательность Описание / Допустимые значения
value string Required Значение выбранное для поиска
strict boolean Required Опция, включающая строгий поиск. Возможные значения:
- true - строгий поиск включена;
- false - строгий поиск выключен.
Object Extension_params
Параметр Тип Обязательность Описание / Допустимые значения
chidlrens_all boolean Required Получить всех детей объекта
parents_all boolean Required Получить цепочку родителей объекта
Пример тела запроса

{
  "include_fields": [
    "string"
  ],
  "exclude_fields": [
    "string"
  ],
  "filters": [
    {
      "field": "string",
      "value": [
        "name",
        [
          "value1",
          "value2"
        ]
      ],
      "filter_type": "equal",
      "negation": false,
      "extension_params": {
        "children_all": true,
        "parents_all": true
      }
    }
  ],
  "ordering": [
    {
      "field": "string",
      "direction": "asc"
    }
  ],
  "virtual_search": {
    "value": "string",
    "strict": false
  },
  "extension_params": {
    "chidlrens_all": true,
    "parents_all": true
  },
  "relations": [
    "service_asset_findings",
    "logmule_go_rules",
    "user"
  ],
  "limit": 20,
  "offset": 0,
  "_relations": [
    "string"
  ]
}

Успешный ответ

Статус код: 200 – успешный ответ.

Формат: JSON.

Параметры ответа:

Параметр Тип данных Описание
items Array<InputSource> Список найденных источников
total integer Количество найденных источников
Пример ответа

[
  {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "string",
    "data": {
      "items": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "created_at": "2025-02-21T11:33:03.241694Z",
          "updated_at": "2025-03-27T15:18:23.118238Z",
          "trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
          "name": "string",
          "source_type": "string",
          "vendor": "string",
          "port": 0,
          "is_active": true,
          "display_name": "string",
          "check_min": true,
          "check_min_value": 0,
          "check_max": true,
          "check_max_value": 0,
          "no_raw": true,
          "input_type": "raw-json",
          "pipelines": [
            {}
          ],
          "_relations": {}
        }
      ],
      "total": 1
    },
    "error": 0,
    "status_code": 200,
    "time": 0,
    "version": "4.0.0-main"
  }
]

Другие возможные ответы

Код Ответ Описание
400 Bad Request Неверный тип параметра запроса, либо отсутствует обязательный параметр
500 Internal Server Error Другие ошибки сервера

Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.

Пример ответа
Код 400

{
  "error": "Bad Request",
  "error_code": 400
}

Код 500

{
  "error": "Internal Server Error",
  "error_code": 500
}