Route handlers — для external consumers; own app mutations — Server Actions; own page data — fetch in RSC.
Разбор
- Route handlers для external — webhooks, third-party, mobile, public REST/GraphQL. Full control status, headers, streaming.
- Own mutations — Server Actions. Не нужен hand-rolled
POST + client fetch для form — меньше кода, progressive enhancement, type safety. Handlers когда client не ваш React app.
- Read data для own pages? Fetch в Server Component. Internal
GET /api/x + fetch из server component — needless round-trip. Data source напрямую. Handlers на edges app, не между RSC и DB.
Итог
Handlers = app boundary; Server Actions = internal mutations; RSC fetch = internal reads.