Введение в REST
REST (Representational State Transfer) – это архитектурный стиль для распределённых вычислений, который работает в сочетании с протоколом передачи гипертекста (HTTP).
REST использует HTTP для коммуникации и не связан с каким-либо конкретным форматом сообщения, поэтому вы можете выбрать, например, формат JavaScript Object Notation (JSON), который уменьшает объём отправляемых данных, что приводит к повышению производительности сети. При использовании REST безопасность обеспечивается транспортным протоколом HTTPS.
REST — это простая альтернатива веб-сервисам, использующим протокол SOAP (Simple Object Access Protocol) или WSDL (Web Services Description Language). В результате REST стал самым распространённым способом вызова веб-сервисов для облачных приложений.
Что такое ресурс REST?
Ресурс REST — это представление объекта данных. Например, запись о клиенте в базе данных является представлением клиента. Ресурс REST сопоставляется один к одному с бизнес-объектом в OpenEdge. Бизнес-объект – это файл класса ABL или файл процедуры, который определяет бизнес-логику вокруг набора бизнес-данных (например, ProDataSet) необходимых для одного или нескольких бизнес-вариантов использования в бизнес-приложении. Вы можете иметь один или несколько ресурсов REST в одном приложении OpenEdge ABL.
Что такое REST URI?
URI (Uniform Resource Identifier) – это уникальные идентификатор ресурса, который подобен определённому адресу, используемому для идентификации конкретного веб-ресурса. Этот адрес должен быть предоставлен REST-клиенту, чтобы клиент мог вызвать REST-сервис.
Как показано на следующем рисунке, REST URI состоит из трёх частей: расположение развёртывания (deployment location), имя сервиса (service name) и имя ресурса (resource name), а также параметр пути (path parameter) или параметры запроса (query parameter).

Здесь:
- Расположение развёртывания – имя домена, где размещается веб-сервис, обеспечивающий доступ к веб-приложению.
- Имя сервиса и имя ресурса – указывают, где развёрнут веб-сервис; имя ресурса соответствует пользовательским процедурам или функциям.
- Параметр запроса – задаёт критерии поиска и ограничивает результат на подобие фильтра.
- Параметр пути – позволяет передавать данные ресурсу. Например, если вы намереваетесь передать customerID в сервис для получения информации о клиенте, то URI ресурса будет содержать «/customer/{custID}», в котором вместо custID вы передадите уникальный идентификатор клиента.
Методы HTTP в OpenEdge REST URI
В OpenEdge существует четыре основных метода HTTP для работы с REST-сервисами:
HTTP метод |
Операция |
Назначение |
POST | Create | Создание новой записи |
GET (default) | Retrieve | Возвращает запись на основе предоставленного идентификатора |
PUT | Update | Обновление существующей записи |
DELETE | Delete | Удаляет существующую запись |
Процесс работы с REST в OpenEdge
OpenEdge позволяет предоставлять части приложения ABL, запущенного на Progress Application Server for OpenEdge (PASOE), в качестве REST-сервисов. Доступ к этим сервисам может получить любой клиент, использующий REST. Рассмотрим, как работает REST в OpenEdge.
- Веб-приложение OpenEdge REST упаковывается в виде ZIP-файла, который создаётся в Progress Developer Studio for OpenEdge..
- Затем пакет приложения REST развёртывается на сервере приложений и становится доступным как веб-приложение OpenEdge REST. По умолчанию PAS for OpenEdge выступает в качестве веб-сервера.
- Веб-приложение REST включает в себя один или несколько REST-сервисов. REST-сервис может содержать один или несколько REST-ресурсов.
- Когда веб-приложение REST развёрнуто, REST-клиент может вызвать ресурс REST-сервиса используя соответствующий URI. Вызов представляет собой HTTP-запрос к PAS for OpenEdge.
- PAS for OpenEdge содержит встроенный REST-адаптер, который преобразует HTTP/S-запрос в ABL и передаёт его в ABL-приложение.
- После этого выполняется соответствующая HTTP-запросу ABL-операция, ответ от которой отправляется обратно в REST-сервис.
- REST-адаптер преобразует ответ в HTTP/S-ответ и отправляет его REST-клиенту.