Documentación de SolanaInfraestructura como CódigoBiblioteca estándar

Acciones HTTP

send_http_request

std::send_http_request realiza una solicitud HTTP a la URL indicada y exporta la respuesta.

Entradas

NombreRequeridoTipoDescripción
urlrequeridostringLa URL de la solicitud. Los esquemas admitidos son http y https
bodyopcionalstringEl cuerpo de la solicitud como cadena de texto u objeto JSON
methodopcionalstringEl método HTTP de la solicitud. Métodos permitidos: GET, HEAD, POST
timeout_msopcionalintegerEl tiempo de espera de la solicitud en milisegundos
headersopcionalobjectUn mapa de nombres y valores de campos de encabezado de la solicitud
pre_conditionopcionalmapPre-condiciones que se evalúan antes de ejecutar un comando
post_conditionopcionalmapPost-condiciones que se evalúan después de ejecutar un comando

Pre-condiciones

Las pre-condiciones son aserciones que se evalúan antes de ejecutar un comando. Se pueden usar para determinar si el comando debe ejecutarse o si un comportamiento específico debe ejecutarse según el resultado de la aserción.

PropiedadDescripción
behaviorEl comportamiento si la aserción de pre-condición no se cumple. Opciones: halt (predeterminado), log, skip
assertionLa aserción a verificar. Debe evaluarse como un booleano o usar std::assert_eq y funciones similares

Post-condiciones

Las post-condiciones son afirmaciones que se evalúan después de ejecutar un comando. Pueden utilizarse para determinar si el comando debe volver a ejecutarse.

PropiedadDescripción
retriesNúmero de veces que se vuelve a ejecutar el comando si la afirmación falla. Valor predeterminado: 0
backoff_msMilisegundos de espera antes de volver a ejecutar. Valor predeterminado: 1000
behaviorEl comportamiento si la afirmación de la post-condición no se cumple. Opciones: halt (predeterminado), log, skip, continue
assertionLa afirmación a verificar

Salidas

Cuando la acción send_http_request se ejecuta correctamente, las siguientes salidas se adjuntan a la acción:

NombreTipoDescripción
response_bodystringEl cuerpo de la respuesta devuelto como cadena de texto
status_codeintegerEl código de estado de la respuesta HTTP

Ejemplo

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

Ejemplo de solicitud 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
}
}

Solicitud con autenticación

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?

Tabla de Contenidos

Editar Página