Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

كيف تستخدم HTTPie في عام 2024؟

HTTPie هو أداة سطر أوامر تسهل التفاعل مع خوادم HTTP وواجهات برمجة التطبيقات. تعلم كيفية استخدام HTTPie في 2024 لتقديم الطلبات، تحميل الملفات، إدارة الجلسات، والمزيد.

@apidog

@apidog

Updated on نوفمبر 6, 2024

HTTPie هو أداة سطر أوامر تتيح لك التفاعل مع خوادم HTTP بطريقة صديقة للبشر. يحتوي على بنية بسيطة ومعبرة، ويدعم JSON وبيانات النماذج، ويتعامل مع المصادقة ورؤوس الطلبات، ويعرض مخرجات ملونة ومنسقة. كما أن لديه بعض الميزات المتقدمة، مثل الجلسات والإضافات والوكلاء، مما يجعله أكثر قوة وتنوعًا.

في هذه المدونة، سأوضح لك كيفية تثبيت واستخدام HTTPie، وكيف يمكن أن يساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك بسهولة وكفاءة. سأشارك أيضًا بعض النصائح والحيل التي تعلمتها في الطريق، وبعض الموارد التي يمكنك استخدامها لمعرفة المزيد عن HTTPie.

زر

كيفية تثبيت HTTPie

الخطوة الأولى لاستخدام HTTPie هي تثبيته على نظامك. HTTPie مكتوب بلغة بايثون، ويمكنك تثبيته باستخدام pip، مدير حزم بايثون. للقيام بذلك، افتح الطرفية الخاصة بك وقم بتنفيذ الأمر التالي:

pip install --upgrade httpie

سيقوم هذا بتثبيت أحدث إصدار من HTTPie على نظامك، وسيقوم أيضًا بترقية أي إصدار موجود إذا كان لديك واحد. يمكنك التحقق من إصدار HTTPie عن طريق تشغيل:

http --version

يجب أن ترى شيئًا مثل هذا:

http 2.5.0
HTTPie - أداة CLI تشبه cURL للبشر.
https://httpie.io

إذا رأيت هذه المخرجات، تهانينا! لقد قمت بتثبيت HTTPie بنجاح وأنت مستعد لاستخدامه.

كيفية إرسال طلبات HTTP باستخدام HTTPie

البنية الأساسية لـ HTTPie هي:

http [flags] [METHOD] URL [ITEM [ITEM]]

حيث:

  • flags هي وسائط اختيارية تعدل سلوك HTTPie، مثل -v لوضع التفصيل، -h للمساعدة، أو -f لتتبع إعادة التوجيه.
  • METHOD هو طريقة HTTP المراد استخدامها، مثل GET، POST، PUT، PATCH، DELETE، إلخ. إذا تم حذفها، defaults HTTPie إلى GET.
  • URL هو رابط خادم HTTP الذي تريد التفاعل معه، مثل https://example.com/api/users.
  • ITEM هو زوج مفتاح-قيمة اختياري يحدد بيانات الطلب، مثل name=John لبيانات النموذج، أو name:=John لبيانات JSON. يمكنك أيضًا استخدام ITEM لتحديد الرؤوس، مثل User-Agent:HTTPie.

على سبيل المثال، لإرسال طلب GET إلى https://example.com/api/users، يمكنك ببساطة تشغيل:

http https://example.com/api/users

سيرسل هذا طلب GET إلى الرابط، ويعرض الاستجابة بطريقة ملونة ومنسقة. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 326
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"146-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

كما ترى، يعرض HTTPie خط حالة الاستجابة والرؤوس والجسم بطريقة واضحة وسهلة القراءة. كما يستخدم ألوانًا لتسليط الضوء على أجزاء مختلفة من الاستجابة، مثل الأخضر للرؤوس، والأزرق لمفاتيح JSON، والأصفر لقيم JSON.

يمكنك أيضًا إرسال طرق HTTP أخرى مع HTTPie، مثل POST، PUT، PATCH، أو DELETE، عن طريق تحديد الطريقة قبل الرابط. على سبيل المثال، لإرسال طلب POST إلى https://example.com/api/users مع بعض بيانات JSON، يمكنك تشغيل:

http POST https://example.com/api/users name=John email=john@example.com

سيرسل هذا طلب POST إلى الرابط، مع بيانات JSON التالية في جسم الطلب:

{
    "name": "John",
    "email": "john@example.com"
}

يمكنك أيضًا استخدام عامل التشغيل := لتحديد قيم JSON، مثل name:="John" أو age:=25. هذا مفيد عندما تريد إرسال قيم غير نصية، مثل الأرقام، أو القيم البولية، أو المصفوفات، أو الكائنات.

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع رمز حالة مختلف وجسم. سترى شيئًا مثل هذا:

HTTP/1.1 201 Created
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Location: /api/users/4
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "John",
    "email": "john@example.com"
}

كما ترى، يعرض HTTPie رمز حالة الاستجابة كـ 201 تم الإنشاء، مما يدل على أنه تم إنشاء مورد جديد على الخادم. كما يعرض رأس الموقع، الذي يشير إلى رابط المورد الجديد الذي تم إنشاؤه. يحتوي جسم الاستجابة على تمثيل JSON للمستخدم الجديد.

يمكنك استخدام نفس البنية لإرسال طرق HTTP الأخرى، مثل PUT، PATCH، أو DELETE، عن طريق استبدال اسم الطريقة. على سبيل المثال، لتحديث اسم المستخدم الذي يحمل id 4، يمكنك تشغيل:

http PATCH https://example.com/api/users/4 name=Jack

سيقوم هذا بإرسال طلب PATCH إلى الرابط، مع بيانات JSON التالية في جسم الطلب:

{
    "name": "Jack"
}

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع رمز حالة وجسم مختلفين. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 110
Content-Type: application/json; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"6e-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "id": 4,
    "name": "Jack",
    "email": "john@example.com"
}

كما ترى، يعرض HTTPie رمز حالة الاستجابة كـ 200 OK، مما يدل على أنه تم تحديث المورد بنجاح. يحتوي جسم الاستجابة على تمثيل JSON للمستخدم المحدث.

يمكنك أيضًا استخدام HTTPie لإرسال بيانات النموذج، عن طريق استخدام عامل التشغيل = بدلاً من عامل التشغيل :=. على سبيل المثال، لإرسال طلب POST إلى https://example.com/api/login مع بعض بيانات النموذج، يمكنك تشغيل:

http POST https://example.com/api/login username=John password=secret

سيرسل هذا طلب POST إلى الرابط، مع بيانات النموذج التالية في جسم الطلب:

username=John&password=secret

سيعرض HTTPie الاستجابة بنفس الطريقة كما كان من قبل، ولكن مع نوع محتوى وجسم مختلف. سترى شيئًا مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 32
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"20-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

تسجيل الدخول ناجح. مرحبًا، جون!

كما ترى، يعرض HTTPie نوع محتوى الاستجابة كـ text/plain، مما يدل على أن جسم الاستجابة هو نص عادي. يحتوي جسم الاستجابة على رسالة بسيطة تؤكد تسجيل الدخول.

كيفية فحص جسم الاستجابة والرؤوس باستخدام HTTPie

إحدى الميزات الرائعة لـ HTTPie هي أنها تقوم تلقائيًا بتحليل وتنسيق جسم الاستجابة والرؤوس، اعتمادًا على نوع المحتوى. على سبيل المثال، إذا كانت الاستجابة هي JSON، سيعرضها HTTPie بطريقة جميلة وملونة، كما رأينا من قبل. إذا كانت الاستجابة هي HTML، سيعرضها HTTPie كنص خام، ولكن مع تمييز نحوي. إذا كانت الاستجابة هي صورة، سيعرضها HTTPie كبيانات ثنائية، ولكن مع تلميح لنوع الصورة وحجمها.

يمكنك أيضًا استخدام بعض الأعلام لتعديل كيفية عرض HTTPie للاستجابة. على سبيل المثال، يمكنك استخدام العلم -b أو --body لعرض جسم الاستجابة فقط، دون الرؤوس. يمكنك استخدام العلم -h أو --headers لعرض رؤوس الاستجابة فقط، دون الجسم. يمكنك استخدام العلم -p أو --print لتحديد أي أجزاء من الطلب والاستجابة يجب طباعتها، باستخدام الأحرف التالية:

  • H: رؤوس الطلب
  • B: جسم الطلب
  • h: رؤوس الاستجابة
  • b: جسم الاستجابة

على سبيل المثال، لعرض رؤوس الطلب وجسم الاستجابة فقط، يمكنك تشغيل:

http -p HB https://example.com/api/users

سيظهر لك شيء مثل هذا:

GET /api/users HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: example.com
User-Agent: HTTPie/2.5.0

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    },
    {
        "id": 3,
        "name": "Bob",
        "email": "bob@example.com"
    }
]

كما ترى، يعرض HTTPie رؤوس الطلب وجسم الاستجابة، ولكن ليس رؤوس الاستجابة أو جسم الطلب.

يمكنك أيضًا استخدام العلم -j أو --json لفرض HTTPie على اعتبار الاستجابة كـ JSON، حتى لو لم يكن نوع المحتوى هو application/json. هذا مفيد عندما لا يرسل الخادم نوع المحتوى الصحيح، أو عندما تريد تحليل استجابة غير JSON كـ JSON. على سبيل المثال، لتحليل استجابة نص عادي كـ JSON، يمكنك تشغيل:

http -j https://example.com/api/hello

سيظهر لك شيء مثل هذا:

HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 13
Content-Type: text/plain; charset=utf-8
Date: Thu, 08 Feb 2024 05:43:25 GMT
ETag: W/"d-8a9e8c9f"
Server: nginx/1.19.6
X-Powered-By: Express

{
    "hello": "world"
}

كما ترى، يقوم HTTPie بتحليل الاستجابة النصية كـ JSON، ويعرضها بطريقة جميلة وملونة.

يمكنك أيضًا استخدام العلم -o أو --output لحفظ جسم الاستجابة في ملف، بدلاً من عرضه على الطرفية. هذا مفيد عندما تريد تنزيل ملف من الخادم، مثل صورة أو PDF أو ملف ZIP. على سبيل المثال، لتنزيل صورة من https://example.com/api/image، يمكنك تشغيل:

http -o image.jpg https://example.com/api/image

سيقوم هذا بحفظ الصورة في ملف يسمى image.jpg في الدليل الحالي. يمكنك أيضًا استخدام العلم -d أو --download لإنشاء اسم ملف تلقائيًا بناءً على الرابط ونوع المحتوى. على سبيل المثال، لتنزيل نفس الصورة، يمكنك تشغيل:

http -d https://example.com/api/image

سيقوم هذا بحفظ الصورة في ملف يسمى image-20240208-054325.jpg في الدليل الحالي، باستخدام التاريخ والوقت كلاحقة.

كما ترى، توفر لك HTTPie العديد من الخيارات لفحص جسم الاستجابة والرؤوس، ولحفظ الاستجابة في ملف. يمكنك استخدام هذه الخيارات لاختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك، والتحقق من محتوى وشكل الاستجابة.

قيود HTTPie

HTTPie هي أداة سطر أوامر قوية وسهلة الاستخدام للتفاعل مع خوادم HTTP وواجهات برمجة التطبيقات. ومع ذلك، فإن لديها أيضًا بعض القيود، مثل:

  • إنها لا تدعم بروتوكولات GraphQL، WebSocket، أو gRPC، التي أصبحت أكثر شيوعًا في تطوير الويب الحديث.
  • لا تحتوي على واجهة رسومية (GUI) أو نسخة ويب، التي قد يفضلها بعض المستخدمين الذين لا يشعرون بالراحة مع الطرفيات.
  • ليس لديها ميزات مدمجة لتصميم واجهة برمجة التطبيقات، الوثائق، المحاكاة، أو الاختبار، التي تعتبر أساسية لتطوير واجهة برمجة التطبيقات والتعاون.

لماذا يجب عليك استخدام Apidog

Apidog هي منصة متكاملة لتصميم واجهات برمجة التطبيقات، وتصحيح الأخطاء، والتطوير، والمحاكاة، والاختبار. تجمع بين وظائف Postman وSwagger وMock وJMeter في أداة واحدة. قد ترغب في استخدام Apidog إذا كنت تبحث عن:

  • حل شامل وتعاوني لدورة حياة واجهة برمجة التطبيقات بالكامل، من التصميم إلى الاختبار، والمحاكاة، والوثائق.
  • أداة تدعم بروتوكولات متعددة، مثل HTTP، GraphQL، WebSocket، وgRPC.
  • أداة تحتوي على كل من تطبيق سطح المكتب ونسخة ويب، بالإضافة إلى واجهة سطر الأوامر (CLI).
  • أداة تطبق التصميم أولاً لواجهة برمجة التطبيقات، مما يسهل مزامنة واجهة برمجة التطبيقات، والمواصفات، والتعديلات عبر دورة حياة واجهة برمجة التطبيقات بالكامل.

الخطوة 1. افتح Apidog وانقر على "API جديدة" لإنشاء واجهة برمجة التطبيقات جديدة للاختبار.

الخطوة 2. اختر طريقة HTTP التي ستستخدمها لواجهة برمجة التطبيقات وأدخل رابط نقطة النهاية.

الخطوة 3. أدخل المعلومات اللازمة مثل المعلمات وفقًا لمواصفات واجهة برمجة التطبيقات وانقر على زر "إرسال" لإرسال طلب واجهة برمجة التطبيقات والحصول على الاستجابة.

استنتاج

HTTPie هي أداة قوية وسهلة الاستخدام تتيح لك التواصل مع خوادم HTTP وواجهات برمجة التطبيقات من خلال الطرفية الخاصة بك. تحتوي على العديد من الميزات والخيارات التي تجعل من السهل تخصيص وتنسيق طلباتك واستجاباتك. يمكنك استخدام HTTPie لاختبار، وتصحيح، واستكشاف واجهات برمجة التطبيقات، بالإضافة إلى أتمتة المهام وسير العمل.

إذا كنت ترغب في استخدام منصة أكثر تكاملاً لتصميم، وتصحيح، وتطوير، ومحاكاة، واختبار واجهات برمجة التطبيقات، يمكنك أيضًا تجربة Apidog. Apidog هي أداة تربط جميع مراحل دورة حياة واجهة برمجة التطبيقات، من التصميم إلى الاختبار، والمحاكاة، والوثائق.

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidogالدروس التعليمية

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

تعلم كيفية إنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها بأداة تسمى APIdog. Spring Boot هو إطار عمل يسهل تطوير الويب باستخدام Java. Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك.

@apidog

فبراير 29, 2024

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات RESTالدروس التعليمية

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

تحويل واجهات برمجة التطبيقات SOAP إلى REST أصبح أكثر وضوحًا. تقدم واجهات REST مرونة وقابلية للتوسع وبساطة في تعزيز الاتصال بين نظامين أو برنامجين. في هذه المقالة، اكتشف ما تحتاجه لتحويل واجهات SOAP إلى REST!

@apidog

فبراير 29, 2024

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOSالدروس التعليمية

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOS

إن الأرق هو أداة شائعة لإدارة واجهات برمجة التطبيقات بين المطورين. هنا سوف نوضح الخطوات اللازمة لتنزيلها وتثبيتها على نظام التشغيل الخاص بك، مثل ويندوز/لينكس/ماك أو إس، مجانًا.

@apidog

فبراير 27, 2024