Gin — один из самых быстрых фреймворков в мире Go. Однако в Gin отсутствует одна функция — горячий реалод. В этом блоге я могу показать вам, как включить функцию горячей перезагрузки в вашем проекте 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.
Теперь давайте добавим этот каталог в вашу PATH в Fish. Откройте файл конфигурации 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, чтобы улучшить поведение при горячей перезагрузке
r.Run("localhost:8080")
И теперь вместо запуска go запустите main.go , просто запустите air и увидите волшебство.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3