Route Handlers는 Web Request 및 Response API를 사용하여 특정 경로에 대한 사용자 정의 요청 핸들러를 만들 수 있게 해줍니다.
알아두면 좋은 사실: Route Handlers는 app 디렉토리 내에서만 사용할 수 있습니다. 이는 페이지 디렉토리 내의 API Routes와 동등하며, 따라서 API Routes와 Route Handlers를 함께 사용할 필요가 없다는 것을 의미합니다.
Route Handlers는 app 디렉토리 내의 route.js|ts 파일에서 정의됩니다:
export const dynamic = 'force-dynamic' // defaults to auto
export async function GET(request: Request) {}
[코드] app/api/route.ts
Route Handlers는 page.js 및 layout.js와 유사하게 app 디렉토리 내에서 중첩될 수 있지만, page.js와 동일한 경로 세그먼트 레벨에 route.js 파일이 존재할 수 없습니다.
다음 HTTP 메서드가 지원됩니다: GET, POST, PUT, PATCH, DELETE, HEAD, 그리고 OPTIONS. 지원되지 않는 메서드가 호출되면 Next.js는 405 Method Not Allowed 응답을 반환합니다.
NextRequest
and NextResponse
APIsNative Request와 Response를 지원하는 것 외에도, Next.js는 이들을 확장하여 고급 사용 사례에 편리한 도우미를 제공하기 위해 NextRequest와 NextResponse를 제공합니다.