Pages Router의 API Routes를 대체하는 새로운 방식입니다.route.ts 파일로 정의합니다.
// app/api/hello/route.ts
export async function GET() {
return Response.json({ message: 'Hello!' });
}
export async function POST(request: Request) {
const body = await request.json();
return Response.json({ data: body });
}// app/api/posts/[id]/route.ts
export async function GET(
request: Request,
{ params }: { params: { id: string } }
) {
const id = params.id;
return Response.json({ postId: id });
}/api/posts/123123export async function GET(request: Request) {
const { searchParams } = new URL(request.url);
const query = searchParams.get('q');
return Response.json({ query });
}/api/search?q=nextjsnextjs| 특성 | Route Handlers | Server Actions |
|---|---|---|
| 용도 | RESTful API 엔드포인트 | 폼 처리 및 mutation |
| 호출 방법 | fetch(), axios 등 | 직접 함수 호출 |
| 파일 위치 | app/api/*/route.ts | 어디서나 (use server) |