README.md 2.6 KB

go 微服务开发脚手架

git 提交规则

参考 https://loveky.github.io/2018/06/04/write-good-commit-message/

使用 作为前缀

  • build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
  • ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
  • docs:文档更新
  • feat:新增功能
  • fix:bug 修复
  • perf:性能优化
  • refactor:重构代码(既没有新增功能,也没有修复 bug)
  • style:不影响程序逻辑的代码修改(修改空白字符,补全缺失的分号等)
  • test:新增测试用例或是更新现有测试
  • revert:回滚某个更早之前的提交
  • chore:不属于以上类型的其他类型

目录结构

client -- 和其他微服务交互的client
conf -- 存放配置文件 config.yaml 等
config -- 加载配置文件
docs -- 生成文档
handler -- 路由Handler
model -- model 的 curd
router -- 存放路由和中间件
        |
        --- middleware 中间件
service -- service 相关        
util -- util包
db -- 数据库包
logger -- 打印日志

DOCKERFILE 生成Docker镜像
.drone.yml 基于docker持续交付

START

  1. 使用 GIN 作为开发框架,使用 go mod 管理依赖

  2. 网络请求使用 振锋封装的 go-fetch github.com/zzfup/go-fetch

api doc

对于接口需要编写 api doc,然后需要把项目打上tag,放到对应文档库,可以生成api文档,在 https://api.finogeeks.club 供其他人查看

数据库

脚手架数据库采用 mongodb,

日志

日志还没改,还是俊涛那个

错误码

http status code

200 OK

201 一般用于 post,新建一条记录

202 用于异步请求,给客户端即时响应

204 一般用于 delete,不需要返回给客户端内容

400 参数错误

{ "errcode": "", // 全大写,蛇形命名 FC_TOPIC_FORMAT_ERROR 前缀(FC: finochat SW: 金服宝 ) "error": "", // 具体的报错信息 "service": "swan-manager" // 容器名称(直接取hostname) }

res.status(400).send({}) 401 jwt 无权限,或用户名密码验证失败

403 一般是权限控制时,低权限的无法查看高权限的

404 找不到

409 数据冲突,或者用于新增时出现重复

429 用于限制请求频率

500 服务异常

下游服务相关

https://wiki.finogeeks.club/pages/viewpage.action?pageId=15565151

尽量透传上游错误码 如果没有,参照上述的规则

编写DOCKERFILE

DOCKERFILE 是将当前代码编写成镜像,在docker环境中只需要下镜像就能启动

持续集成

编写 .drone.yml 文件

性能测试

联调

test