Tutorial Restful API dengan Next.js (App Router) dan Prisma ORM #4 : Insert 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 #4 : Insert Data ke Dalam Database

Halo teman-teman semuanya, pada artikel sebelumnya kita telah berhasil menampilkan list data posts dari database melalui Prisma, sekarang kita akan lanjutkan belajar bagaimana cara melakukan proses insert data ke dalam database di Next.js menggunakan Prisma.

Langkah 1 - Insert Data Post

Silahkan teman-teman buka file src/app/api/posts/route.js, kemudian ubah semua kode-nya menjadi seperti berikut ini.

src/app/api/posts/route.js

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

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

export async function GET() {
  //get all posts
  const posts = await prisma.post.findMany();

  //return response JSON
  return NextResponse.json(
    {
      sucess: true,
      message: "List Data Posts",
      data: posts,
    },
    {
      status: 200,
    }
  );
}

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

  //create data post
  const post = await prisma.post.create({
    data: {
      title: title,
      content: content,
    },
  });

  //return response JSON
  return NextResponse.json(
    {
      success: true,
      message: "Post Created Successfully!",
      data: post,
    },
    { status: 201 }
  );
}

Dari perubahan kode di atas, pertama method yang bernama POSTS. Ini merupakan fungsi yang akan dieksekusi ketika terjadi permintaan HTTP POST.

export async function POST(request) {

	//...
	
} 

Kemudian di dalamnya kita melakukan destruct beberapa properti yang diambil dari request.

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

Fungsi request.json() digunakan untuk mengambil data dari request body yang dikirim oleh pengguna. Dalam hal ini, kita lakukan destruct atau meng-extract properti title dan content dari data JSON yang dikirimkan.

Setelah data request berhasil didapatkan, maka langkah selanjutnya adalah melakukan proses insert data ke dalam database menggunakan Prisma.

//create data post
const post = await prisma.post.create({
  data: {
    title: title,
    content: content,
  },
});

Di atas, kita menggunakan Prisma Client, dengan fungsi prisma.post.create() untuk membuat entitas baru di dalam table posts di database. Data yang dibuat menggunakan nilai title dan content yang diambil dari request.

Setelah data berhasil disimpan di dalam database, maka kita akan melakukan return ke dalam format JSON menggunakan NextResponse.

//return response JSON
return NextResponse.json(
  {
    success: true,
    message: "Post Created Successfully!",
    data: post,
  },
  { status: 201 }
);

Di atas, fungsi NextResponse.json() digunakan untuk menghasilkan response JSON yang akan dikirimkan ke pengguna. Response ini memiliki struktur objek yang terdiri dari:

  • success: Menandakan kesuksesan permintaan HTTP.
  • message: Pesan yang menyertainya, dalam hal ini "Post Created Successfully!".
  • data: Data post yang baru saja dibuat dan disimpan dalam variable post.

Parameter kedua dari fungsi NextResponse.json() digunakan untuk menentukan status HTTP response, dalam hal ini 201 (Created), yang mengindikasikan bahwa entitas telah berhasil dibuat.

Langkah 2 - Uji Coba Insert Data Post

Sekarang kita akan melakukan proses uji coba insert data di dalam aplikasi Postman.

Uji Coba Insert Data

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

Setelah itu silahkan masuk ke dalam tab Body dan pilih raw, kemudian masukkan value berikut ini.

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

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

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

Kesimpulan

Sampai disini pembahasan kita bagaimana cara melakukan proses insert data ke dalam database di Next.js menggunakan Prisma.

Pada artikel selanjutnya kita akan belajar bagaimana cara menampilkan detail data berdasarkan ID 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