"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment activer le rechargement à chaud dans votre projet Gin

Comment activer le rechargement à chaud dans votre projet Gin

Publié le 2024-08-27
Parcourir:206

How to enable hot reload in your Gin project

Gin est l'un des frameworks les plus rapides du monde Go. Cependant, il manque une fonctionnalité dans Gin : Hot Realod. Afin que dans ce blog, je puisse vous montrer comment activer la fonctionnalité de rechargement à chaud dans votre projet Gin.

Supposons qu'il s'agisse de votre fichier 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")

}

Nous pouvons donc utiliser Air (https://github.com/air-verse/air) - Rechargement en direct pour vos applications Go

Installer Air à l'aide de cette commande ?

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

Ajoutez ensuite le fichier .air.toml à l'aide de cette commande

air init

Si la commande aérienne est introuvable, cela peut être dû au fait que le répertoire Go bin ne se trouve pas dans votre PATH

Dans ce cas, j'utilise un terminal de pêche

Tout d'abord, découvrons où Go installe les binaires. Exécutez cette commande :

echo $GOPATH/bin

Si $GOPATH n'est pas défini, l'emplacement par défaut est généralement ~/go/bin.

Maintenant, ajoutons ce répertoire à votre PATH dans Fish. Ouvrez votre fichier de configuration Fish :

nano ~/.config/fish/config.fish

Ajoutez la ligne suivante au fichier :

set -gx PATH $PATH $GOPATH/bin

Si $GOPATH n'est pas défini, utilisez le chemin complet, comme :

set -gx PATH $PATH ~/go/bin

Enregistrez le fichier et quittez l'éditeur.
Rechargez votre configuration Fish :

 ~/.config/fish/config.fish

Essayez maintenant de faire circuler de l'air à nouveau :

air

Si vous utilisez le terminal bash, vous devez modifier votre fichier .~/bashrc.

Modifiez maintenant le fichier .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

Assurez-vous que votre application Gin écoute sur localhost au lieu de simplement :8080 pour un meilleur comportement de rechargement à chaud

r.Run("localhost:8080")

Et maintenant, au lieu de courir, lancez main.go, exécutez simplement de l'air et voyez ensuite la magie.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/siumhossain/how-to-enable-hot-reload-in-your-gin-project-42g4?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3