إذا كنت مطورًا يعمل مع APIs، فمن المحتمل أنك قد استخدمت curl و httpie في مرحلة ما. هذان هما أداتان شائعتان في سطر الأوامر لإجراء طلبات HTTP والتفاعل مع خدمات الويب. لكن هل تعرف كيف تنتقل بينهما بسهولة وفعالية؟ في هذه المقالة، سأوضح لك كيفية تحويل أوامر curl إلى أوامر httpie والعكس، باستخدام أداة بسيطة تسمى apidog. ستتعلم أيضًا بعض النصائح والحيل لجعل اختبارات API الخاصة بك أكثر إنتاجية ومتعة.
ما هي Curl و Httpie؟
قبل أن نتعمق في عملية التحويل، دعنا نستعرض بإيجاز ما هي curl و httpie ولماذا تكون مفيدة.
Curl
Curl هي أداة كلاسيكية موجودة منذ عام 1997. وهي تعني "عميل URL" وتسمح لك بنقل البيانات من أو إلى خادم باستخدام بروتوكولات متنوعة، مثل HTTP، FTP، SMTP، إلخ. يتم دعم curl على نطاق واسع على منصات ولغات مختلفة، ولها العديد من الخيارات والميزات لتخصيص طلباتك. يمكنك استخدام curl لاختبار APIs، وتحميل الملفات، وتحميل البيانات، والمزيد.
إليك مثال على أمر curl الذي يقوم بإجراء طلب GET إلى واجهة برمجة التطبيقات GitHub وطباعة رؤوس الاستجابة:
curl -i https://api.github.com/users/octocat
Httpie
Httpie هي أداة أحدث تم إنشاؤها في عام 2012. تعني "HTTPie: أداة CLI تشبه cURL للبشر". تم تصميم Httpie لتكون بديلًا سهل الاستخدام لـ curl، بمواصفات أبسط وأكثر تعبيرًا، وإخراج ملون، وإعدادات ذكية. يدعم Httpie HTTP/1.1 و HTTP/2 و HTTPS، ويمكنه التعامل تلقائيًا مع JSON، والنماذج، ورفع الملفات.
إليك مثال على أمر httpie الذي يقوم بنفس طلب GET كما في أمر curl أعلاه، ولكن مع بنية وإخراج أكثر readability:
http -v https://api.github.com/users/octocat
لماذا الانتقال بين Curl و Httpie؟
قد تتساءل لماذا ستحتاج إلى الانتقال بين curl و httpie في المقام الأول. أليس كلاهما يقوم بنفس الشيء؟ حسنًا، نعم ولا. بينما يمكن أن تقوم curl و httpie بأداء مهام مماثلة، إلا أن لديها نقاط قوة وضعف مختلفة، وحالات استخدام مختلفة.
إليك بعض الأسباب التي قد تجعلك ترغب في الانتقال بين curl و httpie:
- أنت تعمل على مشروع يستخدم كل من أوامر curl و httpie، وتحتاج إلى فهمها وتعديلها.
- أنت تتبع برنامجًا تعليميًا أو وثائق تستخدم أوامر curl أو httpie، وترغب في تجربتها مع الأداة الأخرى.
- أنت تختبر API لها سلوكيات أو ميزات مختلفة اعتمادًا على الأداة التي تستخدمها، وترغب في مقارنتها.
- أنت فضولي بشأن الفروق والتشابهات بين curl و httpie، وترغب في معرفة المزيد عنها.
كيفية الانتقال بين Curl و Httpie باستخدام Apidog؟
الآن بعد أن عرفت ما هي curl و httpie ولماذا قد ترغب في الانتقال بينهما، دعني أقدم لك أداة يمكن أن تجعل حياتك أسهل: apidog.
Apidog هي أداة قائمة على الويب تسمح لك بتحويل أوامر curl إلى أوامر httpie والعكس. كما أنها تتيح لك تشغيل الأوامر ورؤية النتائج في الوقت الفعلي. Apidog مجانية وسهلة الاستخدام.
إليك كيفية استخدام apidog للانتقال بين curl و httpie:
الخطوة 1: قم بلصق أو كتابة أمر curl أو httpie الخاص بك في مربع الإدخال.
يمكنك إما لصق أمر موجود قمت بنسخه من مكان ما، أو كتابة أمر جديد من الصفر. ستقوم Apidog بالكشف تلقائيًا عن نوع الأمر وتظهر لك الرمز المقابل (curl أو httpie) على الجانب الأيسر من مربع الإدخال.
الخطوة 2: انقر على الطلب الفعلي
ستقوم Apidog بتحويل الأمر الخاص بك إلى الأداة الأخرى وتظهر لك النتيجة في مربع الإخراج.
إذا كنت ترغب في اختبار الأمر المحول ورؤية الاستجابة من الخادم، يمكنك النقر على زر التشغيل أو الضغط على Ctrl+R. ستقوم Apidog بتنفيذ الأمر وعرض الاستجابة في اللوحة السفلية. يمكنك أيضًا التبديل بين العرض الخام والمنسق للاستجابة عن طريق النقر على زر التبديل أو الضغط على Ctrl+F.
نصائح وحيل للانتقال بين Curl و Httpie
بينما يمكن أن تتعامل apidog مع معظم الأوامر الشائعة لـ curl و httpie، هناك بعض الحالات التي قد تحتاج فيها إلى إجراء بعض التعديلات اليدوية أو استخدام بعض الخيارات الإضافية. إليك بعض النصائح والحيل لمساعدتك في ذلك:
- إذا كان أمر curl الخاص بك يستخدم الخيار
-d
أو--data
لإرسال البيانات في جسم الطلب، فقد تحتاج إلى إضافة الخيار--form
لأمر httpie للإشارة إلى أن البيانات مشفرة كصيغة. على سبيل المثال:
# أمر curl
curl -d "name=John&age=25" https://example.com/users
# أمر httpie
http --form POST https://example.com/users name=John age=25
- إذا كان أمر curl الخاص بك يستخدم الخيار
-H
أو--header
لتحديد رؤوس مخصصة، فقد تحتاج إلى إضافة:
بعد اسم الرأس في أمر httpie. على سبيل المثال:
# أمر curl
curl -H "Authorization: Bearer abc123" https://example.com/secret
# أمر httpie
http https://example.com/secret Authorization:"Bearer abc123"
- إذا كان أمر curl الخاص بك يستخدم الخيار
-u
أو--user
لتعيين بيانات اعتماد المصادقة الأساسية، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام صيغةusername:password@
في عنوان URL. على سبيل المثال:
# أمر curl
curl -u admin:secret https://example.com/admin
# أمر httpie (الخيار 1)
http -u admin:secret https://example.com/admin
# أمر httpie (الخيار 2)
http https://admin:secret@example.com/admin
- إذا كان أمر curl الخاص بك يستخدم الخيار
-F
أو--form
لرفع الملفات، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام صيغة@
للإشارة إلى مسار الملف. على سبيل المثال:
# أمر curl
curl -F "image=@photo.jpg" https://example.com/upload
# أمر httpie (الخيار 1)
http -f POST https://example.com/upload image@photo.jpg
# أمر httpie (الخيار 2)
http POST https://example.com/upload image@/path/to/photo.jpg
- إذا كان أمر curl الخاص بك يستخدم الخيار
-X
أو--request
لتحديد طريقة HTTP، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام اسم الطريقة كأول حجة. على سبيل المثال:
# أمر curl
curl -X PUT -d "status=active" https://example.com/users/1
# أمر httpie (الخيار 1)
http -X PUT -d "status=active" https://example.com/users/1
# أمر httpie (الخيار 2)
http PUT https://example.com/users/1 status=active
- إذا كان أمر curl الخاص بك يستخدم الخيار
-G
أو--get
لإضافة البيانات إلى عنوان URL كمعلمات استعلام، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام صيغة==
للإشارة إلى معلمات الاستعلام. على سبيل المثال:
# أمر curl
curl -G -d "q=hello" https://example.com/search
# أمر httpie (الخيار 1)
http -G -d "q=hello" https://example.com/search
# أمر httpie (الخيار 2)
http https://example.com/search q==hello
- إذا كان أمر curl الخاص بك يستخدم الخيار
--data-urlencode
لترميز البيانات قبل إرسالها، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام صيغة:=
للإشارة إلى البيانات المشفرة. على سبيل المثال:
# أمر curl
curl --data-urlencode "message=Hello World!" https://example.com/echo
# أمر httpie (الخيار 1)
http --data-urlencode "message=Hello World!" https://example.com/echo
# أمر httpie (الخيار 2)
http https://example.com/echo message:="Hello World!"
- إذا كان أمر curl الخاص بك يستخدم الخيار
--data-binary
لإرسال بيانات ثنائية خام، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام صيغة@
للإشارة إلى البيانات الثنائية. على سبيل المثال:
# أمر curl
curl --data-binary "@data.bin" https://example.com/binary
# أمر httpie (الخيار 1)
http --data-binary "@data.bin" https://example.com/binary
# أمر httpie (الخيار 2)
http https://example.com/binary @data.bin
- إذا كان أمر curl الخاص بك يستخدم الخيار
-o
أو--output
لحفظ الاستجابة في ملف، يمكنك استخدام نفس الخيار في أمر httpie، أو استخدام عامل التشغيل>
لإعادة توجيه الإخراج. على سبيل المثال:
# أمر curl
curl -o response.json https://example.com/data
# أمر httpie (الخيار 1)
http -o response.json https://example.com/data
# أمر httpie (الخيار 2)
http https://example.com/binary > response.bin
فوائد الانتقال بين Curl و Httpie
حتى الآن، يجب أن تكون لديك فكرة جيدة عن كيفية الانتقال بين أوامر curl و httpie باستخدام apidog. لكن ما هي فوائد القيام بذلك؟ إليك بعض المزايا المرتبطة بقدرتك على استخدام كلا الأداتين:
- يمكنك اختيار الأداة التي تناسب تفضيلاتك واحتياجاتك بشكل أفضل. يفضل بعض الأشخاص curl لمرونته وتوافقه، بينما يفضل آخرون httpie لبساطته وقراءته. من خلال الانتقال بينهما، يمكنك الاستمتاع بأفضل ما في العالمين.
- يمكنك تعلم مهارات وتقنيات جديدة من كلا الأداتين. تحتوي curl و httpie على ميزات وخيارات مختلفة يمكن أن تساعدك في مهام وسيناريوهات مختلفة. من خلال الانتقال بينهما، يمكنك اكتشاف طرق جديدة للقيام بالأشياء وتحسين معرفتك وكفاءتك.
- يمكنك تجنب الأخطاء والأخطاء الناجمة عن استخدام الأداة أو الصيغة الخاطئة. تحتوي curl و httpie على سلوكيات وتوقعات مختلفة عندما يتعلق الأمر بالتعامل مع البيانات، والرؤوس، والمصادقة، والملفات، إلخ. من خلال الانتقال بينهما، يمكنك التأكد من أنك تستخدم الأداة والصيغة الصحيحة لوضعك وتجنب المشكلات المحتملة.
الخاتمة
في هذه المقالة، أظهرت لك كيفية الانتقال بين أوامر curl و httpie باستخدام apidog، أداة على الويب يمكنها تحويل وتشغيل أوامر curl و httpie. كما قدمت لك بعض النصائح والحيل لمساعدتك في عملية التحويل، وبعض فوائد القدرة على استخدام كلا الأداتين.
شكرًا لقراءتك وأتمنى لك برمجة سعيدة!