"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo habilitar la recarga en caliente en su proyecto Gin

Cómo habilitar la recarga en caliente en su proyecto Gin

Publicado el 2024-08-27
Navegar:485

How to enable hot reload in your Gin project

Gin es uno de los frameworks más rápidos del mundo Go. Sin embargo, falta una característica en Gin: hot realod. Para que en este blog pueda mostrarte cómo puedes habilitar la función de recarga en caliente en tu proyecto Gin.

Supongamos que este es su archivo main.go

package main

import (
    "fmt"
    "net/http"
    "github.com/gin-gonic/gin"
)

func successResponse(data interface{}) gin.H {
    return gin.H{
        "status": "success",
        "data": data,
    }
}

func successResponseWithMessageAndCode(data interface{}, message string, code int,c *gin.Context) {
    c.JSON(code, gin.H{
        "status": "success",
        "data": data,
        "message": message,
    })
}

func main() {
    r := gin.Default()
    fmt.Println("Hello World")
    r.GET("/", func(c *gin.Context) {
        data:= map[string]interface{}{
            "message": "Hello World",
        }
        successResponseWithMessageAndCode(data, "Success", http.StatusOK, c)
    })

    r.GET("/hello", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Hello World",
        })
    })

    r.Run("localhost:8080")

}

Para que podamos usar Air (https://github.com/air-verse/air) - Recarga en vivo para tus aplicaciones Go

¿Instalar Air usando este comando?

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

Luego agregue el archivo .air.toml usando este comando

air init

Si no se encuentra el comando aéreo, puede deberse a que el directorio Go bin no está en su RUTA

En ese caso estoy usando terminal de pescado

Primero, averigüemos dónde instala Go los binarios. Ejecute este comando:

echo $GOPATH/bin

Si $GOPATH no está configurado, la ubicación predeterminada suele ser ~/go/bin.

Ahora, agreguemos este directorio a su RUTA en Fish. Abra su archivo de configuración de Fish:

nano ~/.config/fish/config.fish

Agregue la siguiente línea al archivo:

set -gx PATH $PATH $GOPATH/bin

Si $GOPATH no está configurado, use la ruta completa, como:

set -gx PATH $PATH ~/go/bin

Guarde el archivo y salga del editor.
Vuelve a cargar tu configuración de Fish:

 ~/.config/fish/config.fish

Ahora intenta hacer funcionar el aire nuevamente:

air

Si estás usando la terminal bash, debes editar tu archivo .~/bashrc.

Ahora edite el archivo .air.toml

root = "."
tmp_dir = "tmp"

[build]
cmd = "go build -o ./tmp/main ."
bin = "tmp/main"
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
include_ext = ["go", "tpl", "tmpl", "html"]
exclude_dir = ["assets", "tmp", "vendor"]
include_dir = []
exclude_file = []
log = "air.log"
delay = 1000 # ms
stop_on_error = true
send_interrupt = false
kill_delay = 500 # ms

[log]
time = false

[color]
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"

[misc]
clean_on_exit = true

Asegúrese de que su aplicación Gin escuche en localhost en lugar de solo :8080 para un mejor comportamiento de recarga en caliente

r.Run("localhost:8080")

Y ahora, en lugar de ejecutar, ejecutar main.go, simplemente ejecuta air y luego verás la magia.

Declaración de liberación Este artículo se reproduce en: https://dev.to/siumhossain/how-to-enable-hot-reload-in-your-gin-project-42g4?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3