0Pricing
Go Academy · Lección

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 cero
  • email - formato de correo electrónico válido
  • min / max - límites de longitud o numéricos
  • gte / lte - comparaciones numéricas
  • oneof - 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 validate para 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

  1. ¿Qué son las etiquetas de struct?
  2. Etiquetas JSON
  3. Bibliotecas de validación
  4. Análisis personalizado de etiquetas
← Volver a Go Academy