Аннотация ABL-ресурсов
Первым шагом является аннотирование ресурсов ABL в приложении ABL с помощью мастера создания интерфейса сервиса (Define Service Interface).
Для этого необходимо выполнить следующие действия в проекте, в котором вы хотите создать REST-сервис:
- Запустить мастер создания интерфейса сервиса для ABL-ресурса (класса или файла процедуры).
- Выбрать ABL-операции, которые необходимо аннотировать, чтобы представить их как REST-операции.
- Просмотреть и при необходимости отредактировать созданные аннотации.
Если у вас большое приложение, то для экономии времени Developer Studio позволяет аннотировать несколько файлов в рабочей области одновременно. Но помните, вы должны аннотировать только один и тот же тип файлов одновременно (файлы классов, файлы процедур, файлы внешних процедур). Это гарантирует, что аннотации будут включать правильный режим выполнения (singleton, single-run, external) для каждого типа файлов.
Процесс аннотации с помощью мастера создания интерфейса сервиса
Для аннотирования ABL-ресурса с помощью мастера создания интерфейса сервиса необходимо выполнить следующие действия:
Шаг |
Действие |
1. | В зависимости от ABL-ресурса, который вы хотите включить в REST-сервис, щёлкнуть правой кнопкой мыши по ABL-классу или процедурному файлу в окне Project Explorer. |
2. | Выбрать Progress OpenEdge > Define Service Interface. Откроется мастер создания интерфейса сервиса. |
3. | В раскрывающемся списке Definition mode выбрать REST. |
4. | В окне Project Explorer выбранный ABL-класс или процедурный файл будет помечен в списке процедур и классов рабочей области. Соответствующие операции (функции, процедуры и методы) будут перечислены справа. Выбрать операции, которые вы хотите аннотировать, и нажать кнопку Next.
Откроется страница Edit Annotation. |
5. | Просмотрите REST-аннотации, а затем нажмите кнопку Finish. Обратите внимание, в редакторе OpenEdge аннотации были добавлены к ABL-классу или процедуре. |
Аннотации REST
Аннотация REST делает класс ABL или файл процедуры доступным в качестве REST-ресурса.
Когда используется мастер создания интерфейса сервиса Developer Studio создаёт два типа REST-аннотаций:
- Основная REST-аннотация.
- Детальная REST-аннотация.
Аннотации всегда начинаются со знака “@”, поэтому компилятор обрабатывает их как комментарии. Аннотации не влияют на выполнение кода.
Основная аннотация REST отображается в верхней части файла класса, процедуры или внешней процедуры, предшествуя любому коду в файле.
Основная аннотация REST содержит следующие атрибуты:
- File
- Type
- executionMode
Значением атрибута executionMode могут быть:
- External – значение по умолчанию для внешней процедуры.
- Single-run – значение по умолчанию для процедуры, содержащей внутренние процедуры и/или пользовательские функции. Это значение позволяет вызывать внутренние процедуры и функции из процедурного файла.
- Singleton – значение по умолчанию для класса, содержащего методы. Это значение позволяет вызывать методы из файла класса или внутренние процедуры из процедурного файла.
В основной аннотации есть дополнительные параметры. Для получения подробной информации обратитесь к документации по Progress OpenEdge.
На скриншоте:
- FILE – указывает, что аннотацию следует применять к основной аннотации на уровне ABL-класса или процедуры.
- type=”REST” – указывает на тип аннотации.
- executionMode=”singleton” – указывает, как ABL-класс или процедура, или внешняя процедура выполняется на сервере приложений.
Детальная REST-аннотация добавляется перед каждой внутренней процедурой в файле процедур или перед каждым методом в файле класса.
Детальная REST аннотация содержит некоторые из тех же атрибутов, что и основная аннотация, но, кроме того, она предоставляет подробные сведения о том, как работает внутренняя процедура или метод.
Просмотр и редактирование аннотаций
При создании REST-сервиса с помощью мастера создания интерфейса сервиса страница редактирования аннотаций позволяет просмотреть добавленные к выбранным ABL-ресурсам аннотации.
В зависимости от ваших требований вы можете отредактировать аннотации, чтобы изменить режим выполнения. Например, для файла с внутренними процедурами можно задать режим выполнения single-run или singleton в зависимости от того, как вы хотите задать пользовательский контекст на сервере приложений.
Чтобы отредактировать аннотацию, нажмите кнопку Edit рядом с ней.
Редактировать аннотацию следует только на странице редактирования аннотаций. Никогда не редактируйте исходный файл.
Просмотр REST-сервиса в Project Explorer
После аннотирования ABL-ресурсов с помощью мастера создания интерфейса сервиса вы можете увидеть, что:
- Проект ABL преобразуется в проект REST. Кроме того, в проект добавляется папка RESTContent.
- Создаётся узел Defined Service, содержащий созданный REST-сервис. По умолчанию REST-сервис называется по имени проекта: <имя проекта> Service.
По умолчанию мастер создания интерфейса сервиса сохраняет резервную копию выбранных ABL-ресурсов без аннотаций в расположении по умолчанию. Если необходимо, то вы можете изменить расположение резервных копий.