前情提要
上期我们讲完了mysql和Redis的设置,完成了对 main函数下第一行代码的解析,本日接着继续
(之前写错成steup了。。。)
这是main函数下第二行代码
点击检察SetupRouter代码- func SetupRouter() *gin.Engine {
- r := gin.Default()
- r.Use(cors.New(cors.Config{
- AllowOrigins: []string{"*"},
- AllowMethods: []string{"GET", "PUT", "OPTIONS"},
- AllowHeaders: []string{"Origin", "Content-Type", "Authorization"},
- ExposeHeaders: []string{"Content-Length"},
- AllowCredentials: true,
- MaxAge: 12 * time.Hour,
- }))
- auth := r.Group("/api/auth")
- {
- auth.POST("/login", controllers.Login)
- auth.POST("/register", controllers.Register)
- }
- api := r.Group("/api")
- api.GET("/exchangeRates", controllers.GetExchangeRate)
- api.Use(middlewares.AutoMigrate())
- {
- api.POST("/exchangeRates", controllers.CreateExchangeRate)
- api.POST("/articles", controllers.CreateArticle)
- api.GET("/articles", controllers.GetArticles)
- api.GET("/articles/:id", controllers.GetArticlesByID)
- api.POST("/articles/:id/like", controllers.LikeArticle)
- api.GET("/articles/:id/like", controllers.GetArticleLikes)
- }
- return r
- }
复制代码 实现前后端对接
固然其时学这个项目只是单纯为了学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企服之家,中国第一个企服评测及商务社交产业平台。 |