مولّد طلبات REST

تعمل في المتصفح الويب

صِف الطلب مرة واحدة (الطريقة وعنوان URL والترويسات والمتن والمصادقة) واحصل على مقتطفات كود اصطلاحية لأكثر من عشر لغات وعملاء HTTP.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هي أجزاء طلب HTTP؟

طلب HTTP هو طريقة (GET أو POST أو PUT أو PATCH أو DELETE …) وعنوان URL مستهدف — المسار مع معاملات الاستعلام — تليهما ترويسات، ولطرق حمل البيانات جسمٌ تسمّي ترويسة Content-Type صيغته. يعرّف RFC 9110 الطرق ودلالاتها: GET وHEAD آمنتان، وPUT وDELETE متكافئتان، وPOST ليست هذه ولا تلك، وهذا ما يقرر إن كان يجوز إعادة إرسال الطلب. وسطر أوامر cURL هو الطلب نفسه مكتوباً، وهو اللغة المشتركة لإعادة إنتاج استدعاء API في تقرير عيب.

اقرأ الدليل: ما هو اختبار API؟ وكيف تختبر REST API

كيفية استخدام مولّد طلبات REST

  1. حدّد الطريقة وعنوان URL، وأضف الترويسات ومتناً اختيارياً.
  2. اختر نوع المصادقة وأدخل بيانات الاعتماد.
  3. اختر لغة إضافية من القائمة المنسدلة؛ وانسخ أي مقتطف بنقرة واحدة.

مزايا مولّد طلبات REST

  • أربعة عشر هدفاً: cURL لكل من bash وPowerShell وcmd، وfetch، وaxios، وNode https، وPython requests وhttpx، وJava HttpClient، وC# HttpClient، وGo net/http، وPHP cURL، وRuby Net::HTTP، وHTTP الخام
  • تُولَّد cURL وfetch وaxios وPython دائماً؛ وأي لغة أخرى من القائمة المنسدلة
  • مصادقة Bearer وBasic ومفتاح API (في ترويسة أو استعلام)
  • تتحوّل متون JSON إلى بنى أصلية حيثما تدعم اللغة ذلك؛ وتُهرَّب المتون الأخرى تهريباً صحيحاً
  • كشف تلقائي لـ Content-Type عند عدم تحديده (JSON أو نماذج أو XML أو نص)
  • تحذيرات عند وجود متن مع GET أو JSON غير صالح أو غياب بيانات الاعتماد

مثال على مولّد طلبات REST

طلب POST مع JSON ورمز bearer ← Python

الإدخال:

POST https://api.example.com/v1/users · Content-Type: application/json · Bearer sk_test_… · Body {"name":"Layla"}

النتيجة:

import requests

url = "https://api.example.com/v1/users"
headers = {
    "Authorization": "Bearer sk_test_…",
    "Accept": "application/json",
}
payload = {
    "name": "Layla",
}

response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
print(response.status_code, response.json())

الأسئلة الشائعة حول مولّد طلبات REST

ما اللغات والعملاء المدعومون؟

cURL (بتهريب bash وPowerShell وcmd)، وJavaScript fetch، وaxios، وNode.js https، وPython requests وhttpx، وJava 11+ HttpClient، وC# HttpClient، وGo net/http، وPHP cURL، وRuby Net::HTTP، ورسالة HTTP/1.1 خام. تُعرض الأربعة الأكثر شيوعاً دائماً؛ واختر أي لغة أخرى من القائمة المنسدلة.

كيف يُعالج المتن في كل لغة؟

عندما يكون Content-Type هو JSON ويمكن تحليل المتن، تستخدم المقتطفات البنى الأصلية (JSON.stringify في fetch، وdata في axios، وjson=… في Python). وإلا يُرسل المتن كسلسلة نصية خام مع تهريب صحيح لكل لغة.

أين تُوضع إعدادات المصادقة في الكود الناتج؟

تتحوّل Bearer وBasic إلى ترويسة Authorization؛ وتتحوّل مفاتيح API إلى ترويسة أو معامل استعلام حسب اختيارك. تستخدم C# الصنف AuthenticationHeaderValue، وتمرّر Python الترويسات صراحةً بحيث تكون المقتطفات جاهزة للنسخ واللصق.

هل يُرسل أي شيء إلى خادم؟

لا. توليد الكود معالجة نصية تجري بالكامل على جانب العميل؛ وتبقى رموزك في المتصفح. لا تودع (commit) الملفات المولَّدة التي تحتوي على أسرار حقيقية.

ملاحظات تقنية

تستهلك جميع المولّدات الطلب المطبَّع نفسه (الطريقة وعنوان URL والترويسات والمتن والمصادقة والخيارات) بحيث تكون المقتطفات متسقة. ولكل لغة أسلوبها الخاص في تهريب السلاسل النصية (بأسلوب JSON في JS وJava وGo، والصيغة الحرفية @"…" في C#، وعلامات الاقتباس المفردة في PHP وRuby، والاقتباس الثلاثي للنصوص متعددة الأسطر في Python).

المراجع

  • RFC 9110: HTTP SemanticsIETF · 2022معاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.
  • HTTP headers — MDNMDN Web Docs (Mozilla)مرجع لترويسات الطلب والاستجابة: الصياغة والتوجيهات ودعم المتصفحات.
  • RFC 7578: Returning Values from Forms: multipart/form-dataIETF · 2015ترميز multipart/form-data المستخدم لرفع الملفات وإرسال النماذج المختلطة.