#6075: Фильтры в API запросах
Отредактирована: 188 дней назадСимптомы
- Как использовать фильтры в API запросах?
- Как использовать фильтры в XML-RPC запросах?
- Как фильтровать ответы в API?
- Как использовать фильтр QueryFilterInfo filter в API?
Решение
В XML-RPC запросах можно указать фильтр QueryFilterInfo filter для того, чтобы сервер отфильтровал данные по нужным нам условиям. Фильтр имеет структуру:
{'query': 'поле оператор значение' }
Если фильтрация не нужна, то просто указываем пустой фильтр {}, например:
result = server.v1.firewall.rules.list(auth_token,0,10000,{})
Операторы в фильтре используются точно такие же, как и при поисковых запросах в веб-консоли.
| Оператор | Описание | Пример |
|---|---|---|
| = | Равно. Требует полного совпадения значения поля указанному значению | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'action = drop' }) |
| != | Не равно. Значение указанного поля не должно совпадать с указанным значением | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'action != drop' }) |
| and | Логическое И, требует выполнение всех условий, заданных в запросе | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'name !~ vpn and name !~ untrusted' }) |
| or | Логическое ИЛИ, требует выполнение одного из условий запроса | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'name !~ vpn or name !~ untrusted' }) |
| > | Больше. Значение поля должно быть больше указанного в запросе значения. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'pos > 3'}) |
| >= | Больше либо равно. Значение поля должно быть больше либо равны указанному в запросе значению. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'pos >= 3'}) |
| < | Меньше. Значение поля должно быть меньше указанного в запросе значения. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'pos < 3'}) |
| <= | Меньше либо равно. Значение поля должно быть меньше либо равны указанному в запросе значению. Может быть применимо только для полей, поддерживающих сравнения | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'pos <= 3'}) |
| in | Позволяет указать несколько значений поля в запросе | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'zoneSource in (trusted, dmz)'}) |
| not in | Позволяет указать несколько значений поля в запросе; будут отображены записи, не содержащие указанные значения | server.v1.firewall.rules.list(auth_token,0,10000,{'query':'zoneSource not in (trusted, dmz)'}) |
| ~ | Содержит. Позволяет указать подстроку, которая должна находиться в указанном поле | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'name ~ vpn' }) |
| !~ | Не содержит. Позволяет указать подстроку, которая не должна присутствовать в указанном поле | server.v1.firewall.rules.list(auth_token,0,10000,{'query': 'name !~ vpn' }) |
В фильтрах используются те же поля, что и в веб-консоли, а не поля, которые указаны в JSON-файле ответа на API запрос!
В веб-консоли список доступных полей можно получить нажав на значек вопроса в правой части строки поиска:
