Next 공식 문서의 내용에 따라
특정 segment에서의 Routing 규칙을 정의할 수 있다.
Route Handler는 주어진 경로에 대해 웹 API에 대한 요청과 응답을 처리하는 custom handler이다. 이 기능은 App Router 방식에서만 지원한다.
route 파일에 정의한다.
app/api/route.ts
export async function GET(request: Request) {}
이전 포스팅인 Defining-Routes에서도 언급한 적 있지만,
특정 segment에 대한 접근은 다음 두 가지 방식으로 처리한다.
따라서, page와 router는 동일한 수준에서 함께 존재할 수 없다.
둘 중 하나만 존재해야 한다.
HTTP Method의 종류는 다양하지만, Next에서 지원하는 Method는 다음과 같다.
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
지원하지 않는 Method가 호출되면 405 Method Not Allowed
응답을 반환한다.
native Request와 Response를 상속받아
Next 내부적으로는 NextRequest와 NextResponse를 사용한다.
// Given a request to /home, pathname is /home
request.nextUrl.pathname
// Given a request to /home?name=lee, searchParams is { 'name': 'lee' }
request.nextUrl.searchParams
zod-form-data를 활용하여 전달받은 값의 타입과 패턴에 대한 검증을 할 수 있다.
파일에서 특정 변수명을 가진 변수를 직접 export하는 것만으로
Route Segment에 대한 설정이 가능하다.
자세한 내용은 링크 참고.
Route Resolution
Caching / Opting out of caching / Revalidating Cached Data
Redirects
Dynamic Route Segments
Dynamic Functions (Cookies / Headers)
CORS
이외에도 위와 같은 내용들이 있으며, 특히 Next에서 chunk Streaming 말고,
지속적인 요청 및 응답 관점에서의 일반적인 Streaming을 다루는 부분은
Vercel의 AI SDK와 관련하여 흥미로운 내용이 많다.
Middleware 기능을 활용하여
외부와의 통신을 중개하는 추상화된 layer로 통신 관리를 일원화한다.
Terminology
Defining Routes
Pages and Layouts
Linking and Navigating
Route Groups
Dynamic Routes
Loading UI and Streaming
Error Handling
Parallel Routes
Intercepting Routes
Route Handlers
Middleware
Project Organization
Internationalization