Формат запроса:
{host:port}/app-portal/api/service?s=<sessionId>
s
- идентификатор текущей сессии.
В теле запроса передается JSON или XML с описанием вызова метода.
- Формат JSON
-
В качестве заголовка
Content-Type
следует использовать значениеapplication/json
.{ "service": "refapp_PortalTestService", "method": "updateCarVin", "view": "carEdit", "params": { "param0": { "id": "ref$Car-32261b09-b7f7-4b8c-88cc-6dee6fa8e6ab", "vin": "WV00001", "colour" : { "id": "ref$Colour-b32a6412-d4d9-11e2-a20b-87b22b1460c7", "name": "Red" }, "driverAllocations": [ { "id": "ref$DriverAllocation-b32e43e8-d4d9-11e2-8c8b-2b2939d67fff" }, { "id": "NEW-ref$DriverAllocation" } ] }, "param1": "WV00001", "param0_type": "com.haulmont.refapp.core.entity.Car", "param1_type": "java.lang.String" } }
Свойства передаваемого объекта:
service
- имя вызываемого сервиса.method
- имя вызываемого метода.param0 .. paramN
- значения параметров метода.param0_type .. paramN_type
- типы параметров метода.
- Формат XML
-
В качестве заголовка
Content-Type
следует использовать значениеtext/xml
.<ServiceRequest xmlns="http://schemas.haulmont.com/cuba/restapi-service-v2.xsd"> <service>refapp_PortalTestService</service> <method>updateCarVin</method> <view>carEdit</view> <params> <param name="param0"> <instance id="ref$Car-32261b09-b7f7-4b8c-88cc-6dee6fa8e6ab"> <field name="vin">WV00000</field> <reference name="colour"> <instance id="ref$Colour-b32a6412-d4d9-11e2-a20b-87b22b1460c7"> <field name="name">Red</field> </instance> </reference> <collection name="driverAllocations"> <instance id="ref$DriverAllocation-b32e43e8-d4d9-11e2-8c8b-2b2939d67fff"/> <instance id="NEW-ref$DriverAllocation"/> </collection> </instance> </param> <param name="param1">WV00001</param> <param name="param0_type">com.haulmont.refapp.core.entity.Car</param> <param name="param1_type">java.lang.String</param> </params> </ServiceRequest>
Основные элементы передаваемого документа:
service
- имя вызываемого сервиса.method
- имя вызываемого метода.param
- значение параметра метода или тип параметра. Имя параметра (атрибутname
) должно быть видаparam0 .. paramN
илиparam0_type .. paramN_type
.
Если сервис имеет лишь один метод с указанным именем и количеством параметров, то явное определение типов параметров не обязательно. В противном случае указывать типы параметров необходимо.
Элемент
<param>
может содержать в себе как текст (для задания значений простых типов данных), так и вложенный элемент<instance>
для сущности или<instances>
для коллекции сущностей.XSD запроса доступна по адресу http://schemas.haulmont.com/cuba/5.6/restapi-service-v2.xsd