找回密码
 立即注册
首页 业界区 科技 Gin入门(5)-第三集才登场的主角:Gin

Gin入门(5)-第三集才登场的主角:Gin

阮蓄 3 天前
前情提要

上期我们讲完了mysql和Redis的配置,完成了对 main函数下第一行代码的解析,今天接着继续
1.png

(之前写错成steup了。。。)
这是main函数下第二行代码
点击查看SetupRouter代码
  1. func SetupRouter() *gin.Engine {
  2.         r := gin.Default()
  3.         r.Use(cors.New(cors.Config{
  4.                 AllowOrigins:     []string{"*"},
  5.                 AllowMethods:     []string{"GET", "PUT", "OPTIONS"},
  6.                 AllowHeaders:     []string{"Origin", "Content-Type", "Authorization"},
  7.                 ExposeHeaders:    []string{"Content-Length"},
  8.                 AllowCredentials: true,
  9.                 MaxAge:           12 * time.Hour,
  10.         }))
  11.         auth := r.Group("/api/auth")
  12.         {
  13.                 auth.POST("/login", controllers.Login)
  14.                 auth.POST("/register", controllers.Register)
  15.         }
  16.         api := r.Group("/api")
  17.         api.GET("/exchangeRates", controllers.GetExchangeRate)
  18.         api.Use(middlewares.AutoMigrate())
  19.         {
  20.                 api.POST("/exchangeRates", controllers.CreateExchangeRate)
  21.                 api.POST("/articles", controllers.CreateArticle)
  22.                 api.GET("/articles", controllers.GetArticles)
  23.                 api.GET("/articles/:id", controllers.GetArticlesByID)
  24.                 api.POST("/articles/:id/like", controllers.LikeArticle)
  25.                 api.GET("/articles/:id/like", controllers.GetArticleLikes)
  26.         }
  27.         return r
  28. }
复制代码
实现前后端对接

虽然当时学这个项目只是单纯为了学Gin,但一个完整的后端服务器是不止包含框架的,所以到了第三期我们才终于看到Gin库的身影
Gin官网也是有官中的
2.png

这里可以看到在不需要任何配置的情况下只需要
r := gin.Default()
就可以创建一个默认参数的gin.Engine实例
3.png

而Run()方法可以对指定的端口启用监听,不过在我们这个项目中并不直接使用这个方法,后续会提及的
4.png

这里引入了Cors库,用来设置中间件,先讲一下Use()方法
5.png

6.png

7.png

8.png

Deepseek给的初步讲解,如果觉得抽象的话就往死里问就完事了
9.png

HandlerFunc的定义一眼望过去容易蒙圈,我们还是从传的参数cors.New(cors.Config{...}入手
我们有必要看看cors库,同时对于一定要先了解CORS概念,可以看大佬的文章(正如前言所说,一个项目的技术栈往往不是一个框架,想要做出项目要学的东西可不只是编程语言)
10.png

立马就对这段代码的目的了然了:为我们的gin.Engine添加cors中间件
而同时我们通过cors的Config{}结构体为cors进行配置
11.png

可以看到配置选项不少,我们这里就只看有改动的地方吧
12.png

13.png

其他配置就靠大家自行摸索
14.png

有Web基础的话相信大家能看得出这里是路由的管理部分了,通过添加并配置前端请求的对应路由,我们就可以处理用户的各种操作并完成CRUD
去gorm文档查看Group的内容
15.png

Gin的分组功能可以让多级路由的管理变得轻松简单,比如图示我们就可以分别访问localhost:8080/v1/login和localhost:8080/v2/login,在配置的时候我们就不用频繁的输入v1和v2,也更方便我们进行权限管理和版本控制
对于处理请求,Gin支持RESTful API,配置简单易懂
16.png

通过前路径后句柄的传参即可完成特定API的对接
其实到这里,我们已经可以通过配置路由对接前端实现一些小功能了,比如按钮计数
但我们的项目还没有结束,我们还有身份认证中间件 API句柄的实现 自定义服务器关闭提示没有讲
这些便待后续娓娓道来了
结语

如果觉得我的文章写的不错麻烦各位点个赞,你们的支持是我创作的动力
各位下次再见

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册