Перейти к основному содержимому
Версия: 5.0

api

Описание

Выполняет запрос к внешним API.

Синтаксис

api [<connection>] [<query>] [<url>] [<method>] [<verify>] [<ssl>] [<ssl_type>] [<cert>] [<auth>] [<auth_type>] [<params>] [<headers>] [<timeout>] [<body>] [<body_type>]

Опциональные аргументы

ПараметрСинтаксисОписание
connectionconnection=<string>Название заранее определенного api подключения.
queryquery=<string>Название заранее определенного api запроса.
urlurl=<string>См. Обработка url.
method<string>Метод HTTP запроса, по умолчанию GET.
verifyverify=<boolean>При значении true осуществляется верификация имени хоста.
sslssl=<boolean>При значении true осуществляется валидация ssl.
ssl_typessl_type=<string>Тип ssl протокола. Может принимать значения ssl2.3, ssl3, tls, tls1.1, tls1.2, tls1.3.
certcert=<string>Путь до сертификата при использовании ssl.
authauth=<string>Токен авторизации.
auth_typeauth_type=<string>Тип авторизации. Может принимать значения basic, apiKey, bearer.
paramsparams=<string>Параметры запроса.
headersheaders=<string>Хедеры запроса.
timeouttimeout=<int>Таймаут запроса.
bodybody=<string>Body запроса.
body_typebody_type=<string>Тип body. Может принимать значения json, xml, javascript, html, text, binary.
предупреждение

Для работы команды обязательно должен быть определен url, или в подключении, или как аргумент url.

к сведению

При использовании api подключения или запроса и опциональных параметров, опциональные параметры имеют высший приоритет.

Обработка URL

При формировании итогового URL происходит обработка URL из аргументов connection и query. Если query содержит полный URL, он используется без изменений. Если URL относительный, из connection берется только значение хоста, и к нему добавляется путь из query.

Аргумент url

Если задан аргумент url, его значение заменяет URL из query и обрабатывается по тем же правилам: полный URL используется как есть, а относительный путь объединяется с хостом из connection.

Токенизация params и headers

При использовании аргументов params и headers можно использовать токены из keystore.

к сведению

Токены для headers должны храниться в keystore по пути sme.sa.api.header.<token_name>, токены для params по пути sme.sa.api.param.<token_name> соответственно. Вместо <token_name> необходимо указать название токена, например my_authorization.

Создание токена

Для создания токена с типом header и названием my_authorization необходимо выполнить запрос к keystore. В значении поля value нужно указать значение, которое будет подставляться вместо токена в запросе.

POST _core/keystore/sme.sa.api.header.my_authorization
{
"value": "Basic "
}

Использование токена

Для использования токена команды api в поисковом запросе, его название необходимо указать в двойных фигурных скобках.

| api connection=my-connection headers="Authorization={{my_authorization}}"

Примеры запросов

Пример 1

Запрашивает указанный в параметре url api и возвращает документы, содержащие информацию о пользователях.

| api url="https://jsonplaceholder.typicode.com/users" 

Пример 2

В соединении json указан базовый URL https://jsonplaceholder.typicode.com/, к нему добавляется путь до ресурса из параметра url.

| api connection=json url="/todos"

Пример 3

Выполняет запрос с использованием заранее определенных api подключения и запроса.

| api connection=my-connection query=my-query

Пример 4

Выполняет запрос с использованием заранее определенных api подключения и запроса, но с отключенной валидацией ssl.

| api connection=my-connection query=my-query ssl=false