Data tulis

Selesai

Sejauh ini, Anda telah mengembangkan rute untuk membaca data untuk API produk Tailwind Traders. Namun, Anda juga perlu menambahkan produk.

Dalam unit ini, kita membahas berbagai metode yang dapat kita gunakan untuk menambahkan atau memperbarui produk dan menunjukkan contoh bagaimana kode tersebut diimplementasikan. Di unit berikutnya, Anda benar-benar akan mengedit kode aplikasi untuk menambahkan produk baru dan memperbarui yang sudah ada.

Memahami cara menulis data ke API

Untuk menulis data, gunakan metode HTTP untuk menunjukkan apakah data baru atau pembaruan ke data yang sudah ada.

Metode HTTP umum adalah:

Metode Deskripsi
POST Buat sumber daya baru.
PUT Perbarui sumber daya yang sudah ada.
PATCH Perbarui bagian dari sumber daya yang ada.

PUT dan PATCH serupa. Perbedaannya adalah menggantikan PUT seluruh sumber daya. PATCH hanya mengganti properti yang ditentukan dalam isi permintaan.

Memahami cara mengonfigurasi aplikasi Anda untuk menerima data

Untuk menerima data di aplikasi web Anda, konfigurasikan Express berdasarkan format data masuk seperti format HTML atau JSON. Ini adalah langkah-langkah umum, terlepas dari format data.

Catatan

Data dikirim melalui isi permintaan.

  1. Mengimpor pengurai isi. Untuk mengonversi data masuk menjadi format yang dapat dibaca, impor body-parser pustaka yang diinstal dengan Ekspres:

    let bodyParser = require('body-parser');
    
  2. Mengkonfigurasi jenis data. Konfigurasikan Ekspres untuk mengurai data isi masuk ke dalam format yang dimaksudkan. Kode berikut mengonversi data ke JSON:

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

Data yang dikirim dari klien tersedia dari req.body. Anda bisa membaca data dan menyisipkannya ke dalam database.

Memahami cara menyisipkan produk baru

Setelah mengonfigurasi aplikasi untuk menerima data, Anda siap untuk membuat kode untuk menyisipkan data. Berikut adalah contoh beberapa kode yang menyisipkan produk baru ke penyimpanan data aplikasi 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);
});

Panggil API ini dengan permintaan POST ke /products dengan isi JSON untuk menyisipkan produk baru. Contohnya:

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

Memahami cara memperbarui seluruh produk

Selain menambahkan produk baru, Tailwind Traders membutuhkan kemampuan untuk mengganti data produk yang ada. Berikut adalah sampel kode tersebut, yang menangani PUT permintaan:

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');
  }
});

Panggil API ini dengan permintaan PUT ke /products/:id dengan isi JSON untuk memperbarui produk. Contohnya:

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

Memahami cara memperbarui bagian dari produk

Anda juga memerlukan kemampuan untuk mengganti sebagian data produk daripada semuanya. Berikut adalah contoh kode tersebut, yang menangani PATCH permintaan:

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');
  }
});

Panggil API ini dengan permintaan PATCH ke /producs/:id dengan isi JSON untuk memperbarui produk. Contohnya:

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