Bibliotecas de validación
Valide structs con etiquetas
Bibliotecas de validación es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
Por qué validar estructuras
Antes de utilizar datos entrantes (de un formulario o una API), a menudo debe comprobarlos: campos obligatorios, correo electrónico válido y rangos de valores. Las bibliotecas de validación automatizan esta tarea mediante etiquetas de estructura.
La etiqueta validate
Las bibliotecas populares, como go-playground/validator, leen una etiqueta validate que describe las reglas de cada campo.
Un campo puede incluir validate:"required,email".
Una dependencia externa
Las bibliotecas de validación son paquetes de terceros, no forman parte de la biblioteca estándar. Se añaden con go get github.com/go-playground/validator/v10. No se pueden ejecutar en un fragmento de código autónomo aquí.
Definición de reglas
La etiqueta validate de cada campo enumera las reglas separadas por comas. Algunas reglas habituales son: required, email, min, max y len.
Estructura de ejemplo
Una estructura validada habitual. (Es conceptual; necesita el paquete validator para ejecutarse).
type SignupForm struct {
Email string "validate:\"required,email\""
Password string "validate:\"required,min=8\""
Age int "validate:\"gte=18,lte=120\""
}Ejecutar la validación
Debe crear una instancia del validador y llamar a Validate.Struct(form). Devuelve un error si alguna regla falla, o nil si todas se cumplen.
import "github.com/go-playground/validator/v10"
var validate = validator.New()
func check(f SignupForm) error {
return validate.Struct(f)
}Leer los errores
Si falla, puede convertir el error devuelto mediante una aserción de tipo en validator.ValidationErrors, un slice que describe cada regla incumplida: qué campo y qué restricción fallaron.
Reglas integradas habituales
Algunas reglas útiles son:
required- no debe tener el valor ceroemail- formato de correo electrónico válidomin/max- límites de longitud o numéricosgte/lte- comparaciones numéricasoneof- debe ser uno de los valores de una lista
Validar estructuras anidadas
Los validadores recorren automáticamente las estructuras anidadas. Un campo que es una estructura también tiene sus propias reglas, por lo que puede validar todo el grafo de objetos en una sola llamada.
Por qué usar una biblioteca
Escribir manualmente la validación de cada campo resulta tedioso y propenso a errores. La validación basada en etiquetas mantiene las reglas declarativas, junto a los campos y de forma coherente en toda la aplicación.
Alternativa manual
Para casos sencillos puede validar manualmente sin una biblioteca; para muchos campos y reglas complejas, una biblioteca resulta más conveniente. Esto se ejecuta en cualquier lugar porque solo utiliza la biblioteca estándar.
package main
import (
"errors"
"fmt"
"strings"
)
func validateEmail(e string) error {
if !strings.Contains(e, "@") {
return errors.New("invalid email")
}
return nil
}
func main() {
fmt.Println(validateEmail("bad"))
fmt.Println(validateEmail("a@b.com"))
}Comprobación rápida
¿Cómo sabe una biblioteca de validación como go-playground/validator qué reglas debe aplicar a cada campo?
Repaso
Las bibliotecas de validación:
- Leen una etiqueta
validatepara aplicar reglas - Son de terceros (por ejemplo, go-playground/validator) y se añaden mediante go get
- Devuelven errores que enumeran cada regla incumplida
- Los casos sencillos se pueden validar manualmente
Preguntas frecuentes
¿La lección «Bibliotecas de validación» es gratis?
Sí — el texto completo de «Bibliotecas de validación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Bibliotecas de validación»?
Valide structs con etiquetas Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Bibliotecas de validación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ¿Qué son las etiquetas de struct?
- Etiquetas JSON
- Bibliotecas de validación
- Análisis personalizado de etiquetas