Сопоставление параметров
Последний шаг в связывании REST- и ABL-операций – это сопоставление параметров. Методы REST-ресурсов содержат два разных типа сопоставления параметров:
- Сопоставление запросов
- Сопоставление ответов
Для каждого REST-метода необходимо сопоставить секции REST-запросов c входными ABL-параметрами и секции REST-ответов c выходными ABL-параметрами.
В REST-сервисе можно сопоставить параметры интерфейса с любыми секциями, присутствующими в HTTP-запросе или ответе, такими как:
- Заголовок (Header)
- Тело (Body)
- Куки (Cookie)
- Параметр строки запроса (Query string parameters)
- Параметр пути (Path parameter)
- Параметр формы (Form parameter)
В нашем тренинге пример приложения передаёт контекст через тело HTTP-сообщения, а также через параметр путь и параметр запроса.
Чтобы создать правило сопоставления, щёлкните секцию в разделе Request или Response и перетащите строку в требуемый параметр интерфейса (входной или выходной параметр ABL).
Далее вы узнаете, как использовать инструмент визуального сопоставления в редакторе REST Resource URI Editor для создания правил сопоставления.
В редакторе REST Resource URI Editor на вкладке Input можно сопоставить входные параметры из HTTP-запроса с операцией ABL.
При сопоставлении параметра запроса убедитесь, что вы сопоставили раздел HTTP-запроса, содержащий входные данные в формате, ожидаемом процедурой, методом или функцией. Например, если входной параметр процедуры требует целое число от параметра path вашего URI, то параметр path должен быть целым числом.
Помните, что вы не будете получать никаких предупреждений во время сопоставления. Однако во время выполнения, если вы передадите неверный тип параметра, вы получите исключение.
В редакторе REST Resource URI Editor, во вкладке Output, выполняется сопоставление выходных параметров ABL-операций c ответом HTTP.
Ответ HTTP состоит из:
- Строки состояния ответа, содержащей код ответа.
- Заголовок ответа, содержащий заголовки и cookie.
- Тело ответа.
Выходные данные процедуры, метода или функции ABL можно сопоставить с любой секцией HTTP-ответа.