route.ts(Route Handler)が必要になるのは、どういう場合ですか。
HTTP のエンドポイントとして外に見せる必要があるときです。Webhook の受け口、モバイルアプリから叩くAPI、JSON や CSV など HTML 以外を返す用途が該当します。
面接官が見ているのはServer Function との使い分け。両方あることの意味を説明できるか。
よくある答えと、面談でどう見られるか
- 外部から叩かれる口が要る場合。Webhook の受け口やモバイルからのAPIなど
自分の画面から送るだけなら Server Function の方が手数が少ないです。 - 自分の画面からのフォーム送信は、必ずこちらを使う
使えますが必須ではありません。エンドポイント設計の手間が増えるだけになります。 - Server Function より新しい仕組みなので、基本はこちらに寄せる
新旧では選びません。外部に口が要るかどうかで分かれます。 - HTML 以外(JSON や CSV など)を返す必要がある場合
そのための口です。公式も Backend for Frontend のパターンとして紹介しています。
模範解答
分岐点は「HTTP のエンドポイントとして外に見せる必要があるか」です。
Route Handler が要るのは、Webhook の受け口、モバイルアプリから使う API、HTML 以外(JSON、CSV、画像など)を返す用途です。公式でも Backend for Frontend のパターンとして紹介されています。
自分のアプリの画面からフォームを送るだけなら Server Function で十分で、エンドポイントを設計する手間が要らず、型もそのまま繋がります。
なお Route Handler は既定ではキャッシュされません。GET だけは明示的にキャッシュへ寄せられますが、それ以外のメソッドはキャッシュされない仕様です。
出典(一次資料)
対象: Next.js 16(App Router) 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。