GIn入门
Gin入门
1.Gin安装
go get -u github.com/gin-gonic/gin
2. 将 gin 引入到代码中:
import "github.com/gin-gonic/gin"
2.1(可选)如果使用诸如 http.StatusOK
之类的常量,则需要引入 net/http
包:
import "net/http"
2.2 初始化 go mod
go mod init
/*
生成 go.mod 文件,此命令会在当前目录中初始化和创建一个新的go.mod文件,手动创建go.mod文件再包含一些module声明也等同该命令,而go mod init命令便是帮我们简便操作,可以帮助我们自动创建。
*/
3.简单示例 (main.go)
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
3.1 运行
go run main.go
运行 main.go 并且在浏览器中访问 127.0.0.1:8080/ping
3.2 如果需要跑在8000端口
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
r.Run(":8000") //这样就可以了
}
4 热加载
每次更新代码都需要重新启动代码,我们可以使用第三方的包来实现自动重新加载并执行
工具1(推荐)
go get github.com/pilu/fresh
工具2
go get -u github.com/codegangsta/gin
4.1 使用热加载启动服务,出现问题
下载 fresh 仓库最新代码
# 从github下载最新的代码
git clone https://github.com/gravityblast/fresh.git
# 或者使用码云下载
git clone git@gitee.com:kubernete/fresh.git
安装 fresh
# 安装fresh
go install github.com/pilu/fresh@latest
fresh运行项目名即可 (会生成一个tmp文件夹不用管)
5 GET POST PUT DELETE
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
r.POST("/post", func(c *gin.Context) {
c.String(http.StatusOK, "我是POST,主要用于增加数据")
})
r.PUT("/put", func(c *gin.Context) {
c.String(http.StatusOK, "我是PUT,主要用于修改数据")
})
r.DELETE("/delete", func(c *gin.Context) {
c.String(http.StatusOK, "我是DELETE,主要用于删除数据")
})
r.Run(":8000") // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}