Документация SolanaИнфраструктура как кодСтандартная библиотека

HTTP-действия

send_http_request

std::send_http_request выполняет HTTP-запрос к указанному URL и экспортирует ответ.

Входные параметры

НазваниеОбязательныйТипОписание
urlобязательныйstringURL для запроса. Поддерживаемые схемы: http и https
bodyнеобязательныйstringТело запроса в виде строки или объекта JSON
methodнеобязательныйstringHTTP-метод для запроса. Допустимые методы: 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_bodystringТело ответа, возвращённое в виде строки
status_codeintegerКод статуса 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?

Содержание

Редактировать страницу