Команды вызова внешних API позволяют обращаться к внешним ресурсам по протоколу http.
Поведение команды определяется параметрами, которые передаются в команду с использованием свойства parameters
команды.
Имя | Тип | Описание |
---|---|---|
url | string | Обязательно. Вызываемый url. Поддерживаются привязки. |
method | enum | Необязательно. http метод. get или post . По умолчанию - get . |
headers | object | Необязательно. Заголовки запроса. Объект, свойства которого будут добавлены как заголовки запроса. Имя свойства - имя заголовка, значение - значение заголовка. В значениях поддерживаются привязки. |
body | object |
Необязательно. Тело запроса. Может быть строкой или объектом. Поддерживаются привязки.
Если тело представляет собой объект, оно будет сериализованно в формат json .
|
Имеется возможность загрузки модели данных перед обращением к внешнему API. Это может быть нужно, если
какие-то свойства для обращения хранятся в БД. В этом случае нужно определить модель стандартным набором свойств
model
, schema
, source
.
Для того, чтобы в свойствах можно было использовать значения "снаружи", используются привязки. Привязка это просто путь к свойству, заключенный в двойные квадратные или круглые скобки.
Привязка | Тип | Описание |
---|---|---|
[[param]] | Параметры команды |
Значение из параметров команды. Обратите внимание, что это не свойство parameters , а параметры,
с которыми команда вызвана с клиента.
|
((key.prop)) | Окружение |
Значение из appSettings файла конфигурации. key представляет cобой имя ключа,
а prop - свойство. Значение appSettings должно быть представлено в формате json .
|
{{path}} | Модель данных |
Свойство из модели данных. path представляет cобой путь к свойству в модели данных.
Допустимо только в случае загрузки модели данных перед выполнением команды.
|
Пусть, например мы хотим узнать погоду с помощью сервиса openweathermap. Город, в котором мы хотим узнать
погоду будем передавать в параметре команды City
. Ключ для доступа к api будем хранить
в файле конфигурации приложения.
"commands": { "getWeather": { "type": "callApi", "parameters": { "url": "https://samples.openweathermap.org/data/2.5/weather?q=[[City]]&appid=((openweathermap.appid))", "method": "get" } }
web.config