إذا كنت مطور ويب، فمن المحتمل أنك تعرف مدى أهمية التواصل مع واجهات برمجة التطبيقات (APIs). واجهات برمجة التطبيقات هي الواجهات التي تسمح للتطبيقات المختلفة بتبادل البيانات وتنفيذ الإجراءات. واحدة من أكثر الطرق شيوعًا للتفاعل مع واجهات برمجة التطبيقات هي استخدام طلبات HTTP. طلبات HTTP هي رسائل تتبع تنسيق وبروتوكول معين، ويمكن استخدامها لإرسال واستلام البيانات من الخادم.
هناك أنواع مختلفة من طلبات HTTP، مثل GET و POST و PUT و PATCH و DELETE. لكل واحدة منها هدف ومعنى مختلف. في هذا المنشور، سنركز على طلب DELETE، الذي يُستخدم لإزالة مورد من الخادم. سنتعلم كيفية إجراء طلب DELETE في Node.js، وهو بيئة تشغيل JavaScript مشهورة تسمح لك بتشغيل كود JavaScript على جانب الخادم.
بنهاية هذا المنشور، سيكون لديك فهم قوي لكيفية إجراء طلب DELETE في Node.js وكيفية العمل مع واجهات برمجة التطبيقات بشكل فعال. لنبدأ!
ما هو طلب DELETE ومتى يتم استخدامه
طلب DELETE هو أحد طرق HTTP التي تستخدم للتواصل مع واجهات برمجة التطبيقات. كما يشير الاسم، يتم استخدام طلب DELETE لحذف مورد من الخادم. يمكن أن يكون المورد أي شيء يتم التعرف عليه بواسطة عنوان URL فريد، مثل مستخدم، أو منشور، أو تعليق، أو ملف، إلخ.
عادة ما يتم إرسال طلب DELETE مع عنوان URL يحدد المورد المراد حذفه. على سبيل المثال، إذا كنت تريد حذف مستخدم له معرف 123 من واجهة برمجة التطبيقات، قد ترسل طلب DELETE إلى عنوان URL https://example.com/api/users/123. ثم يقوم الخادم بمعالجة الطلب وإرجاع استجابة تشير إلى ما إذا كانت الحذف ناجحًا أم لا.
يتم استخدام طلب DELETE عادةً عندما تريد إزالة شيء لم يعد مطلوبًا أو ذا صلة. على سبيل المثال، يمكنك استخدام طلب DELETE لـ:
- حذف حساب مستخدم غير نشط أو مزعج
- حذف منشور أو تعليق غير مناسب أو مسيء
- حذف ملف قديم أو تالف
- حذف سجل مكرر أو خاطئ
ومع ذلك، يجب عليك أن تكون حذرًا عند استخدام طلب DELETE، لأنه عملية مدمرة لا يمكن التراجع عنها. بمجرد أن تحذف موردًا، فإنه يختفي إلى الأبد. لذلك، يجب عليك دائمًا التأكد من أنك تمتلك التفويض الصحيح والإذن لحذف المورد، وأن لديك آلية للنسخ الاحتياطي أو تأكيد في حال حدوث خطأ ما.
ما هو Node.Js؟
Node.js هو بيئة تشغيل JavaScript تسمح لك بتشغيل كود JavaScript خارج متصفح الويب. يستند Node.js إلى محرك JavaScript Google Chrome V8، ويستخدم لبناء تطبيقات الويب، وخاصة التطبيقات المكثفة البيانات والتي تعمل في الوقت الحقيقي. يحتوي Node.js أيضًا على مكتبة كبيرة من الوحدات والحزم التي يمكنك استخدامها لإضافة وظائف إلى مشاريعك.

بعض فوائد Node.js هي:
- إنه سريع وقابل للتوسع، بفضل طبيعته غير المتزامنة المدفوعة بالأحداث.
- إنه متعدد المنصات ومفتوح المصدر، مما يعني أنه يمكنك تشغيله على أنظمة تشغيل مختلفة والمساهمة في تطويره.
- إنه متسق وموحد، حيث يمكنك استخدام نفس اللغة في كل من الواجهة الأمامية والخلفية لتطبيق الويب الخاص بك.
كيفية إجراء طلب DELETE في Node.js باستخدام الوحدة المدمجة http
إحدى طرق إجراء طلب DELETE في Node.js هي باستخدام الوحدة المدمجة http. الوحدة http هي وحدة أساسية توفر وظيفة منخفضة المستوى للعمل مع طلبات HTTP واستجاباتها. لاستخدام وحدة http، تحتاج إلى استيرادها في كودك، مثل هذا:
const http = require('http');
لإجراء طلب DELETE باستخدام وحدة http، تحتاج إلى استخدام الطريقة http.request(). تأخذ هذه الطريقة وسيطين: كائن خيارات ودالة رد نداء. يحتوي كائن الخيارات على تفاصيل الطلب، مثل الطريقة، اسم المضيف، المنفذ، المسار، الرؤوس، إلخ. يتم تنفيذ دالة رد النداء عندما يكتمل الطلب، وتستلم كائن استجابة كوسيط.
على سبيل المثال، لنفترض أننا نريد إجراء طلب DELETE إلى عنوان URL https://jsonplaceholder.typicode.com/posts/1، وهو واجهة برمجة تطبيقات مزيفة تعيد بيانات وهمية لأغراض الاختبار. يمكننا استخدام الكود التالي للقيام بذلك:
const http = require('http');
// تعريف كائن الخيارات
const options = {
method: 'DELETE', // تحديد طريقة HTTP
hostname: 'jsonplaceholder.typicode.com', // تحديد اسم المضيف
port: 443, // تحديد المنفذ (443 لـ HTTPS)
path: '/posts/1', // تحديد المسار
};
// إجراء الطلب
const req = http.request(options, (res) => {
// التعامل مع الاستجابة
console.log('رمز الحالة:', res.statusCode); // طباعة رمز الحالة
console.log('الرؤوس:', res.headers); // طباعة الرؤوس
// الحصول على البيانات من الاستجابة
let data = '';
res.on('data', (chunk) => {
data += chunk; // ربط الأجزاء
});
// عندما تنتهي الاستجابة، اطبع البيانات
res.on('end', () => {
console.log('البيانات:', data); // طباعة البيانات
});
});
// التعامل مع أي أخطاء
req.on('error', (err) => {
console.error('خطأ:', err.message); // طباعة رسالة الخطأ
});
// إنهاء الطلب
req.end();
كيفية إجراء طلب DELETE في Node.js باستخدام مكتبة Axios
طريقة أخرى لإجراء طلب DELETE في Node.js هي استخدام مكتبة axios. Axios هي مكتبة مشهورة وسهلة الاستخدام تتيح لك إجراء طلبات HTTP من Node.js أو المتصفح. تحتوي Axios على العديد من الميزات والخيارات التي تجعل العمل مع واجهات برمجة التطبيقات أسهل وأكثر ملاءمة. لاستخدام axios، تحتاج إلى تثبيتها في مشروعك باستخدام npm أو yarn، مثل هذا:
npm install axios
# أو
yarn add axios
لـ إجراء طلب DELETE باستخدام Axios، تحتاج إلى استخدام الطريقة axios.delete(). تأخذ هذه الطريقة وسيطين: عنوان URL وكائن إعداد اختياري. يكون عنوان URL هو نفسه الذي ستستخدمه مع وحدة http، ويمكن أن يحتوي كائن الإعداد على معلمات إضافية ورؤوس للطلب. تُرجع الطريقة axios.delete() وعدًا، يمكنك التعامل معه باستخدام الطريقتين then() و catch().
على سبيل المثال، لنستخدم نفس عنوان URL المذكور من قبل، https://jsonplaceholder.typicode.com/posts/1، ونقوم بعمل طلب DELETE باستخدام axios. يمكننا استخدام الكود التالي للقيام بذلك:
const axios = require('axios');
// إجراء الطلب
axios
.delete('https://jsonplaceholder.typicode.com/posts/1')
.then((res) => {
// التعامل مع الاستجابة
console.log('رمز الحالة:', res.status); // طباعة رمز الحالة
console.log('الرؤوس:', res.headers); // طباعة الرؤوس
console.log('البيانات:', res.data); // طباعة البيانات
})
.catch((err) => {
// التعامل مع أي أخطاء
console.error('خطأ:', err.message); // طباعة رسالة الخطأ
});
إذا قمت بتشغيل هذا الكود، يجب أن ترى شيئًا مشابهًا لهذا في وحدة التحكم:
رمز الحالة: 200
الرؤوس: {
التاريخ: 'ثلاثاء، 05 مارس 2024 12:45:47 GMT',
'نوع المحتوى': 'application/json; charset=utf-8',
'طول المحتوى': '2',
الاتصال: 'مغلق',
'عبرها': 'Express',
'حد معدل الوصول': '1000',
'المتبقي من حد معدل الوصول': '998',
'إعادة ضبط حد معدل الوصول': '1614938747',
'تنوع': 'الأصل، قبول الترميز',
'وصول التحكم على الاعتمادات': 'true',
'تحكم ذاكرة التخزين المؤقت': 'no-cache',
بروتوكول: 'no-cache',
انتهاء الصلاحية: '-1',
'وصول التحكم على رؤوس التعرض': 'X-Json-Placeholder-User-Id',
'معرف المستخدم في JSON placeholder': '1',
etag: 'W/"2-vyGp6PvFo4RvsFtPoIWeCReyIC8"',
عبر: '1.1 vegur',
'حالة ذاكرة التخزين المؤقت': 'ديناميكي',
'معرف الطلب': '08a9f9c9f40000e6b4b3f0a000000001',
'توقع-ct': 'max-age=604800، report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
'الإبلاغ إلى': '{"group":"cf-nel","endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report?s=Q%2BZL0U%2FJ9%2F5i2coL0wvYcQLLmZvIML2Zzjwqk3Iw0%2B3U%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fكيفية إجراء طلب DELETE في Node.js باستخدام Apidog
Apidog هو أداة API تبسط عملية إنشاء واختبار واجهات برمجة التطبيقات في Node.js. يسمح لك بتحديد نقاط نهاية واجهة برمجة التطبيقات الخاصة بك باستخدام بناء جمل توضيحي، ويولد تلقائيًا الوثائق، والتحقق، واختبار واجهة برمجة التطبيقات الخاصة بك.
إليك كيفية استخدام Apidog لاختبار طلب DELETE الخاص بك:
- افتح Apidog وأنشئ طلبًا جديدًا.

2. اضبط طريقة الطلب على HTTP DELETE.

3. أدخل عنوان URL للمورد الذي تريد تحديثه. أضف أي رؤوس إضافية أو معلمات تريد تضمينها، ثم انقر فوق زر "إرسال" لإرسال الطلب.

4. تحقق من أن الاستجابة هي كما كنت تتوقع.

الاستنتاج
في هذا المنشور، تعلمنا كيفية إجراء طلب DELETE في Node.js باستخدام ثلاث طرق مختلفة: الوحدة المدمجة http، مكتبة Axios، ومكتبة Apidog. رأينا مزايا وعيوب كل طريقة، وكيفية التعامل مع الأخطاء والاستجابات من طلب DELETE. كما تعلمنا بعض النصائح وأفضل الممارسات لإجراء طلبات DELETE في Node.js والعمل مع واجهات برمجة التطبيقات بشكل فعال.
