Cara mendayakan muat semula panas dalam projek Gin anda

WBOY
Lepaskan: 2024-08-22 20:31:02
asal
867 orang telah melayarinya

How to enable hot reload in your Gin project

Gin ialah salah satu rangka kerja terpantas di dunia Go. Walau bagaimanapun, terdapat satu ciri yang hilang dalam Gin ialah realod panas. Supaya dalam blog ini saya boleh menunjukkan kepada anda bagaimana anda boleh mendayakan ciri muat semula panas dalam projek Gin anda.

Andaikan ini adalah main.go fie anda

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

}
Salin selepas log masuk

Jadi kami boleh menggunakan Air (https://github.com/air-verse/air) - Muat semula secara langsung untuk apl Go anda

Pasang Air dengan menggunakan arahan ini ?

go install github.com/air-verse/air@latest
Salin selepas log masuk

Kemudian tambah fail .air.toml menggunakan arahan ini

air init
Salin selepas log masuk

Jika arahan udara tidak ditemui, ini mungkin kerana direktori Go bin tiada dalam PATH anda

Dalam kes itu saya menggunakan terminal ikan

Mula-mula, mari kita ketahui tempat Go memasang binari. Jalankan arahan ini:

echo $GOPATH/bin
Salin selepas log masuk

Jika $GOPATH tidak ditetapkan, lokasi lalai biasanya ~/go/bin.

Sekarang, mari tambahkan direktori ini pada PATH anda dalam Fish. Buka fail konfigurasi Ikan anda:

nano ~/.config/fish/config.fish
Salin selepas log masuk

Tambah baris berikut pada fail:

set -gx PATH $PATH $GOPATH/bin
Salin selepas log masuk

Jika $GOPATH tidak ditetapkan, gunakan laluan penuh, seperti:

set -gx PATH $PATH ~/go/bin
Salin selepas log masuk

Simpan fail dan keluar dari editor.
Muat semula konfigurasi Ikan anda:

 ~/.config/fish/config.fish
Salin selepas log masuk

Sekarang cuba jalankan udara sekali lagi:

air
Salin selepas log masuk

Jika anda menggunakan terminal bash, anda perlu mengedit fail .~/bashrc anda.

Sekarang edit fail .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
Salin selepas log masuk

Pastikan aplikasi Gin anda mendengar pada localhost dan bukannya hanya :8080 untuk tingkah laku muat semula panas yang lebih baik

r.Run("localhost:8080")
Salin selepas log masuk

Dan sekarang daripada run go run main.go , hanya jalankan udara dan kemudian lihat keajaibannya.

Atas ialah kandungan terperinci Cara mendayakan muat semula panas dalam projek Gin anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!