本项目使用singo作为基础框架,项目地址:
https://github.com/bydmm/singo
本项目已经预先创建了一系列文件夹划分出下列模块:
- api文件夹就是MVC框架的controller,负责协调各部件完成任务
- model文件夹负责存储数据库模型和数据库操作相关的代码
- service负责处理比较复杂的业务,把业务代码模型化可以有效提高业务代码的质量(比如用户注册,充值,下单等)
- serializer储存通用的json模型,把model得到的数据库模型转换成api需要的json对象
- cache负责redis缓存相关的代码
- auth权限控制文件夹
- util一些通用的小工具
- conf放一些静态存放的配置文件,其中locales内放置翻译相关的配置文件
项目在启动的时候依赖以下环境变量,但是在也可以在项目根目录创建.env文件设置环境变量便于使用(建议开发环境使用)
MYSQL_DSN="db_user:db_password@/db_name?charset=utf8&parseTime=True&loc=Local" # Mysql连接地址
REDIS_ADDR="127.0.0.1:6379" # Redis端口和地址
REDIS_PW="" # Redis连接密码
REDIS_DB="" # Redis库从0到10
SESSION_SECRET="setOnProducation" # Seesion密钥,必须设置而且不要泄露
GIN_MODE="debug"
本项目使用Go Mod管理依赖。
go mod init go-crud
export GOPROXY=http://mirrors.aliyun.com/goproxy/
go run main.go // 自动安装
go run main.go
项目运行后启动在3000端口(可以修改,参考gin文档)