Документація 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?

Зміст

Редагувати сторінку