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
项目的入口configs
config.yaml
配置文件...
其他配置文件,也可以写配置读取方法,其它包调用:configs.GetConfig().XXX
docs
文档目录,包括 swagger api 文档、设计文档等deploy
部署资源文件internal
内部包api
API 请求结构体example/example.go
api请求与返回结构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.yml
golangci-lint 配置文件Makefile
项目的 Makefile 文件
- GoFrame
- GoMicro