一款适合于快速开发业务的 Go 框架,可快速构建 API 服务 或 Web 网站。
English | 中文文档
Pro Tip: 每个目录下基本都有 README
,可以让框架使用起来更轻松 ^_^
框架中用到的设计思想和原则,尽量满足 "高内聚、低耦合",主要遵从下面几个原则
迪米特法则: 不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口
├── Makefile # 项目管理文件
├── api # grpc客户端和Swagger 文档
├── cmd # 脚手架目录
├── config # 配置文件统一存放目录
├── docs # 框架相关文档
├── internal # 业务目录
│ ├── cache # 基于业务封装的cache
│ ├── handler # http 接口
│ ├── middleware # 自定义中间件
│ ├── model # 数据库 model
│ ├── dao # 数据访问层
│ ├── ecode # 业务自定义错误码
│ ├── routers # 业务路由
│ ├── server # http server 和 grpc server
│ └── service # 业务逻辑层
├── logs # 存放日志的目录
├── main.go # 项目入口文件
├── pkg # 公共的 package
├── test # 单元测试依赖的配置文件,主要是供docker使用的一些环境配置文件
└── scripts # 存放用于执行各种构建,安装,分析等操作的脚本
直接Clone项目的方式,文件比较全
TIPS: 需要本地安装MySQL数据库和 Redis
# 下载安装,可以不用是 GOPATH
git clone https://github.com/go-eagle/eagle
# 进入到下载目录
cd eagle
# 编译
make build
# 运行
./scripts/admin.sh start
使用脚手架,仅生成基本目录, 不包含pkg等部分公共模块目录
# 下载
go get github.com/go-eagle/eagle/cmd/eagle
export GO111MODULE=on
# 或者在.bashrc 或 .zshrc中加入
# source .bashrc 或 source .zshrc
# 使用
eagle new eagle-demo
# 或者
eagle new github.com/foo/bar
http://localhost:8080/swagger/index.html
遵循: Uber Go 语言编码规范
上传到服务器后,直接运行命令即可
./scripts/admin.sh start
如果安装了 Docker 可以通过下面命令启动应用:
# 运行
docker-compose up -d
# 验证
http://127.0.0.1/health
编译并生成二进制文件
go build -o bin_eagle
如果应用有多台机器,可以在编译机器进行编译,然后使用rsync同步到对应的业务应用服务器
以下内容可以整理为脚本
export GOROOT=/usr/local/go1.13.8
export GOPATH=/data/build/test/src
export GO111MODULE=on
cd /data/build/test/src/github.com/go-eagle/eagle
/usr/local/go1.13.8/bin/go build -o /data/build/bin/bin_eagle -mod vendor main.go
rsync -av /data/build/bin/ x.x.x.x:/home/go/eagle
supervisorctl restart eagle
这里日志目录设定为 /data/log
如果安装了 Supervisord,可以在配置文件中添加下面内容(默认:/etc/supervisor/supervisord.conf
):
[program:eagle]
# environment=
directory=/home/go/eagle
command=/home/go/eagle/bin_eagle
autostart=true
autorestart=true
user=root
stdout_logfile=/data/log/eagle_std.log
startsecs = 2
startretries = 2
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stderr_logfile=/data/log/eagle_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10
重启 Supervisord
supervisorctl restart eagle
eagle
项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 free JetBrains Open Source license(s) 正版免费授权,在此表达我的谢意。
MIT. See the LICENSE file for details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。