
Next.js API Routes
Route Handlers、GET/POSTリクエスト、middleware、CORS、認証、エラーハンドリング
1Next.js 13+のApp Routerにおいて、Route Handlerとは何ですか?
Next.js 13+のApp Routerにおいて、Route Handlerとは何ですか?
回答
Route Handlerは、route.ts(またはroute.js)ファイル内のサーバー関数で、カスタムAPIエンドポイントを作成できます。Pages RouterのAPI Routes(pages/apiフォルダ)とは異なり、Route Handlerはapp/フォルダに配置され、Web標準のRequest/Responseをサポートします。サーバーサイドでHTTPリクエスト(GET、POST、PUT、DELETEなど)を処理します。
2GETリクエストを処理するRoute Handlerはどのように作成しますか?
GETリクエストを処理するRoute Handlerはどのように作成しますか?
回答
GETリクエストを処理するには、route.tsファイルでGETという名前のasync関数をエクスポートします。この関数はRequestオブジェクトを受け取り、NextResponse.json()を使用してResponseを返します。Next.jsは、エクスポートされたGET関数をそのルートのHTTP GETリクエストに自動的にマッピングします。他のHTTPメソッド(POST、PUT、DELETE、PATCH)も同じパターンでそれぞれの名前を使用します。
3NextResponseと標準のResponseの違いは何ですか?
NextResponseと標準のResponseの違いは何ですか?
回答
NextResponseは、標準のWeb ResponseクラスをNext.js固有の機能で拡張したものです。NextResponse.json()による自動シリアライゼーション、NextResponse.redirect()によるリダイレクトなどの便利なメソッドを提供し、cookieやheaderの操作を容易にします。標準のResponseも動作しますが、NextResponseはコードを簡潔にし、Next.jsエコシステムとのより良い統合を提供するため推奨されています。
Route Handlerで検索パラメータ(query params)を取得するにはどうしますか?
POSTリクエストを処理してJSON bodyを取得するにはどうしますか?
+17 面接問題