واجهات برمجة التطبيقات تلعب دورًا محوريًا. إنها تسمح للتطبيقات بالتواصل مع الخدمات الخارجية، واسترجاع البيانات، وأداء مهام متنوعة. واحدة من المكتبات الشائعة لإجراء طلبات HTTP في JavaScript هي Axios.
في هذه المقالة، سنتناول تفاصيل استخدام Axios لإجراء طلبات GET مع الجسم والرؤوس. لذا احضر مشروبك المفضل، ولنبدأ!
ما هو Axios
Axios هو عميل HTTP معتمد على الوعود للمتصفح و Node.js. إنه يبسط عملية إجراء طلبات HTTP، ومعالجة الاستجابات، وإدارة الأخطاء. سواء كنت تبني تطبيق صفحة واحدة أو مشروع من جانب الخادم، فإن Axios يساندك.

لماذا تستخدم Axios وكيفية تثبيته؟
- صياغة نظيفة: يوفر Axios صياغة نظيفة وبديهية لإجراء الطلبات.
- الوعود: يعيد Axios الوعود، مما يسهل التعامل مع العمليات غير المتزامنة.
- توافق مع المتصفح و Node.js: يعمل بسلاسة في كلا البيئتين.
- المعترضات: يمكنك الاعتراض على الطلبات والاستجابات، وإضافة منطق مخصص.
يمكنك تثبيت Axios باستخدام npm أو yarn. إليك كيفية تثبيته :
باستخدام npm:
$ npm install axios
باستخدام bower:
$ bower install axios
باستخدام yarn:
$ yarn add axios
باستخدام CDN jsDelivr:
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
باستخدام CDN unpkg:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
ما هي الجسم والرأس التي يمكنك استخدامها مع طلب GET؟
عند إجراء طلب GET باستخدام Axios، فإن مواصفات HTTP عادة لا تشمل جسم الطلب. ومع ذلك، هناك سيناريوهات حيث قد تحتاج إلى إرسال بيانات مع طلب GET الخاص بك. دعونا نستكشف كيف يمكنك تحقيق ذلك:
معلمات الاستعلام (معلمات URL):
- بدلاً من تضمين البيانات في جسم الطلب، يمكنك تمريرها كمعلمات استعلام في URL.
- استخدم خاصية
paramsفي كائن إعداد Axios لإرسال البيانات كمعلمات استعلام.
مثال:
const data = {
param1: 'value1',
param2: 'value2',
};
axios.get('https://api.example.com/resource', { params: data })
.then((response) => {
console.log('البيانات المستلمة:', response.data);
})
.catch((error) => {
console.error('خطأ في استرجاع البيانات:', error.message);
});
- على جانب الخادم، يمكنك الوصول إلى هذه المعلمات باستخدام
req.query.param1وreq.query.param2.
الرؤوس:
- الرؤوس ضرورية للمصادقة، والتفويض، وأغراض أخرى.
- يمكنك تعيين رؤوس مخصصة باستخدام خاصية
headersفي كائن إعداد Axios.
مثال:
const config = {
headers: {
Authorization: 'Bearer YOUR_ACCESS_TOKEN',
'Custom-Header': 'قيمة مخصصة',
},
};
axios.get('https://api.example.com/protected-resource', config)
.then((response) => {
console.log('البيانات المحمية:', response.data);
})
.catch((error) => {
console.error('خطأ في استرجاع البيانات المحمية:', error.message);
});
- استبدل
'Bearer YOUR_ACCESS_TOKEN'بالتوكن الخاص بك.
تجنب إرسال الجسم في طلبات GET:
- بينما من الممكن تقنيًا إرسال جسم في طلب GET باستخدام Axios، يعتبر ذلك عادة ممارسة سيئة.
- لا تحدد مواصفات HTTP جسمًا للطلب لطلبات GET.
- إذا كنت بحاجة إلى إرسال بيانات، ففضل استخدام معلمات الاستعلام أو طرق مناسبة أخرى.
تذكر أن الالتزام بأفضل الممارسات يضمن كودًا قويًا وسهل الصيانة. إذا وجدت نفسك بحاجة لإرسال بيانات معقدة مع طلب GET، فكر في إعادة تقييم تصميمك لضمان توافقه مع المعايير القياسية.
كيف تضيف وترسل الرأس والجسم في طلب GET باستخدام Axios؟
عند استخدام Axios لإجراء طلبات GET، من المهم فهم أن مواصفات HTTP عادة لا تشمل جسم الطلب لطلبات GET. ومع ذلك، يمكنك لا يزال إرسال بيانات إضافية باستخدام معلمات الاستعلام والرؤوس. إليك كيفية إضافة وإرسال الرؤوس، وكيفية العمل مع البيانات في طلب GET:
إضافة الرؤوس
لإضافة رؤوس إلى طلب GET الخاص بك في Axios، يمكنك تمرير كائن إعداد مع خاصية headers. إليك مثال:
const axios = require('axios');
const config = {
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Custom-Header': 'قيمة مخصصة'
}
};
axios.get('https://api.example.com/data', config)
.then((response) => {
// تعامل مع الاستجابة
})
.catch((error) => {
// تعامل مع أي أخطاء
});
إرسال البيانات مع طلبات GET
بينما قد لا يكون إرسال جسم مع طلب GET أمرًا قياسيًا وعادة ما يتم النأي عنه، يمكنك إرسال بيانات كمعلمات استعلام باستخدام خاصية params في كائن إعداد Axios:
const params = {
key1: 'value1',
key2: 'value2'
};
axios.get('https://api.example.com/data', { params })
.then((response) => {
// تعامل مع الاستجابة
})
.catch((error) => {
// تعامل مع أي أخطاء
});
على جانب الخادم، ستكون هذه البيانات متاحة عبر request.query، وليس request.body. كما أنه من الجدير بالذكر أن هذه المعلمات ستضاف إلى URL.

الأخطاء الشائعة ونصائح استكشاف الأخطاء وإصلاحها
عند العمل باستخدام Axios لإجراء طلبات GET مع الجسم والرؤوس، قد يواجه المطورون بعض الأخطاء الشائعة. إليك بعض نصائح استكشاف الأخطاء لمساعدتك في حل هذه المشكلات:
الأخطاء الشائعة
1. خطأ: Axios get ليست دالة
- السبب: يحدث هذا الخطأ عادة عندما يكون هناك مشكلة في استيرادات Axios أو عند محاولة استدعاء
.getعلى متغير غير معرّف. - الحل: تأكد من استيراد Axios بشكل صحيح وأنك تستدعي
.getعلى مثيل Axios.
2. خطأ: خطأ شبكة
- السبب: يمكن أن يحدث هذا الخطأ بسبب مشاكل CORS، أو مشاكل في اتصال الشبكة، أو فشل من جانب الخادم.
- الحل: تحقق من اتصال الشبكة، تأكد من أن الخادم يعمل، وتحقق من تكوين CORS بشكل صحيح على الخادم.
3. خطأ: فشل الطلب برمز الحالة 4xx/5xx
- السبب: هذه الأخطاء هي استجابات من الخادم تشير إلى مشكلات من جانب العميل (4xx) أو مشكلات من جانب الخادم (5xx).
- الحل: بالنسبة إلى أخطاء 4xx، تحقق من عنوان الطلب، والرؤوس، والمعلمات. بالنسبة إلى أخطاء 5xx، تحقق من سجلات الخادم للحصول على مزيد من التفاصيل.
4. خطأ: مهلة
- السبب: استغرقت الطلب مدة أطول من
timeoutالمحددة في Axios. - الحل: زيادة قيمة
timeoutفي إعداد طلب Axios أو تحسين وقت استجابة الخادم.
5. خطأ: عنوان URL غير صالح
- السبب: عنوان URL المقدم في طلب Axios غير صحيح أو مشوه.
- الحل: تحقق من صواب عنوان URL وتأكد من أنه مشفر بشكل صحيح.
6. خطأ: الرؤوس مرفوضة
- السبب: قد يرفض الخادم الطلبات مع بعض الرؤوس بسبب سياسات الأمان.
- الحل: راجع الرؤوس المرسلة وتأكد من أنها تتوافق مع التنسيق والقيم المتوقعة من الخادم.
7. خطأ: لم يتم استلام الاستجابة
- السبب: لم يرسل الخادم استجابة، ربما بسبب تعطل أو انتهاء المهلة.
- الحل: تحقق من حالة الخادم والسجلات لتحديد أي مشاكل محتملة.
استكشاف أخطاء متقدم:
- معترضات Axios: استخدم معترضات Axios لتسجيل الطلبات والاستجابات لأغراض تصحيح الأخطاء.
- axios-retry: تنفيذ حزمة
axios-retryللتعامل تلقائيًا مع الأخطاء العابرة. - أدوات تصحيح الأخطاء: استخدم أدوات تصحيح الأخطاء للانتقال عبر الشيفرة الخاصة بك وتحديد مكان حدوث المشكلات.
يتطلب استكشاف الأخطاء بشكل فعال نهجًا منهجيًا لتحديد المشكلة، وفهم رسائل الخطأ، وتطبيق الحلول المناسبة. من خلال اتباع هذه النصائح، يجب أن تكون قادرًا على حل معظم المشكلات التي قد تواجهها أثناء إجراء طلبات GET باستخدام Axios.
كيف ترسل طلبات GET مع الجسم والرأس باستخدام Apidog
Apidog هو أداة قوية يمكن أن تساعدك في إرسال طلبات GET مع معلمات الجسم والرأس بشكل أسهل.
إرسال طلبات GET مع الرأس:
افتح Apidog واضغط على زر طلب جديد.

أدخل عنوان URL لنقطة النهاية لـ واجهة برمجة التطبيقات التي تريد إرسال طلب GET إليها، ثم اضغط على علامة التبويب الرؤوس واختر الخيار الذي تريده. في هذا المثال، نختار المصادقة.

أضف بيانات الاعتماد الخاصة بك (البيانات الفعلية المطلوبة للتحقق من الخادم مثل اسم المستخدم/كلمة المرور، التوكن، التجزئة)

أرسل الطلب وحلل الاستجابة.

يسهل Apidog العمل مع رؤوس المصادقة، لذا يمكنك اختبار واجهات برمجة التطبيقات الخاصة بك بثقة!
إرسال طلبات GET مع الجسم:
اختبار طلبات GET مع جسم يمكن أن يكون معقدًا بعض الشيء نظرًا لأن مواصفات HTTP تعتبر تقليديًا طلبات GET مؤثرة (مما يعني أنها لا تغير حالة الخادم). ومع ذلك، قد تسمح بعض واجهات برمجة التطبيقات بسلوك مخصص حيث يمكنك تضمين جسم الطلب حتى في طلبات GET.
انتقل إلى علامة التبويب "الجسم" واختر مواصفات الجسم التي تريد إضافتها.

أرسل الطلب وتحقق من أن رمز حالة الاستجابة هو حسنًا.

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

2. انسخ شفرة Axios المولدة والصقها في مشروعك.

أفضل الممارسات لطلبات GET لـ Axios
لضمان الاستخدام الفعال للمعلمات في طلبات GET لـ Axios، ضع في اعتبارك أفضل الممارسات التالية:
- اختر أسماء معلمات وصفية: استخدم أسماء ذات مغزى لمعاملاتك لتعزيز readability وقابلية صيانة كودك. يجعل هذا الأمر أسهل على المطورين الآخرين (بما في ذلك نفسك في المستقبل) لفهم هدف كل معلمة.
- تحقق من بيانات إدخال المستخدم وقم بتنظيفها: عند قبول إدخال المستخدم كمعلمات، تحقق وصحح القيم لتجنب مشاكل الأمان المحتملة مثل حقن SQL أو البرمجة النصية عبر المواقع (XSS). استخدم تقنيات التحقق والتنظيف من جانب الخادم لضمان الأمان لتطبيقك.
- تعامل مع المعلمات الافتراضية أو الاختيارية: في بعض الحالات، قد ترغب في تضمين معلمات افتراضية أو اختيارية في طلبات GET. للتعامل مع ذلك، يمكنك إضافة المعلمات إلى كائن
paramsبناءً على معايير معينة. يسمح لك ذلك بتقديم قيمة احتياطية عندما لا يتم تقديم معلمة بشكل صريح. - تشير إلى ترقيم الصفحات وتحديد البيانات: إذا كنت تتعامل مع مجموعة بيانات كبيرة، ضع في اعتبارك تنفيذ ترقيم الصفحات للحد من كمية البيانات المسترجعة في كل طلب. يساعد ذلك في تحسين الأداء ويقلل من الضغط على كل من العميل والخادم. يمكنك تضمين معلمات مثل
pageوlimitللتحكم في عملية ترقيم الصفحات.
الخاتمة
إجراء طلبات GET عبر واجهة برمجة تطبيقات Axios مع الجسم والرؤوس هو مهارة مهمة لأي مطور يعمل مع واجهات برمجة التطبيقات. لقد قدمت لك هذه المقالة دليلًا شاملًا حول كيفية القيام بذلك. لقد غطينا كل شيء من إعداد Axios، وإنشاء طلب GET، إلى التعامل مع الاستجابات والأخطاء.
مع قوة Apidog، يمكنك تعديل معلمات الرأس والجسم بسهولة. مع هذه المعرفة، يمكنك الآن التفاعل مع واجهات برمجة التطبيقات بثقة، واسترجاع البيانات بكفاءة، وبناء تطبيقات أكثر ديناميكية واستجابة. تذكر أن المفتاح لإتقان هذه المفاهيم هو الممارسة. لذا، لا تتردد في استكشاف Apidog وابدأ في إجراء تلك الطلبات! برمجة سعيدة!
