初始化本地redis mongo环境
docker-compose up -d redis mongo
docker exec -it pg-redis redis-cli -p 16379 -a "1234567890" HMSET "c7cec5" "openid" "aROD9s357bclJK9eLwXrGfMsuvZm"
写入hosts文件,如果是win
环境请手动写入
echo 127.0.0.1 pg-redis >> /etc/hosts
echo 127.0.0.1 pg-mongo >> /etc/hosts
运行项目,可以用任何ide
运行,使用的go mod
的模式,本地下载包
cd api
go mod tidy
接口使用了jwt验证,直接调用会401报错,可以在redis里先插入一条记录,然后就可以直接用文档里的接口了,如果过期了,那么调用下login接口再生成一个
HMSET "c7cec5" "openid" "aROD9s357bclJK9eLwXrGfMsuvZm"
- goctl环境准备
- 数据库设计
- 新建工程
- 创建服务目录
- 创建服务类型(api/rpc/rmq/job/script)
- 编写api~~、proto文件~~
- 代码生成
- 生成数据库访问层代码model
- 配置config,yaml变更
- 资源依赖填充(ServiceContext)
- 添加中间件
- 业务代码填充
- 错误处理
https://github.com/zeromicro/go-zero-template
├── LICENSE 证书
├── README.md 自述
├── api api文档
│ ├── Dockerfile api构建dock
│ ├── api.api go-zero的api主文件
│ ├── build.sh 构建容器命令
│ ├── etc 配置文件所在目录
│ ├── global 全局变量
│ ├── go.mod
│ ├── go.sum
│ ├── goctl-apis go-zero的api子文件
│ ├── initialize 初始化引用组件
│ ├── internal 内部代码
│ │ ├── config 配置文件构建代码
│ │ ├── handler api的controller层
│ │ ├── logic 逻辑代码
│ │ ├── svc 请忽略
│ │ └── types api所使用的model,如果有更新请同步修改,建议删除后再生成一次
│ ├── logs 日志
│ ├── model mongo的model文件
│ ├── pg-backend.go 主文件
│ ├── run.sh 运行docker的脚本
│ └── utils 工具类
├── dev.md 开发自述
├── env_ready.sh 环境配置脚本
└── mongo model的数据库脚本
mongo的json文件放在 mongo 目录下
- 首先使用json2struct工具,把单个json转换为struct
- 增加到 api/model/types.go 里面,并修改增加
bson
的命名 - 在 types.go 文件头部更新
//go:generate goctl model mongo -t Comments -t xxx
- 执行脚本生成model
参考:mongo生成model
这里的内容请非内部开发者忽略
含有密码文件放到 etc/.pg-backend.yaml
文件中了,并加了忽略提交,正式上线时,将会切换为环境变量的形式。
在issue中会经常发布任务,欢迎尝试挑战
再次感谢您的贡献,一起学习共建开源项目
开发文档参考 go-zero项目开发