intermediate
Route handlers
Реализуйте HTTP handlers с разбором запроса, validation, формами ответов, кэшированием и ограничениями runtime.
Route handlers — HTTP endpoints в `app/**/route.ts` с функциями по методам (`GET`, `POST` и т.д.). Парсят запросы, enforce auth, вызывают сервисы и возвращают `Response` со статусом и cache headers.
// app/api/posts/route.ts
export async function POST(request: Request) {
const body = await request.json();
const post = await createPost(body);
return Response.json(post, { status: 201 });
}
Выбирайте Node или Edge runtime по нужным API. Webhooks и загрузка файлов часто требуют Node.
На интервью: handlers против Server Actions для мутаций и против внешних microservices по владению.
Типовые ошибки: нет guard по методам, невалидированный JSON, случайное кэширование `POST`.
Компромисс: colocated endpoints против разнесённого HTTP по сервисам.
Чеклист:
- Экспортируйте только поддерживаемые HTTP methods.
- Сначала валидация и auth.
- Явные cache headers.
- Runtime под требуемые API.