基于Gin进行模块化设计的API框架,致力于进行快速的业务研发
一、开源项目简介
基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、graphql 查询语言、errno 统一定义错误码、gRPC 的使用 等等。二、开源协议
使用MIT开源协议三、界面展示安装界面
首次启动程序之后,会在浏览器中自动打开安装界面,链接地址:http://127.0.0.1:9999/install。
因为程序会使用到 Redis 和 MySQL,所以安装前请输入 Redis、MySQL 配置信息。
点击初始化按钮,会将用到的数据表和默认数据进行初始化,在右侧可以看到初始化的日志信息。
如上,初始化成功后,初始化的表结构 UML 图如下:
重新启动程序,会在浏览器中自动打开登录界面,链接地址:http://127.0.0.1:9999/login 。
登录界面
输入默认账号 admin,密码 admin 即可登录成功。
仪表盘界面
显示 项目信息、内存信息、硬盘信息、CPU信息 等。
配置信息 -> 告警邮箱
在这里可以配置系统告警的发件人和收件人,当系统发生 Panic 时,进行邮件通知,邮件模板如下:
配置信息 -> 错误码
展示系统中定义的错误码。
代码生成器 -> 生成数据表 CURD
在左侧可以单选或多选数据表,进行代码生成。
代码生成器 -> 生成控制器方法
在左侧可以设置需要生成的 handler 名称。
授权调用方 -> 调用方
设置谁可以调用我的接口,同时还可以授权调用我哪些接口。
授权调用方 -> 使用说明
后台任务 -> 任务列表
系统管理员 -> 管理员
设置谁可以登录后台,可以对其进行 禁用、重置密码、菜单授权、下线、删除 等操作。
系统管理员 -> 菜单管理
设置后台侧边栏的菜单。
查询小助手 -> 查询缓存
查询 Redis 缓存内容 和 有效期,同时还可以清空缓存。
查询小助手 -> 查询数据
查询 MySQL 数据,支持输入 SQL 语句执行和分析。
实用工具箱 -> 服务升级
不同版本提供相应的升级指导。
实用工具箱 -> Hashids
程序中对传递 id 的场景,均使用密文进行传递。
实用工具箱 -> 调用日志
展示最新的 100 条调用日志。
实用工具箱 -> 接口文档
实用工具箱 -> GraphQL
查询操作query { bySex(sex: "男") { id name sex mobile } }更新操作mutation { updateUserMobile(data: {id: "1", mobile: "13299999999"}) { id name sex mobile } }
实用工具箱 -> 接口指标
根据指标可以在 Grafana 生成类似的指标图。
实用工具箱 -> WebSocket
四、功能概述
go-gin-api 是基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发,同时增加了更多限制,约束项目组开发成员,规避混乱无序及自由随意的编码。
供参考学习,线上使用请谨慎!
集成组件:支持 rate 接口限流支持 panic 异常时邮件通知支持 cors 接口跨域支持 Prometheus 指标记录支持 Swagger 接口文档生成支持 GraphQL 查询语言支持 trace 项目内部链路追踪支持 pprof 性能剖析支持 errno 统一定义错误码支持 zap 日志收集支持 viper 配置文件解析支持 gorm 数据库组件支持 go-redis 组件支持 RESTful API 返回值规范支持 生成数据表 CURD、控制器方法 等代码生成器支持 cron 定时任务,在后台可界面配置支持 websocket 实时通讯,在后台有界面演示支持 web 界面,使用的 Light Year Admin 模板五、技术选型快速开始环境准备golang 1.16+ 因为使用了 //go:embed 特性;MySQL 连接地址,例如:127.0.0.1:3306;数据库名,例如:go_gin_api,会在此数据库下初始化数据表;用户名,不可为空;密码,不可为空;Redis 连接地址,例如:127.0.0.1:6379;密码,可为空;
连接DB,默认是 0 ;下载运行$ cd go-gin-api $ go run main.go -env fat // -env 表示设置哪个环境,主要是区分使用哪个配置文件,默认为 fat // -env dev 表示为本地开发环境,使用的配置信息为:configs/dev_configs.toml // -env fat 表示为测试环境,使用的配置信息为:configs/fat_configs.toml // -env uat 表示为预上线环境,使用的配置信息为:configs/uat_configs.toml // -env pro 表示为正式环境,使用的配置信息为:configs/pro_configs.toml目录结构. assets ## 静态资源 bootstrap templates cmd ## 可独立执行程序 ... configs ## 配置文件 deploy ## 部署相关配置 loki prometheus docs internal ## 业务目录 api ## api 接口 code ## 错误码定义 graph ## graph 接口 pkg ## 内部使用的 package proposal ## 提案 render ## 渲染 HTML repository ## 资源 router ## 路由 services ## 服务 websocket ## websocket 接口 logs ## 日志目录 pkg ## 可供外部使用的 package ... scripts ## 脚本程序六、源码地址
私信回复:模块化API框架
或访问一飞开源:https://code.exmay.com/
快一年又六个月了,华为Mate50,终于要来华为Mate50,终于要来了。机哥算了算时间,距离上一次华为发布Mate系列正代,已经要追溯到2020年的10月22号。快一年又六个月了。虽然华为最近几个月,也陆陆续续发布了Mat
你在用什么品牌手机,有四年以上没更换手机的吗?华为麦特10,四年半。我用的是华为v9,现在已经使用整5年了。现在用的是苹果。上一个手机是14年左右买的华为5C,现在还能用,并且也没有修过,就是用到现在很卡,只能下载一个较小内存
算法时代终结,字节另起炉灶在一潭死水的互联网市场中,疯狂的字节跳动又丢下一颗小石子,企图再次复制今日头条的奇迹。字节跳动推出新版今日头条没错,字节跳动又出新产品了!目前这把火还只是在小圈子内部燃烧,没烧到大
锂电概念重挫,天齐锂业领跌今天不仅仅只有天齐锂业暴跌,整个新能源汽车产业链都笼罩着不安的情绪。不好的消息纷沓而至。先从下游讲起,4月9日,蔚来已宣布其整车生产已经暂停。4月10日,蔚来再度宣布,部分车型起售
互联网大厂毕业时代从实习生到资深员工,无一幸免毕业快乐,恭喜您顺利毕业,感谢一路相伴。继优化之后,毕业成为互联网大厂又一黑话。2017年进入京东的欢欢,也在京东这轮裁员的名单上,HR说你可以异动,只要能找到接收你的部门,但实际
马云不高兴,霉霉好伤心这出其实是阿里的复仇行动,去年他们花重金请霉霉来唱歌,想借她的名声提高一下双十一的国际影响力,结果她啥也不让发,请了个寂寞。于是马云筹谋一年,终于想到了一个办法能够彻底摧毁她和她粉
为什么安卓国产App得体积越来越大国产APP体积越来越大的原因比大家想象中要复杂很多为什么呢?杭州蒙特APP开发曾表明说,是因为我们每次手快都点开后看了一秒钟就以为已经知道了,实际上是我们忽略了自己。一新功能的增加
曝iOS16或于WWDC首日发布,iPhone12让路新机,价格刷新爱疯史近日,苹果正式发布了iOS15。4版本,期待已久的皮肤解锁功能终于发布了,可以说方便了很多用户的日常使用,不过现在苹果已经关闭了之前的验证通道,iOS版本15。4。值得一提的是,由
Oracle学习笔记1。partitionby在保留全部数据的基础上,只对其中某些字段做分组排序,如select,ROWNUMBER()over(partitionbyNameorderbyScore
黄光裕这么努力国美为何还巨亏?收购支付牌照槽点满满成绩拿的出手吗?作者鸢钟肇瑞预付5个多亿,进军互联网支付。耗时多年,却收到央行通知审批暂停,交易至今未完成,预付款可能只收回4个多亿。这笔亏钱买卖,不是发生在别人身上,恰恰是黄光裕
股价下跌惹众怒Meta(FB。US)股东计划推动对扎克伯格的权力审查智通财经APP获悉,由于Meta平台(FB。US)的股价今年下跌超过34,部分股东表示,他们计划推动对CEO马克扎克伯格的权力审查。为了争取支持,一个名为SumOfUs的企业问责组