Предположим, в системе имеется сервис OrderService, реализация которого выглядит следующим образом:
link:../../../../../source/features/OrderServiceBean.java[role=include]
Перед выполнением метода сервиса с помощью REST API необходимо разрешить его вызов в конфигурационном файле. В корневом пакете модуля web (например, com.company.sales
) необходимо создать файл rest-services.xml
. Затем этот файл объявляется в файле свойств приложения модуля web (web-app.properties):
cuba.rest.servicesConfig = +com/company/sales/rest-services.xml
Содержимое файла rest-services.xml
:
link:../../../../../source/rest/sales-rest-services.xml[role=include]
Для вызова метода сервиса, необходимо выполнить GET http-запрос к REST API вида:
http://localhost:8080/app/rest/v2/services/sales_OrderService/calculatePrice?orderNumber=00001
Части URL:
-
sales_OrderService
- имя сервиса -
calculatePrice
- имя метода сервиса -
orderNumber
- аргумент метода со значением
OAuth-токен должен быть передан в заголовке запроса Authorization
с типом Bearer.
Метод сервиса может вернуть как простой тип данных, так и сущность, коллекцию сущностей или произвольный POJO. В нашем случае метод возвращает BigDecimal, поэтому в теле ответа нам вернется число:
39.2