安装
环境win10, go version go1.14.3,gin v1.6.3
编辑器:goland,
开启GO Modules(setting->go->go Gmodules-> enable)
设置代理: Appearance & behavior-> system Settings -> HTTP Proxy -> auto-detect proxy setting 设置为:https://mirrors.aliyun.com/goproxy/
//liunx设置代理
export GOPROXY=https://mirrors.aliyun.com/goproxy/
go get -u github.com/gin-gonic/gin
mkdir demo
go mod init demo
创建main.go文件
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run(":8080") // listen and serve on 0.0.0.0:8080
}
执行
go run main.go
访问:http://localhost:8080/ping
打包
go build
win下打包liunx
set GOARCH=amd64
set GOOS=linux
liunx下执行:
chmod +x demo
./demo
//后台运行
setsid ./demo
热更新:
go get -u github.com/cosmtrek/air
//此时你的gopath bin 目录下会有个air的可执行文件,到你项目目录下执行
air
swagger
//执行
go get -u github.com/swaggo/swag/cmd/swag
//执行初始化
swag init
//修改gin router, 增加以下, host是你的地址
url := ginSwagger.URL("http://" + host + "/swagger/doc.json")
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))
配置:
配置暂时选用gopkg.in/ini.v1
新建config目录,里面新建config.go和config.ini
config.go代码如下:
import (
"gopkg.in/ini.v1"
)
var (
Cfg = new(config)
)
type config struct {
Server `ini:"server"`
}
type Server = struct {
Host string `ini:"host"`
}
func InitConfig(path string) {
err := ini.MapTo(Cfg, path)
if err != nil {
panic(err)
}
}
config.ini文件代码如下
[server]
host=127.0.0.1:8081
最后再入口或者其他地方初始配置,例如在main.go中
package main
import (
"jChart/config" //jChart是你自己mod名
)
//@title 搜索引擎
//@version 1.0
//@description 基于elasticsearch的搜索引擎程序
func main() {
//初始化配置
config.InitConfig("config/config.ini")
//初始化路由
...
_ = r.Run(config.Cfg.Server.Host)
}
里面的
以上就搭建了一个基础的基于gin的开发环境和框架, 如果需要学习更完善的系统,可以学习下http://mydearzwj.gitee.io/go-admin-site/ 这个代码,挺不错
这个文档不错,比较全面:http://www.topgoer.com/