send_http_request
std::send_http_request выполняет HTTP-запрос к указанному URL и экспортирует
ответ.
Входные параметры
| Название | Обязательный | Тип | Описание |
|---|---|---|---|
url | обязательный | string | URL для запроса. Поддерживаемые схемы: http и https |
body | необязательный | string | Тело запроса в виде строки или объекта JSON |
method | необязательный | string | HTTP-метод для запроса. Допустимые методы: GET, HEAD, POST |
timeout_ms | необязательный | integer | Тайм-аут запроса в миллисекундах |
headers | необязательный | object | Карта имён и значений полей заголовка запроса |
pre_condition | необязательный | map | Предусловия, которые проверяются перед выполнением команды |
post_condition | необязательный | map | Постусловия, которые проверяются после выполнения команды |
Предусловия
Предусловия — это утверждения, которые проверяются перед выполнением команды. Они могут использоваться для определения того, следует ли выполнять команду или какое поведение должно быть применено на основе результата проверки утверждения.
| Свойство | Описание |
|---|---|
behavior | Поведение при невыполнении предусловия. Варианты: halt (по умолчанию), log, skip |
assertion | Утверждение для проверки. Должно возвращать булево значение или использовать std::assert_eq и аналогичные функции |
Постусловия
Постусловия — это утверждения, которые проверяются после выполнения команды. Они могут использоваться для определения того, нужно ли выполнить команду повторно.
| Свойство | Описание |
|---|---|
retries | Количество повторных выполнений команды при неудачной проверке утверждения. По умолчанию: 0 |
backoff_ms | Время ожидания в миллисекундах перед повторным выполнением. По умолчанию: 1000 |
behavior | Поведение в случае, если проверка постусловия не пройдена. Варианты: halt (по умолчанию), log, skip, continue |
assertion | Утверждение для проверки |
Выходные данные
После успешного выполнения действия send_http_request к нему прикрепляются
следующие выходные данные:
| Имя | Тип | Описание |
|---|---|---|
response_body | string | Тело ответа, возвращённое в виде строки |
status_code | integer | Код статуса HTTP-ответа |
Пример
action "example" "std::send_http_request" {url = "https://example.com"}output "status" {value = action.example.status_code}// > status: 200
Пример POST-запроса
action "create_resource" "std::send_http_request" {description = "Create a new resource"url = "https://api.example.com/resources"method = "POST"headers = {"Content-Type" = "application/json"}body = {"name" = variable.name,"value" = variable.value}}
Запрос с аутентификацией
action "api_call" "std::send_http_request" {description = "Fetch data from API"url = "https://api.example.com/data"method = "GET"headers = {"Authorization" = "Bearer ${variable.token}"}}output "response" {value = action.api_call.response_body}output "status" {value = action.api_call.status_code}
Is this page helpful?