Mobile app သို့မဟုတ် third-party service က ကိုယ့် data ကိုယူဖို့ API လိုလာနိုင်ပါတယ်။ Route Handler က Next.js app ထဲမှာ HTTP endpoint ရေးနိုင်စေပါတယ်။ ဒါပေမယ့် Server Component က ကိုယ့် database ကိုဖတ်ဖို့ ကိုယ့် API ကိုပြန်ခေါ်စရာမလိုပါဘူး—data layer ကိုတိုက်ရိုက်သုံးတာက ပိုရိုးရှင်းပါတယ်။
နားလည်ထားရမယ့် အချက်
app/api/notes/route.ts မှ GET၊ POST၊ PUT၊ PATCH၊ DELETE စတဲ့ HTTP method name ဖြင့် function export လုပ်ပါ။ Request body က မယုံကြည်ရတဲ့ input ဖြစ်လို့ shape နဲ့ length ကို validate လုပ်ရပါတယ်။ Error အမျိုးအစားနဲ့လိုက်ဖက်တဲ့ 400၊ 401၊ 404၊ 500 status ကိုပြန်ပေးပါ။ Route Handler မှာ filesystem memory ကို durable storage အဖြစ်မယူဆပါနဲ့—serverless instance တစ်ခုနဲ့တစ်ခု မမျှဝေနိုင်ပါဘူး။
အတူတူ စမ်းရေးကြည့်မယ်
// app/api/notes/route.ts
import { NextResponse } from "next/server";
export async function GET() {
const notes = await db.note.findMany();
return NextResponse.json(notes);
}
export async function POST(request: Request) {
const body = await request.json();
if (typeof body.title !== "string" || body.title.trim().length < 3) {
return NextResponse.json({ error: "Title မမှန်ပါ" }, { status: 400 });
}
const note = await db.note.create({ data: { title: body.title.trim() } });
return NextResponse.json(note, { status: 201 });
}Code က ဘယ်လိုအလုပ်လုပ်သလဲ
GET က notes list ကို JSON ပြန်ပေးပါတယ်။ POST က body ထဲ title ကိုစစ်ပြီး မမှန်ရင် 400၊ မှန်ရင် create လုပ်ပြီး 201 ပြန်ပေးပါတယ်။
GET /api/notes က list ပြန်ပေးပြီး valid POST က 201 နှင့် note အသစ်ပြန်ပေးမည်။၅ မိနစ် စမ်းကြည့်
app/api/notes/[id]/route.ts မှ DELETE handler ရေးပြီး id မတွေ့ရင် 404 ပြန်ပါ။
Next.js — Route Handlers — Next.js