基于go-gin的微信小程序api框架搭建
文章目录
废话不多说,先上 github链接
1.为什么选gin
- Gin是一个 go web 框架,最大的优点就是高性能,比 http router 快 40 倍。
- 轻量,使用起来方便简洁,支持路由分组。
- 对中间件支持很好,方便用第三方中间件也可以自己定义,还能很方便地跟路由进行结合。
- 学习成本低。
2. 其他技术
Redis :
- 提供缓存支持,有利于提高数据交换速率。
- gin-contrib的中间件sessions对redis的支持
- 保存session,记录用户状态,方便鉴权。
MySQL:
- 后端开发成员有一定的使用经验。
- 也是主流的数据库之一。
- go的ORM gorm对mysql的支持很不错,除了个别注意事项(4.1 如何优雅地使用gorm)。
Nginx
- 后台需要一定的安全保障,Nginx作为反向代理可以将服务端跟外界隔离开。
- Nginx 可以为多个服务端进行代理,可以代理部署在多个端口 go server,从而使得服务器有着较高的抗压能力。
- Nginx 较容易配置端口转发。
- 网上教程很多,在此提供项目的配置文件供参考
weApp SDK
https://github.com/medivhzhan/weapp
涵盖了wx小程序的各种请求,调用起来方便清晰
“哟哟,这个轮子真是又大又圆”
3. 代码模块
先来看看文件树,再看看代码
.
├── config # 用于读取配置文件config.json中的数据
├── config.json
├── controllers # 对路由请求进行处理
│ ├── ad
│ ├── resource
│ ├── task
│ └── user
├── database # 链接数据库
├── main.go # 主程序
├── middlewares # 自定义的中间件
│ ├── auth # 用session进行鉴权
│ ├── logger # 自定义访问日志中间件,对日志进行格式修改、打印、分割
│ └── session # 注册gin-contrib/sessions 中间件
├── models # 数据模型,对数据库进行访问
│ ├── ad
│ ├── campus
│ ├── common
│ ├── school
│ ├── tag
│ ├── task
│ └── user
├── modules # 自定义的模块
│ ├── gredis # 调用redis进行缓存
│ ├── log # 自定义日志,如错误日志
│ └── util # 工具包,对一些常用的代码块进行封装
├── router # 路由
└── storage # 存储文件夹
├── file # 文件存储
├── img # 图片存储
└── logs # 日志存储
4. 我曾经跨过的山和大海
懒得写新的blog了,就放这了