项目目录与使用说明笔记(个人记录使用) | 青训营笔记

124 阅读2分钟

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

image.png

目录结构

  1. api文件夹就是MVC框架的controller,负责协调各部件完成任务
  2. model文件夹负责存储数据库模型和数据库操作相关的代码
  3. service负责处理比较复杂的业务(可能用不到,为了简化)
  4. util一些通用的小工具
  5. conf放一些静态存放的配置文件
  6. public放视频和图片,音频等的静态资源目录
  7. e-r.png是数据库的e-r图
  8. .env是环境配置,如果想修改数据库连接则改这里
  9. middleware是中间件,用于登陆验证,跨域操作
  10. serializer准备放一些序列化统一格式的操作,暂时还没写好
  11. server放要挂载的路由

项目运行流程

  1. 首先进入main.go,初始化gin的引擎对象,之后在conf文件夹下的conf.go中
  2. 在conf.go中读取本地环境信息,设置日志级别,之后初始化数据库链接
// 初始化GORM日志配置
newLogger := logger.New(
        log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
        logger.Config{
                SlowThreshold:             time.Second, // Slow SQL threshold
                LogLevel:                  logger.Info, // 日志等级
                IgnoreRecordNotFoundError: true,        // Ignore ErrRecordNotFound error for logger
                Colorful:                  false,       // 警告颜色
        },
)
db, err := gorm.Open(mysql.Open(connString), &gorm.Config{
        Logger: newLogger,
})
  1. 接下来挂载路由,首先去server/router.go中,初始化跨域的中间件,之后设置路由组,将路由挂载到上面,将这些路由分为两部分,一部分需要登陆,另一部分不需要登陆,需要登陆的路由挂载之前先进入登陆保护的中间价
  2. 这个中间件将token拿出来,然后用jwt框架解析token,获取用户信息,如果没获取到则提示用户登陆,或者登陆过期,否则就next到之后的路由挂载

写一个接口的流程

  1. 首先看自己负责的路由调用的函数
  2. 然后看接口的入参和响应
  3. 根据响应格式写结构体
  4. 在自己的api中调用的函数写代码