كتابة البيانات

مكتمل

حتى الآن، قمت بتطوير مسارات لقراءة البيانات الخاصة بواجهة برمجة تطبيقات منتجات Tailwind Traders. ومع ذلك، تحتاج إلى إضافة منتجات أيضا.

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

فهم كيفية كتابة البيانات إلى واجهة برمجة التطبيقات

لكتابة البيانات، استخدم أسلوب HTTP للإشارة إلى ما إذا كانت البيانات جديدة أو تحديثا للبيانات الموجودة.

أساليب HTTP الشائعة هي:

الطريقة ‏‏الوصف
POST خلق مورد جديد.
PUT تحديث مورد موجود.
PATCH تحديث جزء من مورد موجود.

PUT و PATCH متشابهان. الفرق هو أن PUT يحل محل المورد بأكمله. PATCH يستبدل فقط الخصائص المحددة في نص الطلب.

فهم كيفية تكوين تطبيقك لتلقي البيانات

لتلقي البيانات في تطبيق الويب الخاص بك، قم بتكوين Express استنادا إلى تنسيق البيانات الواردة مثل تنسيق HTML أو JSON. هذه هي الخطوات الشائعة دون النظر إلى تنسيق البيانات.

إشعار

يتم إرسال البيانات من خلال النص الأساسي للطلب.

  1. استورد موزع نص أساسي. لتحويل البيانات الواردة إلى تنسيق قابل للقراءة، قم باستيراد المكتبة body-parser المثبتة باستخدام Express:

    let bodyParser = require('body-parser');
    
  2. كوّن نوع البيانات. كوّن Express لتوزيع بيانات النص الأساسي الواردة إلى التنسيق المقصود. التعليمات البرمجية التالية تحول البيانات إلى JSON:

    app.use(bodyParser.json({ extended: false }));
    

تتوفر البيانات المرسلة من العميل من req.body. يمكنك قراءة البيانات وإدراجها في قاعدة البيانات.

فهم كيفية إدراج منتج جديد

بعد تكوين تطبيق لتلقي البيانات، تكون جاهزا لإنشاء تعليمة برمجية لإدراج البيانات. فيما يلي مثال على بعض التعليمات البرمجية التي تدرج منتجات جديدة في مخزن بيانات تطبيق Tailwind Trader:

// Insert a new product
app.post('/products', (req, res) => {
  const newProduct = req.body;
  newProduct.id = products.length + 1;
  products.push(newProduct);
  res.status(201).json(newProduct);
});

استدعاء واجهة برمجة التطبيقات هذه مع طلب POST إلى /products مع نص JSON لإدراج منتج جديد. على سبيل المثال:

{
  "name": "The Hobbit",
  "author": "J.R.R. Tolkien"
}

فهم كيفية تحديث المنتج بأكمله

بالإضافة إلى إضافة منتجات جديدة، تحتاج Tailwind Traders إلى القدرة على استبدال بيانات المنتج الحالية. فيما يلي عينة من تلك التعليمات البرمجية PUT ، التي تعالج الطلبات:

app.put('/products/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const updatedProduct = req.body;
  const index = products.findIndex(product => product.id === id);
  if (index !== -1) {
    products[index] = updatedProduct;
    res.json(updatedProduct);
  } else {
    res.status(404).send('Product not found');
  }
});

استدعاء واجهة برمجة التطبيقات هذه مع طلب PUT إلى /products/:id مع نص JSON لتحديث منتج. على سبيل المثال:

{
  "id": 1,
  "name": "The Hobbit",
  "author": "J.R.R. Tolkien"
}

فهم كيفية تحديث جزء من منتج

تحتاج أيضا إلى القدرة على استبدال جزء من بيانات المنتج بدلا من كل ذلك. فيما يلي مثال على هذه التعليمات البرمجية PATCH ، التي تعالج الطلبات:

app.patch('/products/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const updates = req.body;
  const index = products.findIndex(product => product.id === id);
  if (index !== -1) {
    // overwrite existing properties with updates
    products[index] = {...products[index], ...updates};
    res.json(products[index]);
  } else {
    res.status(404).send('Product not found');
  }
});

استدعاء واجهة برمجة التطبيقات هذه مع طلب PATCH إلى /producs/:id مع نص JSON لتحديث منتج. على سبيل المثال:

{
  "author": "J.R.R. Tolkien"
}