Команды вызова внешних 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