一、安装gin包和热加载包
- 首先终端新建一个main.go
- 然后go mod init ‘项目名称’
- 执行以下命令 安装gin包
go get -u github.com/gin-gonic/gin
- 终端安装热加载包
go get github.com/pilu/fresh
- 终端输入fresh 运行 ,之后文件的改动,项目自动重新热加载
fresh
- 简单示例代码
package mainimport ("github.com/gin-gonic/gin"
)
func main (){r := gin.Default() r.GET("/", func(c *gin.Context) {c.String(200, "你好,gin")})
}
二、路由简单场景总结
- 返回string数据
r := gin.Default() r.GET("/", func(c *gin.Context) {c.String(200, "你好,gin")})r.POST("/ping", func(c *gin.Context) {c.String(http.StatusOK, "你好,gin") })
- 返回json数据
r.GET("/json", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"code": 200,"data": gin.H{"name": "张三","age": 18,},})})
- 返回结构体
type Article struct {Title string `json:"title"` Desc string `json:"desc"`Content string `json:"content"`}r.GET("/json1", func(c *gin.Context) {a := &Article{Title: "标题", Desc: "描述", Content: "内容"} c.JSON(http.StatusOK, gin.H{"code": 200,"data": a,})})
- jsonp返回
type Article struct {Title string `json:"title"` Desc string `json:"desc"`Content string `json:"content"`}r.GET("/jsonp", func(c *gin.Context) {a := &Article{Title: "标题-jsonp", Desc: "描述", Content: "内容"}c.JSONP(http.StatusOK, gin.H{"code": 200,"data": a,})})
- 返回XML
r.GET("/xml", func(c *gin.Context) {c.XML(http.StatusOK, gin.H{"code": 200,"title": "小米SU7",})})
- 返回模版 html
r.GET("/html", func(c *gin.Context) {c.HTML(http.StatusOK, "goods.html", gin.H{ "code": 200,"title": `小米SU7`,})<h1 class="text-center my-4">{{.title}}</h1>
r.GET("/html", func(c *gin.Context) {b := &Article{Title: "小米SU7年轻人的第一辆车", Desc: "描述", Content: "内容"} c.HTML(http.StatusOK, "goods.html", gin.H{"code": "200","data": b,})}){{$t := .data.Title}}<h3>{{$t}}</h3>{{with .data}}<p>{{.Title}}</p>{{end}}
r.GET("/html", func(c *gin.Context) {c.HTML(http.StatusOK, "goods.html", gin.H{"code": "200","price": 50,})})<!-- 条件判断 eq 相等 / ne 不相等 / gt 大于 / lt 小于 / ge 大于等于 / le 小于等于 -->{{if ge .price 80}}<p>有点贵:{{.price}}</p>{{else if lt .price 10}}<p>有点便宜:{{.price}}</p>{{else}}<p>价格:{{.price}}</p>{{end}}
r.GET("/html", func(c *gin.Context) {c.HTML(http.StatusOK, "goods.html", gin.H{"code": "200","hobby": []string{"小米", "SU7", "YU7"},})})<!-- 循环遍历数据 -->{{range $key,$value := .hobby}}<li>{{$key}}---{{$value}}</li>{{else}}<p>没有数据</p>{{end}}