라우트 핸들러는 Web Request 및 Response API를 사용하여 주어진 라우트에 대한 커스텀 요청 핸들러를 생성할 수 있도록 한다.

라우트 핸들러는
app디렉터리 내에서만 사용할 수 있다. 이는pages디렉터리 내의 API 라우트와 동일한 역할을 하므로, API 라우트와 라우트 핸들러를 함께 사용할 필요는 없다.
라우트 핸들러는 app 디렉터리 내의 route.js|ts 파일에 정의된다.
app/api/route.ts
app/api/route.ts
TypeScript
export async function GET(request: Request) {}
라우트 핸들러는 page.js 및 layout.js 와 유사하게 app 디렉터리 내 어디든 중첩될 수 있다.
그러나 page.js 와 동일한 라우트 세그먼트 레벨에는 route.js 파일이 존재할 수 없다.
다음 HTTP 메서드가 지원된다: GET, POST, PUT, PATCH, DELETE, HEAD, 및 OPTIONS
지원되지 않는 메서드가 호출되면, Next.js는 405 Method Not Allowed 응답을 반환한다.
NextRequest 및 NextResponse API (Extended NextRequest and NextResponse APIs네이티브 Request 및 Response API를 지원하는 것 외에도, Next.js는 고급 사용 사례를 위한 편리한 헬퍼를 제공하기 위해 이들을 NextRequest 및 NextResponse로 확장한다.
라우트 핸들러는 기본적으로 캐시되지 않는다.
하지만 GET 메서드에 대해서는 캐싱을 선택적으로 적용할 수 있다.