スキップしてメイン コンテンツに移動

Gin初心者の入力検証術

Gin初心者の入力検証術

Gin初心者のためのバリデーション入門

Ginフレームワークを使い始めたばかりの方にとって、入力検証は重要なステップです。Ginは標準でbinding機能を提供し、リクエストボディを構造体にマッピングすると同時にvalidatorパッケージを呼び出して自動的に検証を行います。これにより、APIの堅牢性が大幅に向上します。

bindingとvalidatorの基本

構造体にタグを付けるだけで、Ginはbinding時にvalidatorを走らせます。例えば、json:"email" binding:"required,email"と書くと、必須チェックとメール形式チェックが同時に実行されます。Ginは検証失敗時に自動で400エラーを返し、エラーメッセージをJSONで返却します。

required, email, min, max の実装例

以下は典型的な入力検証例です。

type User struct {
    Name  string `json:"name" binding:"required,min=3,max=50"`
    Email string `json:"email" binding:"required,email"`
    Age   int    `json:"age" binding:"min=18,max=99"`
}

この構造体をc.ShouldBindJSON(&user)でバインドすると、requiredemailminmaxがすべて検証されます。失敗したフィールドごとにエラーメッセージが返ります。

入力検証とエラーメッセージのカスタマイズ

デフォルトのエラーメッセージは英語で返却されますが、validatorRegisterTagNameFuncRegisterValidationを使えば日本語に変更できます。さらに、c.Error()でカスタムメッセージを設定し、クライアントに分かりやすい情報を提供できます。

まとめとして、Gin初心者はbindingvalidatorを組み合わせることで、簡潔に入力検証を実装でき、エラーメッセージをカスタマイズすることでユーザー体験を向上させることが可能です。

この記事はAIによって作成されました。

コメント