简介:Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。如果你需要极好的性能,使用 Gin 吧。目前gin框架github-star已达到63.2k,足以证明其强大以及受欢迎程度。
gin特性:
1、零分配路由。
2、仍然是最快的 http 路由器和框架。
3、完整的单元测试支持。
4、具备很强的实战考验。
5、API 冻结,新版本的发布不会破坏你的代码。
官网:
https://gin-gonic.com/
项目github:
https://github.com/gin-gonic/gin
历史攻略:
下载和安装:
go get -u github.com/gin-gonic/gin
服务端:gin.go
package main
import (
"github.com/gin-gonic/gin"
"time"
)
func GetTime() time.Time {
return time.Now()
}
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"GET": GetTime(),
})
})
r.POST("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"POST": GetTime(),
})
})
r.PUT("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"PUT": GetTime(),
})
})
r.PATCH("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"PATCH": GetTime(),
})
})
r.DELETE("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"DELETE": GetTime(),
})
})
// 监听并在 127.0.0.1:8888 上启动服务
_ = r.Run("127.0.0.1:8888")
}
客户端python-requests访问结果:
# -*- coding: utf-8 -*-
# time: 2022/10/01 11:01
# file: requests_demo.py
# 公众号: 玩转测试开发
import requests
def test_api(url, method):
request_dict = {
"get": requests.get(url).json(),
"post": requests.post(url).json(),
"put": requests.put(url).json(),
"patch": requests.patch(url).json(),
"delete": requests.delete(url).json(),
}
return request_dict[method]
if __name__ == '__main__':
url = "http://127.0.0.1:8888/ping"
methods = ["get", "post", "put", "patch", "delete"]
for method in methods:
res = test_api(url, method)
print(res)
客户端访问结果:
服务端gin被访问结果: