Gin 프로젝트에서 핫 리로드를 활성화하는 방법

WBOY
풀어 주다: 2024-08-22 20:31:02
원래의
1053명이 탐색했습니다.

How to enable hot reload in your Gin project

Gin은 Go 세계에서 가장 빠른 프레임워크 중 하나입니다. 그러나 Gin is hot realod에는 한 가지 기능이 누락되어 있습니다. 그래서 이 블로그에서는 Gin 프로젝트에서 핫 리로드 기능을 활성화하는 방법을 보여드리겠습니다.

이것이 당신의 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")

}
로그인 후 복사

Air를 사용할 수 있습니다(https://github.com/air-verse/air) - Go 앱을 위한 실시간 새로고침

이 명령을 사용하여 Air를 설치 하시겠습니까?

go install github.com/air-verse/air@latest
로그인 후 복사

그런 다음 이 명령을 사용하여 .air.toml 파일을 추가하세요

air init
로그인 후 복사

air 명령을 찾을 수 없다면 Go bin 디렉토리가 PATH에 없기 때문일 수 있습니다

그럼 저는 피쉬 터미널을 사용하고 있어요

먼저 Go가 바이너리를 설치하는 위치를 알아봅시다. 다음 명령을 실행하세요:

echo $GOPATH/bin
로그인 후 복사

$GOPATH가 설정되지 않은 경우 기본 위치는 일반적으로 ~/go/bin입니다.

이제 Fish의 PATH에 이 디렉토리를 추가해 보겠습니다. Fish 구성 파일을 엽니다.

nano ~/.config/fish/config.fish
로그인 후 복사

파일에 다음 줄을 추가합니다.

set -gx PATH $PATH $GOPATH/bin
로그인 후 복사

$GOPATH가 설정되지 않은 경우 다음과 같은 전체 경로를 사용하세요.

set -gx PATH $PATH ~/go/bin
로그인 후 복사

파일을 저장하고 편집기를 종료하세요.
Fish 구성을 다시 로드하세요.

 ~/.config/fish/config.fish
로그인 후 복사

이제 다시 공기를 공급해 보세요.

air
로그인 후 복사

bash 터미널을 사용하는 경우 .~/bashrc 파일을 편집해야 합니다.

이제 .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
로그인 후 복사

더 나은 핫 리로드 동작을 위해 Gin 애플리케이션이 :8080 대신 localhost에서 수신 대기하는지 확인하세요

r.Run("localhost:8080")
로그인 후 복사

이제 main.go를 실행하는 대신 air를 실행하고 마법을 확인하세요.

위 내용은 Gin 프로젝트에서 핫 리로드를 활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿