العودة إلى المدونة

استخدام عميل HTTP Axios في تطبيق React: دليل تعليمي

استخدام عميل HTTP Axios في تطبيق React: دليل تعليمي

تواجه العديد من تطبيقات الويب ضرورة التعامل مع واجهة برمجة تطبيقات REST API في مرحلة ما من تطويرها. بالنسبة لـ React، يمكننا استخدام Axios، وهو عميل HTTP خفيف الوزن يعتمد على $http داخل Angular.js v1.x. وتتشابه ميزاته مع ميزات Fetch API.

يعتمد Axios على الوعود (promise-based)، مما يتيح لنا القدرة على دمج ميزتي async و await لكتابة كود متزامن أكثر سهولة في القراءة. كما أنه يدعم اعتراض الطلبات وإلغائها. علاوة على ذلك، هناك حماية مدمجة من جانب العميل ضد تزوير الطلبات عبر المواقع (CSRF).

في هذا الدليل، سنعرض كيفية استخدام Axios للوصول إلى واجهة برمجة التطبيقات الشهيرة JSON Placeholder في تطبيق React تجريبي. يمكنك معرفة المزيد عن تنسيق JSON في JavaScript من هذا البرنامج التعليمي.

المتطلبات الأساسية

لإكمال الخطوات الموضحة في هذا الدليل، ستحتاج إلى المكونات التالية:

الخطوة 1: تثبيت Axios في مشروع React

يتوفر Axios مباشرة كـ حزمة npm. تحقق من Axios على npm. كل ما نحتاجه هو إنشاء مشروع React وتثبيت حزمة Axios.

سيقوم أمر npx التالي بتشغيل create-react-app لإنشاء مشروع React جديد. سيتم استخدام اسم المشروع لإنشاء دليل مخصص للمشروع. هنا، قمنا بتسمية المشروع react-axios-demo. قم بتشغيل الأمر:

npx create-react-app

قم بتغيير الدليل الحالي إلى دليل المشروع الذي تم إنشاؤه حديثًا:

بعد ذلك، قم باستدعاء أمر npm install لتثبيت Axios. إذا لم يتم تحديد إصدار، فإن npm سيقوم تلقائيًا بتنزيل وتثبيت أحدث إصدار من Axios:

npm install axios

مشروعنا الآن جاهز لاستخدام Axios! حان الوقت لتطبيق ميزاته عمليًا.

الخطوة 2: إنشاء طلب GET

في هذه الخطوة، سنعرض إنشاء مكون جديد يستخدم Axios لإرسال طلب GET .

أولاً، قم بإنشاء مكون جديد باسم PersonList والذي سيعرض قائمة بالأسماء. قم بإنشاء دليل مخصص لتخزين المكون:

mkdir -pv

بعد ذلك، قم بإنشاء الملف PersonList.js :

افتح الملف في محرر نصوص. نحن نستخدم Visual Studio Code للسهولة والوضوح. أدخل كود JavaScript التالي:

 

this.state.persons

هنا:

  • لقد قمنا باستيراد React و Axios حتى نتمكن من استخدامهما معًا في المكون.

  • نحن نربط بخطاف دورة الحياة componentDidMount ونرسل طلب GET.

يمكنك استخدام axios.get(<url>) من نقطة نهاية واجهة برمجة التطبيقات (API endpoint) للحصول على وعد (يُرجع كائن استجابة). يحتوي كائن الاستجابة على البيانات المطلوبة. ثم نقوم بتعيينها لقيمة person. يمكننا أيضًا جمع معلومات إضافية حول الطلب، مثل رمز الحالة ضمن res.status أو مزيد من المعلومات من res.request.

بعد ذلك، نحتاج إلى إضافة المكون الخاص بنا إلى ملف App.js الرئيسي. أضف الأكواد التالية:

 

import PersonList

اكتمل التكوين لهذه الخطوة. يمكنك الآن تشغيل التطبيق واختباره باستخدام متصفحك المفضل. ابدأ تشغيل خادم التطوير:

Axios React code screenshot 1

كما نرى، يظهر المخرج قائمة بأسماء الأشخاص بترتيب عشوائي:

React app

الخطوة 3: إنشاء طلب POST

في هذا القسم، سنعرض استخدام Axios لإجراء طريقة طلب HTTP أخرى تسمى POST. لتوضيح ذلك، هدفنا هو إنشاء مكون جديد لمشروع React الخاص بنا باسم PersonAdd.

أنشئ الملف PersonAdd.js:

Axios React code screenshot 2

ثم افتح الملف في محرر نصوص وأدخل الكود التالي:

Axios React code screenshot 3

في هذا الكود، نقوم بأخذ مدخلات المستخدم وإرسال المحتوى عبر طلب POST إلى واجهة برمجة التطبيقات (API). داخل دالة handleSubmit، نمنع الإجراء الافتراضي للنموذج ونقوم بتحديث الحالة (state) لتطابق مدخلات المستخدم. عند استخدام POST فإنه يعيد نفس كائن الاستجابة. يمكننا استخدام الكائن داخل استدعاء then. لتلبية طلب POST، نقوم بالتقاط مدخلات المستخدم وإضافتها مع طلب POST. يمنحنا هذا استجابة. نقوم بتسجيل الاستجابة باستخدام console.log. يجب أن يظهر ذلك مدخلات user في النموذج.

بعد ذلك، أضف المكون إلى App.js. يجب أن يبدو الكود الكامل كما يلي:

Axios React code screenshot 4

الآن، حان الوقت لاختبار التغييرات. ابدأ تشغيل خادم التطوير:

تحقق من التغيير على متصفح الويب:

Axios React code screenshot 5

الخطوة 4: إنشاء طلب DELETE

في هذا القسم، سنوضح كيفية حذف العناصر من واجهة برمجة التطبيقات (API) بمساعدة axios.delete واستخدام عنوان URL كمعلمة (parameter). للتوضيح، أنشئ المكون PersonRemove. أنشئ الملف PersonRemove.js في مجلد src/components :

Axios React code screenshot 6

بعد ذلك، افتح الملف في محرر نصوص وأضف الكود التالي:

Axios React code screenshot 7

هنا، كائن res يقدم معلومات حول الطلب. يمكننا بعد ذلك استخدام console.log بعد إرسال النموذج.

بعد ذلك، قم بتنفيذ المكون في App.js:

Axios React code screenshot 8

حان الوقت لاختبار الكود الخاص بنا مرة أخرى. ابدأ تشغيل الخادم:

يجب أن تجد نموذجًا جديدًا يأخذ اسم المستخدم ويحذفه من القائمة:

npm start

الخطوة 5: تطبيق المثيل الأساسي في Axios

الآن، سنعمل مع مثيل Axios الأساسي. هنا، يمكننا تحديد عنوان URL وعناصر التكوين الأخرى. لتنفيذه، قم بإنشاء ملف منفصل api.js:

Axios React code screenshot 9

افتحه في محرر نصوص وأدخل الكود التالي:

export default axios.create

بمجرد إعداده، يمكننا استخدامه داخل مكون PersonRemove. إليك كيف سيبدو الكود:

Axios React code screenshot 10

هنا، تم تعيين http://jsonplaceholder.typicode.com/ كعنوان URL الأساسي. الآن، لم نعد بحاجة إلى استخدام عنوان URL الكامل في كل مرة نصل فيها إلى نقطة نهاية واجهة برمجة التطبيقات (API).

الخطوة 6: تنفيذ async و await

في هذا القسم، سنلقي نظرة على كيفية تنفيذ async و await للعمل مع الوعود. تقوم الكلمة المفتاحية await بحل الـ promise وإرجاع الـ value. يمكننا تعيين هذه الـ value لمتغير لاستخدام أكثر سهولة.

إليك كيف سيبدو الكود المحدث لـ PersonRemove.js:

Implement async and await

هنا، قمنا باستبدال .then(). بمجرد أن promise يتم حله، نقوم بتخزين القيمة في المتغير response.

أفكار نهائية

في هذا البرنامج التعليمي، استكشفنا أمثلة مختلفة لاستخدام Axios للعمل مع REST API. تعرض الأكواد البرمجية إنشاء طلبات HTTP ومعالجة الاستجابات.

هل أنت مهتم بمعرفة المزيد عن JavaScript؟ تحقق من أدلة المبتدئين الأخرى لدينا حول مفاهيم وميزات JavaScript المختلفة، على سبيل المثال، التاريخ والوقت, معالجة السلاسل النصية, الفئات، و الكائنات.

حوسبة سعيدة!

author

Hark Labs

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.