这是我参与「第五届青训营」伴学笔记创作活动的第8天
一、下载gin框架
要安装 Gin 软件包,需要先安装 Go 并设置 Go 工作区。
1.下载并安装 gin:
$ go get -u github.com/gin-gonic/gin
2.将 gin 引入到代码中:
import "github.com/gin-gonic/gin"
3.(可选)如果使用诸如 http.StatusOK 之类的常量,则需要引入 net/http 包:
import "net/http"
- 创建你的项目文件夹并
cd进去
$ mkdir -p $GOPATH/src/github.com/myusername/project && cd "$_"
- 拷贝一个初始模板到你的项目里
$ curl https://raw.githubusercontent.com/gin-gonic/examples/master/basic/main.go > main.go
- 运行你的项目
$ go run main.go
问题
1.版本问题,如果go的版本比较高是最新版 可以将 go get换位go install进行尝试
$ go install -u github.com/gin-gonic/gin@v1.19.5(版本号,我的是1.19.5,查看使用go version)
2.上述操作若gin框架下载不成功遇到 not found: github.com/gin-gonic/gin@v1.19.5: invalid version: unknown revision v1.19.5问题
首先 创建一个 mod 文件
go mod init xxx
然后执行命令
go mod tidy
这里可能是mod版本太老所以需要重新运行一下
然后下载并安装 gin:
$ go get -u github.com/gin-gonic/gin
问题得以解决
二、、fresh热处理下载
- cmd 打开命令窗口,输入一下命令 :
go get github.com/pilu/fresh
2. 跳转到要运行的项目的 根目录 ,运行 fresh 命令
问题
问题呈现
PS E:\workspace-gos> ll
ll : 无法将“ll”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ ll
+ ~~
+ CategoryInfo : ObjectNotFound: (ll:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
问题解决方法
1.下载
go get git clone https://github.com/gravityblast/fresh.git
2.安装
go install github.com/pilu/fresh@latest
3.跳转到要运行的项目的 根目录 ,运行 fresh 命令
4.测试
PS E:\workspace-gos\gin01> fresh
18:46:20 runner | InitFolders
18:46:20 runner | mkdir ./tmp
18:46:20 watcher | Watching .
18:46:20 main | Waiting (loop 1)...
18:46:20 main | receiving first event /
18:46:20 main | sleeping for 600 milliseconds
18:46:20 main | flushing events
18:46:20 main | Started! (5 Goroutines)
问题得以解决
三、gin框架的优势
Gin框架 的优点:
轻量级,高性能、扩展性强、稳定性强、相对而言比较简洁 Gin 是使用Go/golang语言实现的HTTP Web 框架 ,接口简洁,性能极高。 Gin 是一个用 Go (Golang) 编写的 web 框架。
快速
基于 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。
可扩展性
新建一个中间件非常简单
Gin v1 稳定的特性:
- 零分配路由。
- 仍然是最快的 http 路由器和框架。
- 完整的单元测试支持。
- 实战考验。
- API 冻结,新版本的发布不会破坏你的代码。
gin 介绍网址分享:介绍 | Gin Web Framework (gin-gonic.com)