一步步学习Golang web框架Gin
建立项目
go mod 管理依赖
cd $gopathsrcgithub.comcarfieldWebapi
go mod init
如果不是在gopath下,其实也是提倡不在gopath下做开发,
go mod init
后需要跟具体路径
go mod init github.comcarfieldWebapi
go get -u github.com/gin-gonic/gin
就可以看到在srcgithub.comcarfieldWebapi 生成了go.mod文件
module github.com/carfield
go 1.13
下载gin包
go get -u github.com/gin-gonic/gin
ps:由于众所周知的原因,大概率是下不动,所以请修改代理
修改代理
go env -w GOPROXY=https://goproxy.cn,direct
再次执行
go get -u github.com/gin-gonic/gin
再次打开go.mod文件
module github.com/carfield
go 1.13
require (
github.com/gin-gonic/gin v1.5.0 // indirect
github.com/go-playground/universal-translator v0.17.0 // indirect
github.com/go-sql-driver/mysql v1.5.0 // indirect
github.com/json-iterator/go v1.1.9 // indirect
github.com/leodido/go-urn v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.11 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.1 // indirect
golang.org/x/sys v0.0.0-20200117145432-59e60aa80a0c // indirect
gopkg.in/go-playground/validator.v9 v9.31.0 // indirect
gopkg.in/yaml.v2 v2.2.7 // indirect
)
module
定义包名require
用来定义依赖包及版本indirect
表示间接引用
快速开始
import "github.com/gin-gonic/gin"
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "hello,go-gin wholeheartedly at your service",
})
})
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}