IT-Q

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