API Routesを使用したフォーム作成方法
フォームを使用すると、ウェブアプリケーションでデータの作成や更新が可能です。Next.jsではAPI Routesを使用してデータ変更を強力に処理できます。このガイドでは、サーバー側でフォーム送信を処理する方法を説明します。
サーバーフォーム
サーバー側でフォーム送信を処理するには、データを安全に変更するAPIエンドポイントを作成します。
次に、クライアント側からイベントハンドラでAPI Routeを呼び出します:
知っておくと便利:
- API RoutesはCORSヘッダーを指定しないため、デフォルトで同一オリジンのみ許可されます。
- API Routesはサーバー側で実行されるため、環境変数を使用してAPIキーなどの機密情報をクライアントに公開せずに利用できます。これはアプリケーションのセキュリティ上重要です。
フォームバリデーション
基本的なクライアントサイドのフォームバリデーションには、required
やtype="email"
などのHTMLバリデーションを使用することを推奨します。
より高度なサーバーサイドバリデーションには、zodなどのスキーマバリデーションライブラリを使用して、データ変更前にフォームフィールドを検証できます:
エラーハンドリング
フォーム送信が失敗した場合にエラーメッセージを表示するには、Reactのstateを使用します:
ローディング状態の表示
フォームがサーバーに送信中の場合、Reactのstateを使用してローディング状態を表示できます:
リダイレクト
データ変更後にユーザーを別のルートにリダイレクトしたい場合、redirect
を使用して絶対URLまたは相対URLにリダイレクトできます: