وثائق سولاناالبنية التحتية كرمزالمكتبة القياسية

إجراءات HTTP

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_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?

جدول المحتويات

تعديل الصفحة