Для отправки запросов к серверу можно использовать BPL-операции в блоке Выражение. Это позволяет использовать расширенный список HTTP-методов запроса и более гибко работать с ответом сервера через другие BPL-операции.
Используйте для отправки HTTP-запросов функцию http.request
. В отличие от http.sendRequest
, она предоставляет больше возможностей, таких как задание заголовков, установка таймаута и удобное формирование тела запроса.
Метод для отправки HTTP-запроса:
http.request(url string = "", method string = "POST", body any = nil) Request
Назначение: формирует HTTP-запрос с возможностью гибкой настройки параметров перед отправкой.
Аргументы:
url
— строка с адресом API.method
— HTTP-метод (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS).body
— содержимое тела запроса.Возвращаемое значение: объект, содержащий информацию о запросе, который можно дополнительно настроить перед отправкой.
Если в URL требуется передать аргументы, используйте оператор ::
для объединения строк. Например, чтобы передать номер телефона в URL:
$url = "http://rosreestr.subnets.ru/?get=num&format=json&num=" :: $phone_number;
$response = http.request($url, "GET").send()
При необходимости передать данные в теле запроса, например JSON, используйте следующий формат:
$json = {"instances":[{"text": "Пример текста для обработки."}]};
$response = http.request("https://api.aicloud.sbercloud.ru/public/v2/rewriter/predict", "POST", $json)
.headers({"accept": "application/json", "Content-Type": "application/json"})
.send()
При отправке запросов, требующих авторизации, необходимо передавать токен в заголовке Authorization
:
$response = http.request("https://iam.twin24.ai/api/v1/users", "GET", {"limit": 1, "offset": 3})
.headers({"Authorization": "Bearer ВАШ_ТОКЕН"})
.send()
После отправки запроса ответ сервера записывается в переменную, указанную при вызове метода. Перед обработкой ответа важно проверить его корректность.
Правильная обработка ответа:
Сохраните ответ сервера в переменную.
Получите код ответа и возможное сообщение об ошибке в этом же блоке.
Добавьте блок Условие и проверьте:
Пример получения значения count
из тела ответа:
$body = $response.body
$count = $body.get("count")
Во многих API-ответах данные представлены в виде вложенных JSON-структур. Для удобного извлечения значений из таких структур используйте метод .get(), позволяющий обращаться к вложенным элементам по их ключам.
Рассмотрим пример JSON-данных:
{
"version": "1.0",
"timestamp": "2025-03-04T12:00:00Z",
"source": "generated_data",
"items": [
{
"email": "test1@mail.com",
"name": "John Doe",
"age": 28,
"country": "USA",
"roles": [
{"name": "admin"},
{"name": "editor"}
]
},
{
"email": "test2@mail.com",
"name": "Jane Smith",
"age": 34,
"country": "Canada",
"roles": [
{"name": "user"}
]
}
]
}
Пример извлечения email
первого элемента из массива items
:
$email_address = $response.body.get("items").get("0").get("email")
Пример получения name
из массива roles
:
$role_name = $response.body.get("items").get("0").get("roles").get("0").get("name")
Этот код извлекает значение поля name
первого объекта внутри массива roles
первого элемента items
, что в данном случае соответствует "admin"
.