شرح إخفاء _v و _id في Node.js لتسريع عملية انشاء واجهات برمجة التطبيقات

شرح إخفاء _v و _id في Node.js لتسريع عملية انشاء واجهات برمجة التطبيقات

شرح إخفاء _v و _id في Node.js لتسريع عملية انشاء واجهات برمجة التطبيقات

في عالم تطوير واجهات برمجة التطبيقات (APIs)، تعتبر السرعة والفعالية احد العوامل الأساسية لضمان تجربة مستخدم ممتازة. عند العمل مع قواعد البيانات في Node.js، خاصةً مع MongoDB الغنيه عن التعريف، قد تواجه حقلين تلقائيين يتم إنشاؤهما تلقائيًا: _id و _v. هذه الحقول قد لا تكون ضرورية دائمًا للعرض في واجهة البرمجة، وقد تؤثر على أداء التطبيق إذا لم يتم التعامل معها بشكل صحيح. في هذا المقال، سنشرح كيفية إخفاء _v و _id لتحسين أداء APIs.

يُعد إخفاء _v و _id تقنية أساسية لإنشاء واجهات برمجة تطبيقات (APIs) قوية وسهلة الاستخدام في Node.js._v: هو إصدار الوثيقة، وهو رقم يزداد كلما تم تحديث الوثيقة , _id: هو معرف الوثيقة الفريد.


ما هي _v و _id؟

_v: هو إصدار الوثيقة، وهو رقم يزداد كلما تم تحديث الوثيقة.

_id: هو معرف الوثيقة الفريد.


لماذا يجب إخفاء _v و _id؟

الأمان:

_v: يمكن استخدام _v لتحديد إصدار الوثيقة.

_id: يمكن استخدام _id لتحديد هوية الوثيقة بشكل فريد.


قابلية الاستخدام:

_v: قد لا يكون _v مفيدًا للمطورين الذين يستخدمون واجهة برمجة التطبيقات (API).

_id: قد يكون _id صعبًا على المطورين الذين يستخدمون واجهة برمجة التطبيقات (API) لفهمه.


قابلية التطوير:

_v: قد يتغير _v بمرور الوقت، مما قد يؤدي إلى مشكلات في التوافق.

_id: قد يتغير _id إذا تم نقل البيانات إلى نظام آخر.


استخدام mongoose

const mongoose = require('mongoose');

const schema = new mongoose.Schema({
  name: String,
  age: Number,
}, {
  timestamps: true,
  toJSON: {
    virtuals: true,
    transform: (doc, ret) => {
      delete ret._v;
      delete ret._id;
    },
  },
});

const Model = mongoose.model('Model', schema);

استخدام middleware

const express = require('express');

const app = express();

app.use((req, res, next) => {
  if (req.method === 'GET') {
    delete req.query._v;
    delete req.query._id;
  }

  next();
});

app.get('/endpoint', (req, res) => {
  // ...
});

اخفاء _v و _id اثناء عرضها في response


User.find({},{"__id":false,"__v":false});


 فوائد إخفاء _id و _v

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

إخفاء _id و _v في Node.js يمكن أن يكون استراتيجية فعالة لتحسين أداء واجهات برمجة التطبيقات. من خلال استخدام الأدوات المناسبة مثل select، تعديل Schema، أو Middleware، يمكنك تقليل حجم البيانات المرسلة وتحسين تجربة المستخدم النهائية. ومع ذلك، تأكد من اختبار التغييرات وتوثيقها بشكل صحيح لضمان عدم تأثيرها على التطبيقات الأخرى.

تعليقات