0Pricing
Go Academy · Lección

Helpers de respuesta y códigos de estado

c.JSON, c.AbortWithError y respuestas de error

Helpers de respuesta y códigos de estado 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.

c.JSON

c.JSON(statusCode, obj) serializa obj como JSON y establece Content-Type en application/json. Es el método de respuesta más habitual.

c.JSON(http.StatusOK, gin.H{
    "id":   user.ID,
    "name": user.Name,
})

gin.H

gin.H es una forma abreviada de map[string]any. Úselo para crear objetos JSON puntuales sin definir una estructura.

c.JSON(200, gin.H{"message": "created", "id": id})

Constantes de estado HTTP

Use las constantes http.Status* en lugar de números sin significado para mejorar la claridad:

c.JSON(http.StatusCreated, gin.H{"id": id})
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid input"})
c.JSON(http.StatusInternalServerError, gin.H{"error": "internal error"})

c.String y c.Data

Envíe texto sin formato con c.String o bytes arbitrarios con c.Data:

c.String(200, "Hello, %s!", name)
c.Data(200, "application/octet-stream", fileBytes)

c.File y c.FileAttachment

Sirva un archivo desde el disco, en línea o como descarga:

c.File("./public/report.pdf")           // inline
c.FileAttachment("./report.pdf", "report.pdf") // download

c.Redirect

Envíe una redirección HTTP (301 permanente, 302 temporal):

c.Redirect(http.StatusMovedPermanently, "/new-url")

c.AbortWithStatus

Detiene el procesamiento de la cadena de solicitudes y escribe una respuesta vacía con el código de estado indicado. A diferencia de c.JSON, llama a Abort para impedir que se ejecuten los controladores posteriores.

c.AbortWithStatus(http.StatusUnauthorized)

c.Error

Asocie errores al contexto sin escribir una respuesta. Un middleware puede recopilarlos y escribir una respuesta de error unificada al final.

c.Error(fmt.Errorf("database error: %w", err))

Encabezados de respuesta

Establezca encabezados de respuesta personalizados antes de llamar a c.JSON o c.Data:

c.Header("X-Request-ID", requestID)
c.Header("Cache-Control", "max-age=3600")

Renderización de XML

Gin también admite respuestas XML y YAML:

c.XML(200, user) // requires xml struct tags
c.YAML(200, user)

Estructura de respuesta personalizada

Defina un envoltorio estándar para las respuestas de la API, con el fin de mantener una estructura coherente en todos los endpoints:

type APIResponse struct {
    Success bool   `json:"success"`
    Data    any    `json:"data,omitempty"`
    Error   string `json:"error,omitempty"`
}

Comprobación rápida

¿Qué hace c.AbortWithStatus de forma diferente a c.Status?

Recapitulación: asistentes de respuesta

Puntos clave:

  • c.JSON(statusCode, obj) es el método principal para responder con JSON
  • Use las constantes http.Status* para mejorar la claridad
  • c.AbortWithStatus detiene la cadena de controladores
  • Defina un envoltorio APIResponse coherente para todos los endpoints

Preguntas frecuentes

¿La lección «Helpers de respuesta y códigos de estado» es gratis?

Sí — el texto completo de «Helpers de respuesta y códigos de estado» 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 «Helpers de respuesta y códigos de estado»?

c.JSON, c.AbortWithError y respuestas de error 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 «Helpers de respuesta y códigos de estado»?

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. Router Gin y grupos de rutas
  2. Vinculación y validación de solicitudes
  3. Helpers de respuesta y códigos de estado
  4. Middleware de Gin: autenticación y registro
← Volver a Go Academy