Variables de ambiente en Go con paquetes externos

Clase 28 de 29Curso de Go

Resumen

Utilizar variables de ambiente es clave para mantener seguros datos sensibles, como cadenas de conexión, claves de acceso o configuraciones específicas, en cualquier aplicación. Con el lenguaje Go, manejar estas variables, así como agregar paquetes externos desde repositorios como GitHub, es un procedimiento sencillo y eficiente.

¿Por qué usar variables de ambiente en un proyecto de Go?

Las variables de ambiente aseguran la protección de datos críticos. Usarlas en Go es tan simple como escribir una sola línea de código. Con esta práctica:

  • Proteges claves sensibles.
  • Adaptas fácilmente tu aplicación a diferentes entornos.
  • Mantienes tu código limpio y ordenado.

¿Cómo importar paquetes externos fácilmente en Go?

A diferencia de otros lenguajes como Node o Python que utilizan repositorios centralizados (npm y pip, respectivamente), Go no posee un repositorio centralizado. Sin embargo, te permite importar paquetes fácilmente desde GitHub u otros servicios similares. Los pasos son simples:

Crear un módulo en Go

Necesitas inicializar un módulo dentro de tu proyecto para gestionar los paquetes externos.

go mod init nombre-del-modulo

Agregar paquetes externos desde GitHub

Este comando descarga el paquete deseado y lo incluye automáticamente en tu proyecto.

go get github.com/autor/nombre-paquete

Luego podrás importarlo directamente en tu archivo .go usando la línea import.

¿Cómo trabajar con variables de ambiente desde un archivo .env?

Implementar la lectura de variables desde un archivo .env es sencillo en Go, especialmente usando paquetes externos. Luego de importar el paquete necesario, aplicas estos pasos:

Creación del archivo .env

Este archivo debe contener los datos que pretendes usar, como por ejemplo:

AppName=GoaMin
AppEmb=desarrollo
AppPort=8080

Configurar e invocar las variables en tu aplicación Go

Tu código puede verse como:

package main

import (
    "fmt"
    "log"
    "os"
    "github.com/joho/godotenv"
)

func main() {
    err := godotenv.Load()
    if err != nil {
        log.Fatal("Error cargando el archivo env")
    }

    appName := os.Getenv("AppName")
    appEnv := os.Getenv("AppEmb")
    appPort := os.Getenv("AppPort")

    fmt.Println("Nombre de la aplicación:", appName)
    fmt.Println("Entorno de la aplicación:", appEnv)
    fmt.Println("Puerto de la aplicación:", appPort)
}

Este enfoque permite acceder de manera rápida y eficiente a las variables definidas, tanto en tu proyecto como en las establecidas en el sistema operativo.

¿Cómo estás utilizando las variables de ambiente en tus proyectos de Go? Comparte tu experiencia en los comentarios.