Tutorial Restful API dengan Next.js (App Router) dan Prisma ORM #6 : Update Data ke Dalam Database


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com
Tutorial Restful API dengan Next.js (App Router) dan Prisma ORM #6 : Update Data ke Dalam Database

Halo teman-teman semuanya, di artikel sebelumnya kita telah belajar bagaimana cara menampilkan detail data berdasarkan ID di dalam Next.js menggunakan Prisma dan pada kesempatan kali ini kita semua akan belajar bagaimana cara melakukan proses update data di dalam Next.js dan Prisma.

Langkah 1 - Membuat Proses Update Data

Disini kita akan menambahkan method baru untuk proses update data. Silahkan teman-teman buka file src/app/api/posts/[id]/route.js, kemudian ubah semua kode-nya menjadi seperti berikut ini.

src/app/api/posts/[id]/route.js

//import next request and response
import { NextResponse } from "next/server";

//import prisma client
import prisma from "../../../../../prisma/client";

export async function GET(request, { params }) {
  //get params id
  const id = parseInt(params.id);

  //get detail post
  const post = await prisma.post.findUnique({
    where: {
      id,
    },
  });

  if (!post) {
    //return response JSON
    return NextResponse.json(
      {
        sucess: true,
        message: "Detail Data Post Not Found!",
        data: null,
      },
      {
        status: 404,
      }
    );
  }

  //return response JSON
  return NextResponse.json(
    {
      sucess: true,
      message: "Detail Data Post",
      data: post,
    },
    {
      status: 200,
    }
  );
}

export async function PATCH(request, { params }) {
  //get params id
  const id = parseInt(params.id);

  //get request data
  const { title, content } = await request.json();

  //update data
  const post = await prisma.post.update({
    where: {
      id,
    },
    data: {
      title: title,
      content: content,
      updatedAt: new Date(),
    },
  });

  //return response JSON
  return NextResponse.json(
    {
      sucess: true,
      message: "Data Post Updated!",
      data: post,
    },
    {
      status: 200,
    }
  );
}

Dari perubahan kode di atas, kita menambahkan function baru yang bernama PATCH, fungsi tersebut akan digunakan untuk menerima permintaan HTTP untuk proses update.

export async function PATCH(request, { params }) {

	//...
	
}

Di dalam function tersebut kita menerima 2 parameter, yaitu request dan { params }. Untuk request akan digunakan untuk menerima data yang dikirimkan oleh pengguna, sedangkan { params } digunakan untuk mengambil nilai ID di dalam URL browser.

Di dalamnya kita membuat variable yang bernama id dan berisi ID parameter yang di dapatkan dari URL browser dan kita ubah tipe data-nya menjadi Int.

const id = parseInt(params.id);

Kemudian kita melakukan destruct beberapa properti yang diambil dari request.

//get all request
const { title, content } = await request.json();

Setelah data berhasil didapatkan, maka kita tinggal melakukan proses update data ke dalam database menggunakan Prisma.

const post = await prisma.post.update({
  where: {
    id,
  },
  data: {
    title: title,
    content: content,
    updatedAt: new Date(),
  },
});

Jika proses update data berhasil dilakukan, maka kita lakukan return ke dalam format JSON dengan mengirimkan ulang response data yang telah diubah.

return NextResponse.json(
  {
    success: true,
    message: "Data Post Updated!",
    data: post,
  },
  {
    status: 200,
  }
);

Langkah 2 - Uji Coba Update Data

Silahkan teman-teman buka aplikasi Postman, kemudian masukkan URL berikut ini : http://localhost:3000/api/posts/1 dan untuk method-nya silahkan pilih POST.

INFORMASI : contoh di atas, saya memberikan nilai parameter ID 1, karena data yang saya miliki di database memiliki ID tersebut.

Setelah itu, klik tab Body dan pilih raw, kemudian masukkan value berikut ini.

{
    "title": "Belajar Rest API dengan Next.js & Prisma ORM - Edit",
    "content": "Ini adalah isi dari kontent post - Edit" 
}

Jika sudah, silahkan teman-teman klik Send dan jika berhasil maka hasilnya kurang lebih seperti berikut ini.

{
    "sucess": true,
    "message": "Data Post Updated!",
    "data": {
        "id": 1,
        "title": "Belajar Rest API dengan Next.js & Prisma ORM - Edit",
        "content": "Ini adalah isi dari kontent post - Edit",
        "createdAt": "2023-12-11T06:51:34.978Z",
        "updatedAt": "2023-12-12T01:47:19.405Z"
    }
}

Kesimpulan

Pada artikel kali ini kita telah belajar tentang operasi update data menggunakan function PATCH yang disediakan oleh Next.js dan kita lakukan update ke dalam database menggunakan Prisma.

Pada artikel selanjutnya, kita semua akan belajar bersama-sama bagaimana cara membuat proses delete data di Next.js menggunakan Prisma.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami