1.安装gin包
go get -u github.com/gin-gonic/gin
项目组织目录:
- main: 项目主入口, 初始化gin和数据库等, 加载配置文件
- controller: 负责路由过来的请求内部业务处理
- service: 负责具体业务, 减轻controller负荷
- dao: 负责对接数据库表的增删改查 (中间使用xorm对接)
- model: 对应数据实体
- param: 返回数据实体
- config: 项目所需配置,(mysql, redis, fastDFS等配置)
- tool: 项目工具(图片上传, 所有业务都可以使用公共的工具)
main
func main(){
//项目启动, 会加载配置文件
config, err := tool.ParseConfig("./config/app.json")
if err != nil {
panic(err)
}
//根据配置文件, 获取数据库相关配置, 连接数据库, 自动建表等
//初始化数据库
_,err =tool.OrmEngine(config)
if err!=nil{
fmt.Println("数据库错误 err:",err)
return
}
fmt.Println("mysql 数据库连接成功")
//初始化redis配置
_, err = tool.InitRedisStore()
if err!=nil {
fmt.Println("redis 数据库连接失败, err:",err)
return
}
fmt.Println("redis 连接 认证通过")
///设置运行模式
gin.SetMode(gin.DebugMode)
///开始服务 默认启动, 会自动加载默认中间件
app := gin.Default()
//设置全局跨域访问(中间件) 要在路由前添加跨域中间件
app.Use(Cors())
//初始化session
tool.InitSession(app)
//注册路由服务, 请求服务过来后, 都会通过这个方法进行路由
registerRouter(app)
///运行服务
app.Run(config.AppHost+":"+config.AppPort)
}
//路由设置
func registerRouter(router * gin.Engine) {
new(controller.HelloController).Router(router)
new(controller.MemberController).Router(router)
}