Axios — عميل HTTP لجافا سكريبت (Node.js)

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Axios؟

Axios هو عميل HTTP شائع للغة JavaScript، يعمل في كل من المتصفح وبيئة Node.js. يعتمد على الوعود (Promise) ويوفر واجهة برمجة تطبيقات (API) ملائمة لتنفيذ طلبات HTTP. تقوم المكتبة تلقائياً بمعالجة JSON، وتدعم المعترضات (interceptors)، وإلغاء الطلبات، والحماية من CSRF.

لماذا نحتاج Axios؟

على عكس fetch المدمج، يقدم Axios وظائف أكثر ثراءً «مباشرة من الصندوق»: تحويل تلقائي للبيانات، أشرطة تقدم للتحميل، مهلات زمنية، محاولات إعادة، والعمل مع المتصفحات القديمة. بالنسبة لمطوري Node.js، فهو أداة لا غنى عنها للتفاعل مع REST API، والخدمات المصغرة، والخدمات الخارجية.

التثبيت

قم بتثبيت المكتبة عبر npm أو yarn:

npm install axios

أو للاستخدام العام:

npm install -g axios

الوظائف الأساسية

  • دعم جميع طرق HTTP: GET, POST, PUT, DELETE, PATCH وغيرها.
  • التسلسل/إلغاء التسلسل التلقائي لـ JSON.
  • معترضات الطلبات والاستجابات لتسجيل الدخول، والمصادقة، ومعالجة الأخطاء.
  • إلغاء الطلبات عبر AbortController (API حديث) أو CancelToken (قديم).
  • المهلات الزمنية ومحاولات إعادة المحاولة (عبر الإضافات أو الإعداد اليدوي).
  • تحميل الملفات مع التقدم (عبر onUploadProgress).

مثال كود على Node.js

const axios = require('axios');

async function getPost(id) { try { const response = await axios.get(`https://jsonplaceholder.typicode.com/posts/${id}`); console.log('البيانات:', response.data); } catch (error) { console.error('خطأ:', error.message); }}

getPost(1);

// طلب POST مع بياناتconst newPost = { title: 'عنوان', body: 'نص المنشور', userId: 1,};

axios.post('https://jsonplaceholder.typicode.com/posts', newPost) .then(res => console.log('تم الإنشاء:', res.data)) .catch(err => console.error('خطأ:', err));

متى تستخدم Axios

يعتبر Axios مثالياً للمشاريع التي تتطلب عميل HTTP موثوقاً مع إمكانيات متقدمة: تطبيقات المؤسسات، بنية الخدمات المصغرة، التكامل مع واجهات API الخارجية، وكذلك في الحالات التي تحتاج فيها إلى توافق عكسي مع الإصدارات القديمة من Node.js (حتى 18.x). إذا كنت تفضل الحلول خفيفة الوزن، ففكر في استخدام node-fetch أو fetch المدمج في Node.js 18+.

الخلاصة

يظل Axios هو المعيار الفعلي لطلبات HTTP في نظام JavaScript البيئي. بفضل بساطته ومرونته ومجتمعه الواسع، تناسب هذه المكتبة كلاً من النماذج الأولية السريعة والأنظمة الإنتاجية الكبيرة.

توصيات