Genera Códigos QR con Go
Go es ideal para la generación de códigos QR de alto rendimiento en microservicios y herramientas CLI. Usa la biblioteca go-qrcode para generación local o la API de QRCode.fun para salidas estilizadas.
Instalación
Instala la biblioteca de códigos QR de Go usando go get.
go get github.com/skip2/go-qrcodeGenera Códigos QR con Go
Ejemplos de código usando la biblioteca go-qrcode.
Basic QR Code Generation
package main
import "github.com/skip2/go-qrcode"
func main() {
err := qrcode.WriteFile("https://qrcode.fun", qrcode.Medium, 256, "qrcode.png")
if err != nil {
panic(err)
}
}QR Code as Bytes (HTTP Handler)
package main
import (
"net/http"
"github.com/skip2/go-qrcode"
)
func qrHandler(w http.ResponseWriter, r *http.Request) {
data := r.URL.Query().Get("data")
if data == "" {
data = "https://qrcode.fun"
}
png, err := qrcode.Encode(data, qrcode.Medium, 256)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
w.Header().Set("Content-Type", "image/png")
w.Write(png)
}
func main() {
http.HandleFunc("/qr", qrHandler)
http.ListenAndServe(":8080", nil)
}Genera Códigos QR vía API en Go
Llama a la API de QRCode.fun desde Go para generar códigos QR estilizados.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
payload := map[string]interface{}{
"data": "https://qrcode.fun",
"width": 300,
"height": 300,
"type": "png",
"margin": 10,
"dotsOptions": map[string]string{
"color": "#1A2B3C",
"type": "rounded",
},
"cornersSquareOptions": map[string]string{
"color": "#8564C3",
"type": "extra-rounded",
},
"backgroundOptions": map[string]string{
"color": "#FFFFFF",
},
}
body, _ := json.Marshal(payload)
resp, err := http.Post(
"https://qrcode.fun/api/generate-qr-styled",
"application/json",
bytes.NewBuffer(body),
)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data[:100]))
}Vista Previa de Código QR en Vivo
Prueba a generar un código QR con Go ahora mismo.
Biblioteca Nativa vs API
Compara el uso de una biblioteca de códigos QR en Go con la API de QRCode.fun.
| Característica | Biblioteca Nativa | QRCode.fun API |
|---|---|---|
| Complejidad de configuración | go get + import | Una sola solicitud HTTP |
| Personalización | Tamaño, corrección de errores | Estilizado completo: colores, formas, logotipos |
| Soporte sin conexión | Sí | Requiere internet |
| Mantenimiento | Actualizar go.mod | Siempre actualizado |
| Formatos de salida | PNG | PNG, SVG |
Casos de Uso de Códigos QR en Go
Escenarios comunes para códigos QR en aplicaciones Go.
Microservicios
Genera códigos QR en microservicios Go para respuestas de API, webhooks y arquitecturas basadas en eventos.
Herramientas CLI
Construye utilidades de línea de comandos que generan códigos QR para compartir Wi-Fi, acortar URLs o mostrar en terminal.
Funciones en la Nube
Despliega generación de QR como funciones serverless en AWS Lambda o Google Cloud Functions usando Go.
DevOps e Infraestructura
Genera códigos QR para URLs de despliegue, dashboards de monitoreo y endpoints de configuración.
Inmersión Profunda en el Ecosistema de Códigos QR en Go
La simplicidad y el rendimiento de Go lo hacen ideal para la generación de códigos QR en entornos nativos de la nube y de alto rendimiento.
Arquitectura de Microservicios con Generación de QR
Go sobresale en la construcción de microservicios dedicados a códigos QR. Despliega un servicio HTTP ligero usando net/http o Gin que acepte parámetros QR y devuelva bytes PNG. El modelo de goroutines de Go maneja miles de solicitudes concurrentes de generación de QR con memoria mínima. Combina con gRPC para generación de QR entre servicios internos, o expón una API REST detrás de un API gateway para consumidores externos.
Despliegue con Docker y Kubernetes
La compilación a un solo binario de Go hace que los servicios de generación de QR sean triviales de contenerizar. Construye una imagen Docker basada en scratch de menos de 10MB que incluya tu servicio QR con cero dependencias. Despliega en Kubernetes con escalado horizontal automático de pods basado en el uso de CPU durante picos de generación de QR. La biblioteca go-qrcode no tiene dependencias CGO, asegurando compilación cruzada limpia para objetivos linux/amd64 y linux/arm64.
Integración con la Biblioteca Estándar y Testing
La biblioteca estándar de Go complementa perfectamente la generación de códigos QR. Usa image/png e image/draw para renderizado personalizado más allá de lo que proporciona go-qrcode. El paquete net/http sirve códigos QR generados directamente sin un framework. Las herramientas integradas de testing y benchmarking de Go (go test -bench) te permiten medir el rendimiento exacto de generación — típicamente 5,000-10,000 códigos QR por segundo por núcleo para configuraciones estándar.
Preguntas Frecuentes
Preguntas comunes sobre la generación de códigos QR con Go.
Comienza a generar códigos QR con Go
Usa nuestro generador gratuito o integra la API en tus servicios Go.