フォーム検証は Web アプリケーション開発において非常に重要なリンクであり、フォーム データを送信する前にデータの有効性をチェックして、アプリケーションのセキュリティ脆弱性やデータ エラーを回避できます。 Web アプリケーションのフォーム検証は、Golang を使用すると簡単に実装できます。この記事では、Golang を使用して Web アプリケーションのフォーム検証を実装する方法を紹介します。
1. フォーム検証の基本要素
フォーム検証の実装方法を紹介する前に、フォーム検証の基本要素が何であるかを知る必要があります。
フォーム検証を実装する場合は、上記の 3 つの要素を考慮し、ユーザーの入力エラーの可能性を可能な限り減らす必要があります。
2. Golang でフォーム検証を実装する基本的な考え方
フォーム検証を実装する場合、Web アプリケーションでフォーム要素、検証ルール、エラー プロンプトを定義する必要があります。フォーム検証の実装の基本的な考え方は次のとおりです:
3. フォーム要素の構造を構築する
Golang を使用して Web アプリケーションを構築する場合、構造タイプを使用してフォーム要素を定義できます。
次は、構造タイプを使用してフォーム要素を定義する例です:
type DemoForm struct { Name string `form:"name" validate:"required"` Email string `form:"email" validate:"required,email"` Age int `form:"age" validate:"required,min=1,max=100"` Gender string `form:"gender"` Hobbies []string `form:"hobbies"` PhoneNumber string `form:"phone_number" validate:"required,phone_number"` }
上の例では、DemoForm
構造は form
を使用します。タグを使用してフォーム要素をバインドし、validate
タグを使用して検証ルールを定義します。このうち、検証ルールの形式は ルール名: パラメータ 1, パラメータ 2,...
です。たとえば、min=1
は、入力データが以下であることを意味します。 1.
4. フォーム検証構造の構築
フォーム検証機能を実装するには、Golang の構造タイプを使用してフォーム検証ルールを定義する必要があります。
次は、構造タイプを使用してフォーム検証ルールを定義する例です:
var formValidator = validator.New() type DemoFormValidator struct{} func (DemoFormValidator) ValidateDemoForm(form DemoForm) error { return formValidator.Struct(form) }
上の例では、DemoFormValidator
構造を使用して ## をカプセル化します。 #DemoForm構造を確認するには、
formValidator 変数を使用して新しいバリデータを作成します。カスタム バリデーター メソッドでは、
Struct メソッドを使用してフォーム データを検証できます。
r := gin.Default() r.POST("/submit", func(c *gin.Context) { var form DemoForm err := c.ShouldBind(&form) if err == nil { err = validate(form) } if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, gin.H{"status": "success"}) })上の例では、ハンドル POST リクエスト用に
/submit という名前のルートを定義しました。 POST リクエストを処理するときは、まず
ShouldBind メソッドを使用してフォーム データを取得し、次にカスタム
validate 関数を使用してフォーム データがルールに準拠しているかどうかを確認します。データがルールに準拠していない場合は、対応するエラー プロンプトがユーザーに表示されます。
validator ライブラリを使用すると、フォーム検証ロジックを簡単に実装できます。
func validate(form DemoForm) error { validateDemoForm := DemoFormValidator{} err := validateDemoForm.ValidateDemoForm(form) if err != nil { return err } return nil }上の例では、
DemoFormValidator 構造で定義された
ValidateDemoForm を呼び出します。フォームデータを検証するメソッド。フォームデータがルールに準拠していない場合は、対応するエラーメッセージが返されます。
JSON メソッドを使用して、ユーザーにエラー情報を表示できます。
if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return }上記の例では、フォーム データがルールに準拠していない場合、
JSON メソッドを使用して、対応するエラー メッセージをユーザーに表示します。
以上がGolang を使用して Web アプリケーションのフォーム検証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。