„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So aktivieren Sie Hot Reload in Ihrem Gin-Projekt

So aktivieren Sie Hot Reload in Ihrem Gin-Projekt

Veröffentlicht am 27.08.2024
Durchsuche:759

How to enable hot reload in your Gin project

Gin ist eines der schnellsten Frameworks in der Go-Welt. Allerdings fehlt in Gin eine Funktion: Hot Realod. Damit ich Ihnen in diesem Blog zeigen kann, wie Sie die Hot-Reload-Funktion in Ihrem Gin-Projekt aktivieren können.

Angenommen, dies ist Ihr main.go-Fie

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")

}

Damit wir Air verwenden können (https://github.com/air-verse/air) – Live-Neuladen für Ihre Go-Apps

Air mit diesem Befehl installieren?

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

Dann fügen Sie die Datei .air.toml mit diesem Befehl hinzu

air init

Wenn der Air-Befehl nicht gefunden wird, kann es daran liegen, dass sich das Go-bin-Verzeichnis nicht in Ihrem PATH befindet

In diesem Fall verwende ich das Fischterminal

Lassen Sie uns zunächst herausfinden, wo Go Binärdateien installiert. Führen Sie diesen Befehl aus:

echo $GOPATH/bin

Wenn $GOPATH nicht festgelegt ist, ist der Standardspeicherort normalerweise ~/go/bin.

Jetzt fügen wir dieses Verzeichnis zu Ihrem PATH in Fish hinzu. Öffnen Sie Ihre Fish-Konfigurationsdatei:

nano ~/.config/fish/config.fish

Fügen Sie der Datei die folgende Zeile hinzu:

set -gx PATH $PATH $GOPATH/bin

Wenn $GOPATH nicht festgelegt ist, verwenden Sie den vollständigen Pfad, etwa:

set -gx PATH $PATH ~/go/bin

Speichern Sie die Datei und verlassen Sie den Editor.
Laden Sie Ihre Fish-Konfiguration neu:

 ~/.config/fish/config.fish

Jetzt versuchen Sie es noch einmal mit der Luftzufuhr:

air

Wenn Sie ein Bash-Terminal verwenden, müssen Sie Ihre .~/bashrc-Datei bearbeiten.

Jetzt die .air.toml-Datei bearbeiten

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

Stellen Sie sicher, dass Ihre Gin-Anwendung auf localhost und nicht nur auf :8080 lauscht, um ein besseres Hot-Reload-Verhalten zu erzielen.

r.Run("localhost:8080")

Und jetzt statt „run go run main.go“ einfach „air“ ausführen und dann die Magie sehen.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/siumhossain/how-to-enable-hot-reload-in-your-gin-project-42g4?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3