Air para Go: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Air y para qué sirve?

\n\n

Air es una potente utilidad para desarrolladores de Go que proporciona live reload (recarga en caliente) de aplicaciones. Si alguna vez has escrito aplicaciones web en Go, sabes lo tedioso que es detener manualmente el servidor (Ctrl+C), recompilar el proyecto (go build) y volver a ejecutarlo cada vez. Air automatiza este proceso: monitorea los cambios en el código fuente de tu proyecto y automáticamente recompila y reinicia la aplicación cada vez que guardas un archivo.

\n\n

Air fue creado por el equipo de Cosmos (anteriormente conocido como Tendermint) y está escrito en el propio Go. No es una biblioteca en el sentido clásico (no la importas en tu código), sino una herramienta de línea de comandos que se ejecuta en paralelo con tu aplicación.

\n\n

¿Para qué sirve Air?

\n
    \n
  • Acelerar el desarrollo: ahorra los minutos que se pierden en la recompilación manual.
  • \n
  • Comodidad: basta con guardar el archivo y el servidor se reinicia automáticamente.
  • \n
  • Soporte para cualquier proyecto Go: funciona con servidores web, utilidades CLI, bots de Telegram y cualquier otra aplicación.
  • \n
  • Configuración flexible: puedes configurar la exclusión de carpetas, retardos, comandos adicionales y mucho más.
  • \n
\n\n

Air es especialmente útil al desarrollar aplicaciones web con frameworks como Gin, Echo, Fiber o el net/http estándar, donde cada modificación requiere reiniciar el servidor.

\n\n

Instalación de Air

\n\n

Air se puede instalar de varias maneras. Elige la más adecuada para tu sistema.

\n\n

Método 1: Instalación mediante go install (recomendado)

\n

La forma más sencilla es usar el gestor de paquetes estándar de Go. Asegúrate de tener instalado Go versión 1.16 o superior.

\n
go install github.com/air-verse/air@latest
\n

Después de esto, el archivo binario air se colocará en el directorio $GOPATH/bin (generalmente ~/go/bin). Asegúrate de que este directorio esté añadido a la variable de entorno PATH.

\n\n

Método 2: Instalación mediante Homebrew (macOS / Linux)

\n

Si usas macOS o Linux con Homebrew, la instalación es trivial:

\n
brew install air
\n\n

Método 3: Instalación mediante script (Linux / macOS / WSL)

\n

Puedes usar el script de instalación:

\n
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s
\n\n

Método 4: Instalación mediante Docker

\n

Para quienes prefieren Docker:

\n
docker run -it --rm -v "$PWD":/app -w /app cosmtrek/air
\n\n

Verificación de la instalación

\n

Después de la instalación, verifica que Air funcione:

\n
air -v
\n

Deberías ver la versión de la utilidad, por ejemplo: v1.52.3

\n\n

Inicio rápido con un ejemplo de código

\n\n

Vamos a crear una aplicación web simple en Go y configurarle live reload con Air.

\n\n

Paso 1: Crea un nuevo proyecto

\n
mkdir my-air-app\ncd my-air-app\ngo mod init my-air-app
\n\n

Paso 2: Escribe un servidor HTTP simple

\n

Crea el archivo main.go:

\n
package main\n\nimport (\n    "fmt"\n    "net/http"\n)\n\nfunc main() {\n    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {\n        fmt.Fprintf(w, "Hello, Air! Hora actual: %s", time.Now().Format("15:04:05"))\n    })\n\n    fmt.Println("Servidor iniciado en http://localhost:8080")\n    http.ListenAndServe(":8080", nil)\n}
\n\n

Paso 3: Inicializa la configuración de Air

\n
air init
\n

Este comando crea el archivo .air.toml en la raíz del proyecto con la configuración predeterminada. Puedes editarlo más tarde según tus necesidades.

\n\n

Paso 4: Ejecuta Air

\n
air
\n

Verás una salida que comienza con

Recommendations