一、安装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} }