Описание: Список событий, отсортированных по времени перехвата (от новых к старым).
Метод: GET
Ресурс: event
Параметры:
filter- список фильтрации:date[from]—дата начала в формате UNIX-timestamp (можно использовать отдельно отdate[to])date[to]— дата окончания в формате UNIX-timestamp (можно использовать отдельно отdate[from])insert_date[>]—дата вставки начала в формате UNIX-timestamp и через точку microtime, напримерfilter[insert_date][>]=1234.123312-
insert_date[<]— дата вставки окончания в формате UNIX-timestamp и через точку microtime, напримерfilter[insert_date][<]=1234.123312 -
insert_date[>=]— дата вставки начала в формате UNIX-timestamp и через точку microtime, напримерfilter[insert_date][>=]=1234.123312(включительно) (с версии API 1.1) -
insert_date[<=]— дата вставки окончания в формате UNIX-timestamp и через точку microtime, напримерfilter[insert_date][<=]=1234.123312(включительно) (с версии API 1.1) -
rule_group_type[]— группа правил (с версии API 1.1) -
violation_level[]— уровень нарушения (с версии API 1.1) -
verdict[]— вердикт (с версии API 1.1) object_type_code[]— тип события (возможно несколько значений)protocol[]— протокол (возможно несколько значений)user_decision[]— решение пользователя (возможно несколько значений)object_size[from]— от скольки байт искать событие (можно использовать отдельно отobject_size[to])object_size[to]— до скольки байт искать событие (можно использовать отдельно отobject_size[from])protected_catalog_id[]— идентификатор каталога ОЗ (возможно несколько значений)tag_id[]— идентификатор тега (возможно несколько значений)
with[]- список дополнительных сущностей, которые должны быть добавлены к объекту (например: отправители, получатели и т.д.):protected_catalogsprotected_documentspoliciessenders_keyssendersrecipients_keysrecipientsworkstations_keysworkstationstags-
perimeters (с версии API 1.1) -
attachments(с версии API 1.1) -
files(с версии API 1.1) — недокументированный параметр, отдающий все контенты, в которых непустое поле FILE_NAME
without[]— дополнительные флагиcount— не считатьtotalCount(расчетtotalCountможет занимать больше половины времени запроса, поэтому лучше воспользоваться методомevent/stat)
headers[]— список дополнительных полей (заголовков) события (можно написать *, если нужны все). Список можно получить с помощью методаevent/header (с версии API 1.1)sort[]— недокументированное поле, позволяющее сортировать результат (получение событий замедляется существенно, для получения последнего/первого события лучше использовать методevent/stat. Возможные ключи:capture_date—asc(с версии API 1.1)/desc, например:?sort[capture_date]=desc-
insert_date—asc/desc, например:?sort[insert_date]=asc (с версии API 1.1)
start- с какой позиции начать отдавать события (по умолчанию 0)limit- сколько событий отдавать (по умолчанию 100, не может быть больше 1000)
Ответ: Список событий, отсортированный по времени перехвата (от новых к старым).
Примеры:
Получить первые 100 событий с за январь 2015 года:
GET /xapi/event?filter[date][from]=1420059600&filter[date][to]=1422737999&start=0&limit=100 X-API-Version: 1 X-API-CompanyId: iw X-API-ImporterName: aplab X-API-Auth-Token: gla20dos1pcdbr69caxz
Алгоритм при первом получении событий:
- Определить, с какого времени нужно получать события. Например, получить из статистики событий (GET /xapi/event/stat) интервал INSERT_DATE.
- Разделить интервал на меньшее из значений: количество потоков (но не более 32) или количество ядер на сервере.
- В каждом потоке составить и запустить первый запрос на получение списка события вида:
GET /xapi/event?without[]=count&filter[insert_date][>=]={минимум_интервала}&filter[insert_date][<=]={максимум_интервала}&sort[insert_date]=asc&limit=1000 - В полученном списке запомнить все OBJECT_ID.
- В полученном списке найти последнюю INSERT_DATE и использовать её в запросе из пункта 3, в качестве
минимум_интервала. - В полученном новом списке исключить события, которые запомнили в предыдущей итерации.
- Если не дошли до
максимум_интервала, снова начать с пункта 4. - Сохранить в персистентное хранилище:
- максимальное значение INSERT_DATE, полученное из пункта 1.
- список OBJECT_ID из интервала, в который входит максимальное значение INSERT_DATE.