Handler на server (Node default или runtime = 'edge'). Next augments Request → NextRequest; responses — NextResponse helpers.
Разбор
Caching changed Next 15. Next 14: GET cached by default. Next 15: dynamic (uncached) by default. Opt static: export const dynamic = 'force-static'. Non-GET never cached. Favourite interview probe — silent behaviour change on upgrade.
Dynamic segments: app/api/posts/[id]/route.ts получает { params } (async Next 15) second argument.
Итог
Route handlers = Web Request/Response + Next 15 GET cache flip + async params.