Dokumentacja SolanaInfrastruktura jako kodBiblioteka standardowa

Akcje HTTP

send_http_request

std::send_http_request wykonuje żądanie HTTP do podanego adresu URL i eksportuje odpowiedź.

Dane wejściowe

NazwaWymaganeTypOpis
urlwymaganestringAdres URL żądania. Obsługiwane schematy to http i https
bodyopcjonalnestringTreść żądania jako ciąg znaków lub obiekt JSON
methodopcjonalnestringMetoda HTTP żądania. Dozwolone metody: GET, HEAD, POST
timeout_msopcjonalneintegerLimit czasu żądania w milisekundach
headersopcjonalneobjectMapa nazw i wartości pól nagłówka żądania
pre_conditionopcjonalnemapWarunki wstępne oceniane przed wykonaniem polecenia
post_conditionopcjonalnemapWarunki końcowe oceniane po wykonaniu polecenia

Warunki wstępne

Warunki wstępne to asercje oceniane przed wykonaniem polecenia. Mogą być używane do określenia, czy polecenie powinno zostać wykonane, lub czy określone zachowanie powinno być wywołane na podstawie wyniku asercji.

WłaściwośćOpis
behaviorZachowanie, gdy asercja warunku wstępnego nie jest spełniona. Opcje: halt (domyślnie), log, skip
assertionAsercja do sprawdzenia. Powinna zwracać wartość logiczną lub używać std::assert_eq i podobnych funkcji

Warunki końcowe

Warunki końcowe to asercje, które są sprawdzane po wykonaniu polecenia. Można je wykorzystać do określenia, czy polecenie powinno zostać wykonane ponownie.

WłaściwośćOpis
retriesLiczba ponownych wykonań polecenia w przypadku niepowodzenia asercji. Domyślnie: 0
backoff_msLiczba milisekund oczekiwania przed ponownym wykonaniem. Domyślnie: 1000
behaviorZachowanie w przypadku niespełnienia asercji warunku końcowego. Opcje: halt (domyślnie), log, skip, continue
assertionAsercja do sprawdzenia

Dane wyjściowe

Po pomyślnym wykonaniu akcji send_http_request do akcji dołączane są następujące dane wyjściowe:

NazwaTypOpis
response_bodystringTreść odpowiedzi zwrócona jako ciąg znaków
status_codeintegerKod statusu odpowiedzi HTTP

Przykład

action "example" "std::send_http_request" {
url = "https://example.com"
}
output "status" {
value = action.example.status_code
}
// > status: 200

Przykład żądania 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
}
}

Żądanie z uwierzytelnianiem

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?

Spis treści

Edytuj stronę