Go言語でWebアプリやAPIを開発する際、必須になるのが「バリデーション(入力チェック)」です。
不正データや空入力を防ぐことで、システムの安全性と品質を大きく向上できます。
本記事では、Goでのバリデーション実装について「基本・実装方法・実務でのベストプラクティス」を初心者向けに解説します。
バリデーションとは?
バリデーションとは👇
👉 入力データが正しいか確認する処理
なぜ必要なのか?
例えば👇
- 空文字防止
- 数値チェック
- メール形式確認
- 不正リクエスト防止
👉 API開発では必須
Goでよく使われるライブラリ
代表的なのが👇
go-playground/validator
インストール
go get github.com/go-playground/validator/v10
基本のstruct定義
type User struct {
Name string `validate:"required"`
Email string `validate:"required,email"`
Age int `validate:"gte=18"`
}
バリデーション実行
validate := validator.New()
err := validate.Struct(user)
エラーチェック
if err != nil {
return err
}
よく使うタグ
| タグ | 意味 |
|---|---|
| required | 必須 |
| メール形式 | |
| min | 最小文字数 |
| max | 最大文字数 |
| gte | 以上 |
| lte | 以下 |
Ginでのバリデーション
Gin
if err := c.ShouldBindJSON(&user); err != nil {
return err
}
JSON入力例
{
"name": "Tomoya",
"email": "test@example.com"
}
実務で重要なポイント
✔ API前段でValidation
👉 DB前に弾く
✔ エラーメッセージ統一
{
"error": "email is required"
}
✔ フロント側とルール統一
👉 UX向上
実務での応用
- 会員登録
- ログイン
- フォーム入力
- APIリクエスト
👉 あなたなら👇
👉「口コミブースターPRO」の店舗登録画面に重要
よくある失敗
❌ Validationなし
❌ DB登録後にエラー
❌ エラーメッセージ不統一
ベストプラクティス
- API前段Validation
- Structタグ活用
- エラー形式統一
- フロント連携
💡 結論
👉
「Validation品質=API品質」


コメント