Gin框架入门记录(1)-我的第一个Gin应用
1. 第一个Gin应用
1.0. 跳得有些快是不是?
细心的朋友会发现这是博主Golang入门系列第三章
博主是个比较随性的人,Go语言的变量、函数这些实验我打算直接跳过,一是之前有很长时间C的使用经验,二是闲来无事老是看些编程语言教学,例如Kotlin、Python还有Go,所以我打算直接从框架实践入手,遇到疑问再回过头来补充学习
那么我们直接开始吧
1.1. 介绍
别点
Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API,但性能比 Martini 快 40 倍
特性
快速
基于 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。
可扩展性
新建一个中间件非常简单,去查看示例代码吧。
1.2. 安装
使用Mod依赖管理工具,在项目根目录执行 :go mod init <packagename>

如下图,项目根目录下会生成 go.mod文件:

还是在项目根目录:go get -u github.com/gin-gonic/gin


如此我们便可以通过import gin来创建我们的应用了好激动(大嘘)
1.3. 第一个Gin应用
第一步,自然是一个.go原文件用来编写main函数,我这里便是mygin.go了
使用下面代码导入Gin和(可选)net/http
import "github.com/gin-gonic/gin"
import "net/http"
如下写入我们的第一个Hello应用
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个默认的Gin路由引擎
server := gin.Default()
// 定义路由:当使用GET请求访问"/hello"时,执行相应的处理回调函数
server.GET("/hello", func(c *gin.Context) {
// 在回调函数中,返回一个HTTP 200 OK的响应,并在响应体中写入"Hello, World!"
// 这里的c是gin.Context类型的参数,代表当前请求的上下文
// 使用c.String方法来设置响应的状态码和响应体
// http.StatusOK是一个常量,表示HTTP 200 OK的状态码
c.String(http.StatusOK, "Hello, World!")
})
// 启动HTTP服务器,监听在8080端口
// server.Run()方法会阻塞当前线程,直到服务器停止
// 这里的8080是指定的端口号,可以根据需要修改
// 如果需要在其他端口上运行,可以将8080替换为其他端口号
server.Run(":8080")
}
1.4. Let's run that
在项目根目录下执行go run <你的main函数所在的.go文件>

看到输出监听端口了,就认为已经启动成功了。

(因为是在云服务器上运行的所以隐去了IP,大家如果是在本地测试的话用127.0.0.1:8080/hello即可访问)

浙公网安备 33010602011771号