-
Notifications
You must be signed in to change notification settings - Fork 1
Параметры запроса для списка
Apostol Developer edited this page Jan 20, 2022
·
11 revisions
Для конечных точек возвращающих данные в виде списка - /<endpoint>/list
и количества записей - /<endpoint>/count
применимо единое правило и следующее параметры:
Имя | Тип | Значение | Описание |
---|---|---|---|
fields | JSON | Массив строк | Список полей. Если не указан, вернёт все доступные поля. |
search | JSON | Массив объектов | Условия для отбора данных. |
filter | JSON | Объект | Фильтр для отбора данных в виде пары ключ/значение. В качестве ключа указывается имя поля. filter является краткой формой search . |
reclimit | INTEGER | Число | Возвращает не больше заданного числа строк (может быть меньше, если сам запрос выдал меньшее количество строк). По умолчанию: 500. Что-бы отключить reclimit нужно передать значение <= 0. Для запросов /<endpoint>/count , условие reclimit: 0 добавляется автоматически. |
recoffset | INTEGER | Число | Пропускает указанное число строк в запросе. |
orderby | JSON | Массив строк | Порядок сортировки (список полей). Допустимо указание ASC и DESC (["field1", "field2 ASC", "field3 DESC"] ) |
Расшифровка параметра search
:
Ключ | Тип | Обязательный | Описание |
---|---|---|---|
condition | STRING | НЕТ | Условие. Может принимать только два значения AND (по умолчанию) или OR . |
field | STRING | ДА | Наименование поля, к которому применяется условие. |
compare | STRING | НЕТ | Сравнение. Может принимать только одно из значений: (EQL , NEQ , LSS , LEQ , GTR , GEQ , GIN , AND , OR , XOR , NOT , ISN , INN , LKE , IKE , SIM , PSX , PSI , PSN , PIN ). |
value | STRING | ДА/НЕТ | Искомое значение. |
valarr | JSON | ДА/НЕТ | Искомые значения в виде массива. Если указан ключ valarr , то ключи compare и value игнорируются. |
lstr | STRING | ( |
Левая скобка. |
rstr | STRING | ) |
Правая скобка. |
Формат compare
:
Значение | Описание |
---|---|
EQL | Равно (по умолчанию). |
NEQ | Не равно. |
LSS | Меньше. |
LEQ | Меньше или равно. |
GTR | Больше. |
GEQ | Больше или равно. |
GIN | Для поиска вхождений JSON. |
AND | Битовый AND . |
OR | Битовый OR . |
XOR | Битовый XOR . |
NOT | Битовый NOT . |
ISN |
IS NULL (если значение равно null). Ключ value должен быть опушен (не указан). |
INN |
IS NOT NULL (если значение не равно null). Ключ value должен быть опушен (не указан). |
LKE |
LIKE - Значение ключа value должно передаваться вместе со знаком % в нужном месте. |
IKE |
ILIKE - Регистр-независимый LIKE . |
SIM | Регулярные выражения: SIMILAR TO
|
PSX | Регулярное выражение POSIX: ~
|
PSI | Регулярное выражение POSIX: ~*
|
PSN | Регулярное выражение POSIX: !~
|
PIN | Регулярное выражение POSIX: !~*
|
Примеры:
POST /api/v1/object/geolocation/list HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg
{"filter": {"object": "00000000-0000-4000-a000-000000000000", "code": "default"}}
POST /api/v1/address/list HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg
{"fields": ["description"], "search": [{"field": "apartment", "compare": "GEQ", "value": "5"}]}
POST /api/v1/admin/session/list HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg
{"search": [{"field":"userid","value":"00000000-0000-4000-a001-000000000001", "lstr": "("},{"field":"userid","value":"00000000-0000-4000-a001-000000000002","condition":"OR", "rstr": ")"},{"field":"created","compare":"GEQ","value":"01.01.2022"},{"field":"created","compare":"LSS","value":"31.12.2022"}]}
Что эквивалентно следующему SQL-запросу:
SELECT *
FROM api.session
WHERE (userid = '00000000-0000-4000-a001-000000000001' OR userid = '00000000-0000-4000-a001-000000000002')
AND created >= '01.01.2022'
AND created < '31.12.2022'
ORDER BY created DESC
LIMIT 500