golang作为21世纪的C++,增加了内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算,非常值得学习。Gin 是一个 go 写的 web 框架,具有高性能的优点,同样值得学习。文章为您介绍如何快速构建gin项目,是骡子是马拉出来遛遛。

1.go mod 管理依赖

cd $gopath\src\github.com\carfield

go mod init

就可以看到在src\github.com\carfield 生成了go.mod文件

module github.com/carfield

go 1.13

2.下载gin包

go get -u github.com/gin-gonic/gin

ps:由于众所周知的原因,大概率是下不动,所以请修改代理

2.1修改代理

go env -w GOPROXY=https://goproxy.cn,direct

2.2再次执行

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表示简介引用

3.快速开始

3.1引入gin包

import "github.com/gin-gonic/gin"

3.2 main.go

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")
}

4.运行起来

go run main.go

访问http://localhost:8080