“这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

目录结构
- api文件夹就是MVC框架的controller,负责协调各部件完成任务
- model文件夹负责存储数据库模型和数据库操作相关的代码
- service负责处理比较复杂的业务(可能用不到,为了简化)
- util一些通用的小工具
- conf放一些静态存放的配置文件
- public放视频和图片,音频等的静态资源目录
- e-r.png是数据库的e-r图
- .env是环境配置,如果想修改数据库连接则改这里
- middleware是中间件,用于登陆验证,跨域操作
- serializer准备放一些序列化统一格式的操作,暂时还没写好
- server放要挂载的路由
项目运行流程
- 首先进入main.go,初始化gin的引擎对象,之后在conf文件夹下的conf.go中
- 在conf.go中读取本地环境信息,设置日志级别,之后初始化数据库链接
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags),
logger.Config{
SlowThreshold: time.Second,
LogLevel: logger.Info,
IgnoreRecordNotFoundError: true,
Colorful: false,
},
)
db, err := gorm.Open(mysql.Open(connString), &gorm.Config{
Logger: newLogger,
})
- 接下来挂载路由,首先去server/router.go中,初始化跨域的中间件,之后设置路由组,将路由挂载到上面,将这些路由分为两部分,一部分需要登陆,另一部分不需要登陆,需要登陆的路由挂载之前先进入登陆保护的中间价
- 这个中间件将token拿出来,然后用jwt框架解析token,获取用户信息,如果没获取到则提示用户登陆,或者登陆过期,否则就next到之后的路由挂载
写一个接口的流程
- 首先看自己负责的路由调用的函数
- 然后看接口的入参和响应
- 根据响应格式写结构体
- 在自己的api中调用的函数写代码