نظرة عامة على خمس مكتبات تطوير ويب HTTP

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



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

المواد ، التي نترجمها اليوم ، مكرسة لتحليل خمس أدوات شائعة للعمل مع HTTP: Axios ، Request ، Superagent ، Fetch و Supertest.

أكسيوس


تستند مكتبة Axios لتنفيذ طلبات HTTP على الوعود. انها مناسبة للاستخدام في Node.js وتطبيقات المتصفح. تدعم المكتبة جميع المتصفحات الحديثة ، بما في ذلك IE8 +.

▍ القوة


  • يعمل في بيئة Node.js وفي المتصفحات.
  • يدعم الوعود.
  • يسمح لك بتنفيذ وإلغاء الطلبات.
  • يسمح لك بتعيين مهلة الاستجابة.
  • يدعم الحماية ضد هجمات XSRF.
  • يسمح باعتراض الطلبات والردود.
  • يدعم إشارة من التقدم تحميل البيانات.
  • تستخدم على نطاق واسع في المشاريع القائمة على React و Vue.

. نقاط الضعف


  • المكتبة صعبة الاستخدام.

مراقب


مكتبة Superagent ، مثل Axios ، مناسبة لـ Node.js والمتصفحات الحديثة. يوفر للمطور واجهة برمجة تطبيقات بسيطة وسهلة الفهم ملائمة للعمل معها.

لتنفيذ طلب HTTP باستخدام Superagent ، ما عليك سوى استدعاء طريقة كائن request المناسبة:

 request   .get('')   .then(res => log(res))   .catch(err => log(err)) 

▍ القوة


  • يدعم الإضافات.
  • شكلي.
  • لديها واجهة لطيفة لتقديم طلبات HTTP.
  • يدعم تسلسل مكالمات متعددة لاستكمال الاستعلامات.
  • يعمل في بيئة Node.js وفي المتصفحات.
  • يدعم عرض التقدم لتحميل وتنزيل البيانات.
  • يدعم آلية ترميز النقل المقسم.
  • يدعم عمليات الاسترجاعات.
  • تم تطوير العديد من المكونات الإضافية لهذه المكتبة.

. نقاط الضعف


  • يحتوي على نوع من API لا يلتزم بأي معايير.

طلب


تعد مكتبة الطلب ، مقارنةً بالأدوات السابقة التي تمت مراجعتها ، أداة مبسطة لتنفيذ طلبات HTTP. عند استخدام هذه المكتبة ، يجب عليك كتابة كود أقل من العمل مع المكتبات الأخرى. لا تستخدم الوعود ، ولكن إذا كنت بحاجة إلى هذه الميزة ، يمكنك استخدام مكتبة Request-Promise ، التي تقوم بتطبيق غلاف حول مكتبة Request وتسمح لك بالعمل مع الوعود.

▍ القوة


  • واجهة برمجة تطبيقات سهلة الاستخدام.

. نقاط الضعف


  • المكتبة لا تستخدم الوعود.

إحضار


الجلب ليس مكتبة ، على عكس الأدوات الأخرى المشمولة في هذه المراجعة. هذا هو API مستعرض قياسي ، بديل XMLHttpRequest .

▍ القوة


  • المرونة وسهولة الاستخدام.
  • استخدام الوعود ، التي تتجنب "جحيم معاودة الاتصال".
  • الدعم من قبل جميع المتصفحات الحديثة.
  • اتباع نهج استجابة الطلب.
  • بناء جملة بسيطة ولطيفة.
  • المدعومة في رد فعل الأصلية.

. نقاط الضعف


  • لا يعمل في بيئة الخادم.
  • لا يتم تطبيق بعض الميزات المتوفرة في مكتبات HTTP ، مثل إلغاء الطلب.
  • لا يحتوي على دعم مضمن للمعلمات الافتراضية ، مثل وضع الطلب والرؤوس وبيانات الاعتماد.

اختبار


تعتمد مكتبة Supertest على مكتبة Superagent. إنه مصمم لاختبار خوادم HTTP المبنية على أساس Node.js. يتيح Supertest للمطورين الوصول إلى واجهة API الخاصة بهم وواجهة برمجة التطبيقات منخفضة المستوى التي توفرها مكتبة Superagent.

▍ القوة


  • لديها API مريحة.
  • يبسط بناء اختبارات HTTP.
  • يمكن استخدامه بالاقتران مع المكتبات لاختبار المشاريع مثل Chai.js و Mocha .

. نقاط الضعف


  • لا يعمل في المتصفحات.

ملخص


في هذه المقالة ، قمنا بفحص العديد من الأدوات الشائعة للعمل مع HTTP والتي تعد مفيدة لمطوري JS الذين يقومون بإنشاء تطبيقات تستخدم تقنيات المستعرض وأنظمة Node.js. عند اختيار قاعدة للنظام الفرعي HTTP لمشروع معين ، يوصى أولاً بتجربة العديد من الأدوات التي تبدو مناسبة ، ثم اتخاذ القرار النهائي.

أعزائي القراء! ما هي مكتبات HTTP التي تستخدمها؟

Source: https://habr.com/ru/post/ar432634/


All Articles