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 だけは明示的にキャッシュへ寄せられますが、それ以外のメソッドはキャッシュされない仕様です。