Thuta Learning
ရှာဖွေရန်
AdvancedWeb Developmentintermediate

Route Handlers ဖြင့် API ရေးခြင်း

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • route.ts file convention ကိုသုံးရန်
  • GET နှင့် POST request ကိုကိုင်တွယ်ရန်
  • Status code နှင့် input validation ထည့်ရန်

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 တစ်ခုနဲ့တစ်ခု မမျှဝေနိုင်ပါဘူး။

အတူတူ စမ်းရေးကြည့်မယ်

typescript
// 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 ပြန်ပေးပါတယ်။

You should see
GET /api/notes က list ပြန်ပေးပြီး valid POST က 201 နှင့် note အသစ်ပြန်ပေးမည်။

၅ မိနစ် စမ်းကြည့်

app/api/notes/[id]/route.ts မှ DELETE handler ရေးပြီး id မတွေ့ရင် 404 ပြန်ပါ။

Next.js — Route HandlersNext.js

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Request body ကို validate မလုပ်ဘဲ database ထဲတန်းထည့်ခြင်း
  • Serverless Route Handler ထဲ memory array သို့မဟုတ် local file ကို permanent database အဖြစ်သုံးခြင်း

လေ့ကျင့်ခန်း

app/api/notes/[id]/route.ts မှ DELETE handler ရေးပြီး id မတွေ့ရင် 404 ပြန်ပါ။

You'll know it worked when: GET /api/notes က list ပြန်ပေးပြီး valid POST က 201 နှင့် note အသစ်ပြန်ပေးမည်။

Route Handlers ဖြင့် API ရေးခြင်း | Thuta Learning