Запрос данных таблиц
- Запрос на получение данных таблиц осуществляется при помощи метода (поле “method”) getTableDataPredicate.
В качестве параметров (поле “params”) указывается следующее:
entityName
- наименование таблицыschemaName
- наименование схемыaggregate
- блок задания агрегирующих функцийlimit
- объем выборкиoffset
- номер записи, с которой начать выборкуprimaryKey
- наименование поля - первичного ключаcurrentKey
- текущее значение первичного ключа. Его можно не задавать, но если задано - то параметр offset игнорируется и вернется именно та страница данных, на которой есть запись с указанным значениемjoin
- таблицы, которые необходимо присоединить к результатам запроса. Для каждой таблицы указывается:schema
- имя схемыentity
- имя таблицыkey
- поле основной таблицы, по которому соединяемentityKey
- поле присоединяемой таблицыtable_alias
- псевдоним, который присваивается присоединяемой таблицеparent_table_alias
- псевдоним основной таблицыvirtual
- признак, если присоединяется виртуальное поле таблицы
fields
- поля для загрузки. Для каждого поля определяется:table_alias
- псевдоним таблицы, которой принадлежит данное полеsubfields
- поля связанной с данным полем таблицы, которые следует отобразить вместо него (если поле является внешним ключом)subfields_table_alias
- соответствующие subfields псевдонимы таблицsubfields_navigate_alias
- псевдоним базовой таблицыsubfields_key
- ключ базовой таблицы
- predicate - предикат
operands
- операндыlevelup
- используется для многоуровневых условийfield
- полеpath
- игнорируетсяop
- оператор (см. значения в Фильтрации по умолчанию).value
- второй операндsearch_in_key
- искать данные также и в ключеtable_alias
- псевдоним таблицы, в которой находится полеstrict
- истина, если операнды соединяются по “И”
[
{
"entityName": "ticket_flights",
"schemaName": "bookings",
"predicate": {
"strict": true,
"operands": [
{
"levelup": false,
"operand": {
"field": "fare_conditions",
"path": [
"fare_conditions"
],
"op": "EQ",
"value": "Economy",
"search_in_key": false,
"table_alias": "t"
}
},
{
"levelup": false,
"operand": {
"field": "amount",
"path": [
"amount"
],
"op": "G",
"value": "25000",
"search_in_key": false,
"table_alias": "t"
}
}
]
},
"aggregate": [
{
"func": "avg",
"field": "amount"
}
],
"limit": "10",
"offset": 20,
"primaryKey": "ticket_no",
"currentKey": "",
"fields": {
"ticket_no": {
"table_alias": "t",
"subfields": null,
"hidden": false
},
"flight_id": {
"table_alias": "t",
"subfields": [
"flight_no",
"airport_code"
],
"subfields_navigate_alias": "t0",
"subfields_table_alias": [
"t0",
"t1"
],
"subfields_key": "flight_id"
},
"fare_conditions": {
"table_alias": "t"
},
"amount": {
"table_alias": "t"
}
},
"join": [
{
"key": "flight_id",
"virtual": false,
"schema": "bookings",
"entity": "flights",
"table_alias": "t0",
"parent_table_alias": "t",
"entityKey": "flight_id"
},
{
"key": "departure_airport",
"virtual": false,
"schema": "bookings",
"entity": "airports_data",
"table_alias": "t1",
"parent_table_alias": "t0",
"entityKey": "airport_code"
}
],
"order": [],
"process": null,
"functions": [],
"format": "array",
"desc": "Загрузка таблицы \"Flight segment\""
}
]
Если запрос прошел успешно, то в ответ сервер пришлет следующие данные:
{
"jsonrpc": "2.0",
"result": {
"data": [
[
"0005433805700",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433763343",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005434171107",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433785282",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433785263",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433763347",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433805688",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005434171043",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433763334",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
],
[
"0005433805706",
"{\"f1\":\"PG0356 LED\",\"f2\":\"9348\"}",
"Economy",
"62100.00"
]
],
"records": [
{
"count": "161039"
}
],
"offset": 20,
"fields": [
"ticket_no",
"flight_id",
"fare_conditions",
"amount"
],
"sql": "SELECT \"t\".\"ticket_no\", (row_to_json(row(COALESCE(t0.\"flight_no\"::text,'')||' '|| COALESCE(t1.\"airport_code\"::text,''), t0.\"flight_id\"::text))::text) collate \"C\" as \"flight_id\", \"t\".\"fare_conditions\", \"t\".\"amount\" FROM \"bookings\".\"ticket_flights\" as t left join \"bookings\".\"flights\" as \"t0\" on \"t\".\"flight_id\" = \"t0\".\"flight_id\" left join \"bookings\".\"airports_data\" as \"t1\" on \"t0\".\"departure_airport\" = \"t1\".\"airport_code\" where (\"t\".\"fare_conditions\" = 'Economy') AND (\"t\".\"amount\" > '25000') LIMIT 10 OFFSET 20",
"avg(amount)": [
{
"avg": "40528.439073764740"
}
]
},
"error": null,
"usename": "",
"pids": 0
}
error
- код ошибки со значением “null”;jsonrpc
- версия протокола со значением “2.0”;result
- данные, которые вернул метод:data
- непосредственно список записей таблицы;offset
- смещение записей, при запросе строк не с первой строки;records
- отображает количество записей таблицы;sql
- SQL-запрос к БД;
usename
- логин пользователя, если была осуществлена авторизация.