文章目录
自我介绍
大家好,我是 Gin。在 Go 语言的 Web 开发领域,我可是一位实力强劲的伙伴呢。
我以高性能和简洁高效著称。在处理 HTTP 请求时,我速度飞快,能够轻松应对高并发的场景。无论是小型项目还是大型的企业级应用,我都能游刃有余地发挥作用。
我的设计理念强调简洁性。我的 API 简洁明了,易于学习和使用。开发人员可以快速上手,用最少的代码实现强大的功能。我提供了丰富的中间件,可以方便地处理各种常见的 Web 开发任务,如请求日志记录、错误处理、身份验证等。
我还具备良好的路由机制。可以轻松地定义不同的 HTTP 方法和路径,将请求准确地路由到相应的处理函数。这使得项目的结构更加清晰,易于维护。
对于测试,我也提供了便捷的支持。开发人员可以轻松地编写单元测试和集成测试,确保应用的稳定性和可靠性。
总之,如果你正在进行 Go 语言的 Web 开发,选择我 ——Gin,我将助你高效地构建出高性能、可靠的 Web 应用。
gin的优势
Gin 框架与其他框架相比,具有以下显著优势:
高性能
简洁易用
丰富的中间件支持
良好的错误处理
强大的路由功能
活跃的社区和良好的文档
gin框架 官方文档链接
gin的包 :
"github.com/gin-gonic/gin"
gin框架基础模块
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
持续化刷新界面 安装可以用 fresh来启动
- 安装fresh 库
go get github.com/pilu/fresh
2.进入项目的 根目录
fresh
fresh 将会自动运行项目的 main.go 热加载大功告成。
可以把gin框架来实现beego框架的封装
gin框架的中间件
package middleware
import (
"gin-video/pkg"
"github.com/gin-gonic/gin"
"net/http"
)
func AuthMiddleware() gin.HandlerFunc {
//中间件
return func(c *gin.Context) {
//从请求头中获取token信息
token := c.GetHeader("token")
if token == "" {
c.JSON(http.StatusUnauthorized, gin.H{
"code": "-1",
"data": "token不能为空",
})
c.Abort() //中止请求处理流程
return
}
userId, err := pkg.GetJwtToken(token)
if err != nil {
c.JSON(http.StatusUnauthorized, gin.H{
"code": "-1",
"data": "token解析失败",
})
c.Abort()
return
}
c.Set("userId", userId)
c.Next()
}
}
路由
//路由
func InItRouter() *gin.Engine {
r := gin.Default()
r.GET("/user/login", conteroller.UserLogin) //用户登录
r.Use(middleware.AuthMiddleware()) //中间件
r.POST("/video/create", conteroller.VideoCreate) //视频添加
r.GET("/video/list", conteroller.VideoList) //视频列表
return r
}
//使用中间件
userId, _ := c.Get("userId")
gin框架返回
c.JSON(http.StatusOK, gin.H{
"code": 0,
"message": "success",
})
return
标签:封装,框架,中间件,token,fresh,简单,gin,路由
From: https://blog.csdn.net/2301_76439627/article/details/142413864