您的位置 首页 golang

golang从入门到精通,Gin Web开发,介绍、安装与单元测试

什么是Gin?

Gin是一个用Golang编写的web微框架。

1. 小巧友好: Gin的依赖比Python, Java 之类的对环境的要求更少。

2. 速度更快。 如果你需要性能和良好的生产力,你会喜欢Gin。

支持中间件。传入的HTTP请求可以由一系列中间件和最终动作来处理,可以捕获HTTP请求发生的恐慌,并将其恢复。

3. JSON 验证。 可以解析和验证请求的JSON。

路由分组。更好地规划路由信息。路由组可以无限嵌套,而不会降低性能。

4. 错误管理。 Gin提供了收集HTTP请求期间发生的所有错误的方法。中间件可以将它们写入日志文件、数据库并通过网络发送。

5. 内置模板。 使用JSON、XML和 HTML 更加方便。

6. 高扩展。 创建一个新的中间件,实现 中间件 的功能,并可以实现多个中间件串联。

1、安装Gin

安装Gin

 
Administrator@PC202110152301 MINGW64 /e/go/src/gin1
$ go get -u github.com/gin-gonic/gin
go get: upgraded github.com/ go -playground/locales v0.13.0 => v0.14.0
go get: upgraded github.com/go-playground/universal-translator v0.17.0 => v0.18.0
go get: upgraded github.com/go-playground/validator/v10 v10.4.1 => v10.10.0
go get: upgraded github.com/golang/protobuf v1.3.3 => v1.5.2
go get: upgraded github.com/json- iterator /go v1.1.9 => v1.1.12
go get: upgraded github.com/leodido/go-urn v1.2.0 => v1.2.1
go get: upgraded github.com/mattn/go-isatty v0.0.12 => v0.0.14
go get: upgraded github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 => v0.0.0-20180306012644-bacd9c7ef1dd
go get: upgraded github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 => v1.0.2
go get: upgraded github.com/ugorji/go/codec v1.1.7 => v1.2.6
go get: upgraded golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 => v0.0.0-20211215153901-e495a2d5b3d3
go get: upgraded golang.org/x/sys v0.0.0-20200116001909-b77594299b42 => v0.0.0-20211216021012-1d35b9e2eb4e
go get: upgraded golang.org/x/text v0.3.2 => v0.3.7
go get: added google.golang.org/ protobuf  v1.27.1
go get: upgraded gopkg.in/yaml.v2 v2.2.8 => v2.4.0

Administrator@PC202110152301 MINGW64 /e/go/src/gin1
$

  

2、生成第一个Gin Web

第一个Gin Web

 package main

 import  (
	//将 gin 引入到代码中
	"github.com/gin-gonic/gin"
	"log"
	//需要使用http.StatusOK之类的常量,引入 net/http 包
	"net/http"
)

func Index(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"status": 200,
	})
}
func main() {
	log.Set Flags (log.LstdFlags | log.Llongfile)
	var app = gin.Default()
	app.GET("/",  Index )
	// 监听并在 0.0.0.0:80 上启动服务
	err := app.Run(":80")
	if err != nil {
		log.Panicln(err.Error())
	}
}  

3、Gin Web单元测试

Gin Web单元测试

 package main

import (
	"github.com/gin-gonic/gin"
	"io/ioutil"
	"log"
	"net/http/httptest"
	"testing"
)

func TestIndex(t *testing.T) {
	log.SetFlags(log.LstdFlags | log.Llongfile)
	app := gin.Default()
	app.GET("/", Index)

	r := httptest.New Request ("GET", "/",  nil )
	w := httptest.NewRecorder()
	app.ServeHTTP(w, r)
	result := w.Result()
	body := result.Body
	bytes, err := ioutil.ReadAll(body)
	if err != nil {
		log.Panicln(err.Error())
	}
	t.Log(string(bytes))
}  

4、执行效果

启动服务器

浏览器执行

文章来源:智云一二三科技

文章标题:golang从入门到精通,Gin Web开发,介绍、安装与单元测试

文章地址:https://www.zhihuclub.com/86820.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图