Renderizado
Gin soporta el renderizado de respuestas en múltiples formatos incluyendo JSON, XML, YAML, ProtoBuf, HTML y más. Cada método de renderizado sigue el mismo patrón: llama a un método en *gin.Context con un código de estado HTTP y los datos a serializar. Gin maneja los encabezados de tipo de contenido, la serialización y la escritura de la respuesta automáticamente.
// All rendering methods share this pattern:c.JSON(http.StatusOK, data) // application/jsonc.XML(http.StatusOK, data) // application/xmlc.YAML(http.StatusOK, data) // application/x-yamlc.TOML(http.StatusOK, data) // application/tomlc.ProtoBuf(http.StatusOK, data) // application/x-protobufPuedes usar el encabezado Accept o un parámetro de consulta para servir los mismos datos en múltiples formatos desde un solo handler:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { router := gin.Default()
router.GET("/user", func(c *gin.Context) { user := gin.H{"name": "Lena", "role": "admin"}
switch c.Query("format") { case "xml": c.XML(http.StatusOK, user) case "yaml": c.YAML(http.StatusOK, user) default: c.JSON(http.StatusOK, user) } })
router.Run(":8080")}En esta sección
- Renderizado XML/JSON/YAML/ProtoBuf — Renderizar respuestas en múltiples formatos con manejo automático del tipo de contenido
- SecureJSON — Prevenir ataques de secuestro de JSON en navegadores antiguos
- JSONP — Soportar solicitudes entre dominios desde clientes antiguos sin CORS
- AsciiJSON — Escapar caracteres no ASCII para transporte seguro
- PureJSON — Renderizar JSON sin escapar caracteres HTML
- Servir archivos estáticos — Servir directorios de recursos estáticos
- Servir datos desde archivo — Servir archivos individuales, adjuntos y descargas
- Servir datos desde reader — Transmitir datos desde cualquier
io.Readera la respuesta - Renderizado HTML — Renderizar plantillas HTML con datos dinámicos
- Múltiples plantillas — Usar múltiples conjuntos de plantillas en una sola aplicación
- Incluir plantillas en un solo binario — Incrustar plantillas en tu binario compilado