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

打印 上一主题 下一主题

主题 1979|帖子 1979|积分 5937

前情提要

上期我们讲完了mysql和Redis的设置,完成了对 main函数下第一行代码的解析,本日接着继续

(之前写错成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官网也是有官中的

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

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

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




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

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

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

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


其他设置就靠大家自行探索

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

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

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表