Для выполнения запроса необходимо выполнить GET запрос {host:port}/app-portal/api/query.<format>?e=<entity>&s=<sessionId>&q=<encoded query string>¶m1=<value 1>$param1_type=<type
1>¶mN=<value N>¶mN_type=<type N>&view=<viewName>&firstResult=<firstResult>&maxResults=<maxResults>
с параметрами:
-
e − имя сущности
-
q − строка запроса к данным на JPQL. Запрос может содержать параметры. Их значения указываются как значения одноименных параметров HTTP запроса.
-
s − идентификатор текущей сессии
-
view − опционально, представление, с которым требуется загружать данные
-
max − опционально, максимальное количество строк возвращаемых данных (аналогично JPA
setMaxResults
) -
first − опционально, номер первой строки возвращаемых данных (аналогично JPA
setFirstResult
)
format задает формат получения результата. Принимает два значения: xml
или json
.
Например:
http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&view=_local
http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c+where+c.name=:name&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&name=Петров
Для каждого из передаваемых параметров можно явно указать его тип, добавив в запрос одноименный параметр с суффиксом _type
. Например:
http://localhost:8080/app-portal/api/query.json?e=sales$Customer&q=select+c+from+sales$Customer+c+where+c.name=:name&s=748e5d3f-1eaf-4b38-bf9d-8d838587367d&name=Петров&name_type=string
Указание типа параметра не является обязательным, но позволяет избежать ошибок парсинга, если система не сможет определить тип.
В общем случае тип стоит указывать лишь для строковых параметров, которые по какой-либо причине имеют формат более узких типов (дат, чисел, uuid), но должны интерпретироваться именно как строки.
Список доступных типов можно увидеть в описании мета-модели (пункт меню HTML-описание модели.
−> ) или получив