一、beekit 框架简介
beekit 一套轻量级 Go 服务框架,包含大量微服务相关框架及工具。bee是蜜蜂的意思,kit指工具箱,做一只勤劳的小蜜蜂。
实现了接口基类、参数校验、权限粒度控制、统一日志组件、错误异常处理、RPC、ORM、熔断重试等中间件、角色管理、部门管理、用户菜单管理等基础功能。目标在此框架的基础上快速开发。
目录结构如下:
├─ beekit
│ ├─ adapter //适配器
│ ├── casbin_adapter //访问控制器
│ ├── dialect_dm8 //达梦数据库适配器
│ ├── dialect_kingbase //人大金仓数据库适配器
│ ├─ common //公共方法
│ ├── consul //服务注册
│ ├── log //日志组件
│ ├── global //全局变量
│ ├── permission //数据权限委托处理
│ ├─ controller //业务逻辑处理层
│ ├── SysCasbinRule //访问控制
│ ├── SysConfig //配置管理
│ ├── SysDept //部门管理
│ ├── SysDictData //字典数据
│ ├── SysDicType //字典类型
│ ├── SysLoginLog //登录日志
│ ├── SysMenu //菜单管理
│ ├── SysOperaLog //操作日志
│ ├── SysRole //角色管理
│ ├── SysRoleDept //角色部门关系
│ ├── SysUser //系统用户
│ ├─ entity //数据库实体
│ ├── ...
│ ├─ models //自定义实体
│ ├── ...
│ ├─ middleware //中间件
│ ├── auth //权限认证
│ ├── casbinhandler //粒度控制
│ ├── jwtbearerhandler //接口令牌
│ ├── ...
│ ├── ratelimit //限流器
│ ├── circuitbreaker //断路器
│ ├── tracing //链路追踪
│ ├─ router //路由
│ ├── ...
│ ├─ service //数据访问层
│ ├── ...
│ ├─ utils //工具类
│ ├── search //自动生成where查询条件
│ ├── try //异常捕捉器
│ ├── ...
│ ├─ transport //RPC服务
│ ├── ...
│ ├─ cmd //beekit 自定义命令服务器(后面将专门写一篇幅来介绍)
│ ├── example //代码模板
│ ├── service.tmpl //数据访问层crud代码模板
│ ├── controller.tmpl //业务处理层代码模板
│ ├── goxorm_table.tmpl //数据结构实体类代码模板
│ ├── server.tmpl //RPC服务代码模板,注册访问层代码
│ ├── custom.yml //模板生成规则配置文件
│ ├── pkg //代码生成核心类
│ ├── migrate.go //数据结构迁移命令
│ ├── reverse.go //代码生成命令
│ ├── version.go //版本查询命令
│ ├── root.go //根命令
│ ├─ app.json //配置文件
│ ├─ go.mod
│ ├─ main.go