Cago 一个快速开发的集成式框架.使用模块化的开发模式,每一个组件都可以单独的调用.
Cago 只对社区工具进行集成,大大减少迁移难度和学习成本,我们不生产代码,我们只是方案的搬运工.
使用 go 的struct来声明 API 和 swagger 文档,可以通过脚手架来帮助你生成相关内容.
你可以通过简单示例来快速的了解 Cago 的使用。你也可以复制这个示例来创建你的项目。
你可以安装脚手架来帮助你生成代码。
cago 提供了gitlab-ci、golanglint-ci和
Kubernetes helm的 CI/CD 配置文件,可以快速帮你实现 CI/CD.
当本地调试时也可以使用docker-compose.yaml启动调试环境.
可以使用etcd作为配置中心,也支持文件作为配置启动。
大多数组件都是基于社区工具进行封装,方便使用。
Cago使用三层架构,并混合了DDD的思想,推荐使用下面的目录结构。你也可以根据自己的需求来调整目录结构。
cmd/app/main.go项目的入口configsconfig.yaml配置文件...其他配置文件,也可以写配置读取方法,其它包调用:configs.GetConfig().XXX
docs文档目录,包括 swagger api 文档、设计文档等deploy部署资源文件internal内部包apiAPI 请求结构体example/example.goapi请求与返回结构router.go路由定义
controller控制器目录,API请求会调用控制器,做一些数据处理校验逻辑model数据模型entity数据库实体模型,推荐使用充血模型xxx.go一些数据模型的定义
pkg项目内通用的模块code错误码定义utils工具包
repository数据库操作service服务接口task任务模块crontab定时任务queue消息队列handler消息队列处理器message消息定义xxx.go消息队列定义
task.go任务定义
migrations数据库迁移文件pkg公共的模块,可以被其它项目引用.golangci.ymlgolangci-lint 配置文件Makefile项目的 Makefile 文件
- GoFrame
- GoMicro