1.介绍
Gin 是一个用 Golang编写的 高性能的web 框架, 由于http路由的优化,速度提高了近 40 倍。 Gin的特点就是封装优雅、API友好。
Gin的一些特性:
-
快速 基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。
-
支持中间件 传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作DB。
-
Crash 处理 Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover
它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic! -
JSON 验证 Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。
-
路由组 更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。
-
错误管理 Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。
-
内置渲染 Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。
-
可扩展性 新建一个中间件非常简单。
2.下载并安装 gin
注:使用gin需要Go的版本号为1.6或更高
在src目录下创建
mkdir go-project-demo
进入该目录下
cd go-project-demo
在该目录下使用go mod 创建项目
go mod init go-project-demo
然后使用go get 进行下载安装gin
go get -u github.com/gin-gonic/gin
如下图:
3.创建demo
在go-project-demo 目录下创建一个main.go文件,文件内容如下:
package main
// 导入gin包
import "github.com/gin-gonic/gin"
// 入口函数
func main() {// 初始化一个http服务对象r := gin.Default()// 设置一个get请求的路由,url为/ping, 处理函数(或者叫控制器函数)是一个闭包函数。r.GET("/ping", func(c *gin.Context) {// 通过请求上下文对象Context, 直接往客户端返回一个jsonc.JSON(200, gin.H{"message": "pong",})})r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
在终端运行go run main.go
运行输出如下:
至此一个简单的gin框架入门demo完成。