"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como simplificar a validação de estrutura em Go: abordagem idiomática vs. "go-validator"?

Como simplificar a validação de estrutura em Go: abordagem idiomática vs. "go-validator"?

Publicado em 2024-11-09
Navegar:551

How to Simplify Struct Validation in Go: Idiomatic Approach vs. \

Validando estruturas em Go

Verificar a validade dos valores de estrutura é uma tarefa crucial no desenvolvimento de software. Ao lidar com inúmeras estruturas pequenas, verificar individualmente cada campo pode ser complicado. Vamos explorar a abordagem idiomática e uma solução alternativa para validar estruturas.

Validação idiomática

O exemplo fornecido é uma abordagem comum para validar estruturas. Cada campo é verificado individualmente usando os métodos da estrutura. No entanto, esse método se torna tedioso à medida que o número de campos ou estruturas aumenta.

Solução alternativa

A comunidade Go desenvolveu vários pacotes para simplificar o processo de validação. Um desses pacotes é o popular "go-validator" (https://github.com/go-validator/validator).

Usando este pacote, você pode definir regras de validação para cada campo usando tags dentro da estrutura definição. O validador então verifica automaticamente os valores em relação às regras definidas.

Exemplo

Considere a seguinte estrutura com regras de validação:

import "github.com/go-validator/validator"

type Event struct {
    Id     int    `validator:"min=1"`
    UserId int    `validator:"min=1"`
    Start  string `validator:"datetime"`
    End    string `validator:"datetime"`
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3