النتائج مقدَّمة لأغراض إعلامية فقط وقد تحتوي على أخطاء. يُرجى التحقق من المعلومات المهمة بشكل مستقل. استخدام هذه الأداة على مسؤوليتك الخاصة.
ماذا تفعل هذه الأداة
تأخذ أداة تحويل cURL إلى شيفرة برمجية أمر curl وتعيد كتابته بوصفه الطلب نفسه بلغة JavaScript باستخدام fetch() أو بلغة Python باستخدام requests. الصق أمرًا منسوخًا من توثيق API أو من لوحة الشبكة في المتصفح (Copy as cURL)، ثم اختر اللغة واضغط تحويل. تُنقل الطريقة (method) وعنوان URL والترويسات (headers) وجسم الطلب كما هي.
يفهم المحلّل الخيارات -X/--request و-H/--header و-d/--data/--data-raw/--data-binary و-u/--user. إذا احتوى الطلب على جسم دون تحديد صريح للطريقة، فإنه يصبح طلب POST، تمامًا كما يفعل curl، ويتحوّل -u user:pass إلى ترويسة Authorization: Basic. تُدمج أولًا الأسطر المتصلة بشرطة مائلة عكسية، لذا تُلصق الأوامر متعددة الأسطر دون مشكلات. أما الخيارات الأخرى، مثل --compressed أو -s، فيجري تجاهلها.
متى تستخدمها
- تحويل مثال من توثيق API إلى شيفرة لواجهة أمامية (front-end) أو لسكربت Node.
- إعادة إنتاج طلب التقطته في DevTools بالمتصفح داخل اختبار مكتوب بلغة Python.
- نقل تجربة سريعة من الطرفية إلى مهمة مجدولة أو إلى دفتر تفاعلي (notebook).
- شرح ما يرسله فعلًا أمر curl طويل مكتوب في سطر واحد لزميل في الفريق.
مثال عملي
المدخلات
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ana"}'
المخرجات
fetch("https://api.example.com/users", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: "{\"name\":\"Ana\"}"
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));أسئلة حول هذه الأداة
هل يُرسَل الطلب عند تحويله؟
لا. يُحلَّل الأمر ويُعاد كتابته كشيفرة فقط، ولا يُستدعى عنوان URL الموجود فيه أبدًا. ومع ذلك، احذف الرموز المميزة (tokens) الحقيقية من الأوامر المنسوخة، لأنها ستبقى في الحافظة وفي شيفرتك.
لماذا يكون جسم الطلب سلسلة نصية بدلًا من كائن؟
يرسل curl قيمة -d كما كُتبت تمامًا، ولذلك تفعل الشيفرة المولَّدة الشيء نفسه. إذا كنت تفضّل بناء الجسم من كائن، فاستبدله بـJSON.stringify({...}) في JavaScript أو بـjson= في Python.
وماذا عن رفع الملفات باستخدام -F؟
لا تُحوَّل خيارات النماذج متعددة الأجزاء (-F). ابنِ هذه الطلبات باستخدام FormData في JavaScript أو باستخدام الوسيط files= في Python.
ما مكتبة Python التي تستخدمها النتيجة؟
تستخدم requests، وهي مكتبة HTTP الأكثر شيوعًا في Python. ثبّتها بالأمر pip install requests. يطبع السكربت المولَّد رمز الحالة واستجابة JSON.
هل هذه الأداة مجانية؟
نعم، إنها مجانية. دون تسجيل أو بريد إلكتروني. تظهر النتيجة في هذه الصفحة.
كيف أحصل على النتيجة؟
استخدم الأداة في هذه الصفحة. تظهر النتيجة هنا دون الحاجة إلى إرسالها بالبريد الإلكتروني.