GoFrame v2.5 版本发布,企业级 Golang 开发框架
大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦!
本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了 gf gen ctrl 命令,以规范化定义、开发 API 接口,增加控制器、SDK 的代码生成提高开发效率,以解决 Golang 工程开发中接口层面的规范和效率问题,详情请参考:接口规范 - gen ctrl。其他变更内容请参考以下 change log。Enjoy!
Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.5.0
完整代码变更: v2.4.0...v2.5.0,感谢本次所有的贡献开发者:
功能改进
gdb- 改进
ORM SQL日志记录,操作的字段按照数据表字段定义顺序进行操作。 - 改进
HOOK方法实现,支持修改in参数的Table字段后修改执行的表名。 - 新增
AllAndCount/ScanAndCount方法,用于实现便捷的分页查询场景。 - 新增
Model.WhereOrNot/WhereOrPrefixNot条件方法。
- 改进
gi18n- 改进支持中文(
Unicode)作为转译的键名。
- 改进支持中文(
gclient- 新增
Discovery链式操作方法,用于设置本次请求的服务发现组件。
- 新增
ghttp- 改进请求
Context上下文处理,每次Context的变更将会影响底层的http.Request对象。以支持自定义HTTP Handler的数据交互场景。 - 新增
Endpoints配置项支持,用于自定义Server的服务注册发现地址,而可以使用当前监听的地址。
- 改进请求
goai- 改进参数校验识别,如果参数为必须参数,则在
OpenAPIv3结果中进行标记。
- 改进参数校验识别,如果参数为必须参数,则在
gsel- 修复
RoundRobin实现中Endpoints更新的锁机制问题。
- 修复
glog- 新增
TimeFormat配置,用于自定义日志输出的时间格式:日志组件 - 配置管理 - 改进
Rotation实现,支持短运行程序的日志文件切分。
- 新增
gtag- 新增
GetGlobalEnums方法,用于获取全局注册的枚举类型。
- 新增
gutil- 新增
DumpJson方法,用于将任意类型变量按照JSON格式化打印到终端,便于人工阅读。
- 新增
gvalid- 新增
enums校验规则,用于实现枚举类型的自动识别和校验:数据校验 - 校验规则
- 新增
社区组件
- 修复
contrib/registry/polaris组件在多个服务端时的负载均衡问题。 - 改进
contrib/drivers/pgsql在TableFields返回的Index字段序号统一从0开始。 - 改进
contrib/nosql/redis新增用户配置项支持。 - 改进
contrib/rpc/grpcx组件,grpcx.Server新增Endpoints配置项支持,用于自定义服务注册发现的地址。 - 新增
contrib/sdk/httpclient组件,用于本次版本新增的gf gen ctrl命令生成的HTTP SDK代码文件依赖库。 - 新增
contrib/trace/otlpgrpc及contrib/trace/otlphttp组件,用以实现基于OpenTelemetry的链路跟踪统一对接组件。
开发工具
新增
gf gen ctrl命令,用于编译api定义目录,自动生成规范的controller、HTTP SDK代码:接口规范 - gen ctrl改进
gf gen dao命令,新增TypeMapping特性,开发者可自定义数据表字段类型与生成的Go实体数据结构属性类型映射,并且可以方便引入第三方包类型(如decimal包以支持高精度类型):数据规范 - gen dao改进
gf gen enums命令,其中的Prefix参数改为Prefixes,以支持多个生成枚举类型的包前缀指定:枚举维护 - gen enums改进
gf gen service命令:- 生成的
service文件中,增加方法注释生成。 - 当生成的
service文件中存在import冲突时,自动生成import alias。
- 生成的
改进命令行封装,暴露
gfcmd.Command类型,便于开发者可以继承扩展自定义命令行功能。改进
gf docker命令,将构建文件参数设置为非必须(考虑兼容),未来将会只用于Docker构建,不再耦合二进制构建功能。如果有完整构建需求,建议未来结合gf build功能共同使用。并更新项目工程模板的make image命令,使用gf build+gf docker命令实现。改进
gf init命令,修复在部分场景下初始化项目覆盖已存在的.git/.gitignore目录及文件问题或权限报错问题。改进
gf up命令,修复在部分场景下的框架版本更新问题,以及在windows系统下的下载安装问题。改进
gf version命令,修复在部分场景下的框架版本识别问题。修复
gf gen pbentity命令,生成的proto文件实体数据结构的float32/float64/[]byte类型修改为float/double/bytes类型。改进开发工具,部分命令可以不用显示配置
importPrefix参数,如:gf gen dao/service
视频教程
欢迎大家三连支持:
GoFrame电商实战教程
GoFrame v2.5 版本发布,企业级 Golang 开发框架的更多相关文章
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布
(新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
历时数月,RDIFramework.NET V2.7 版本发布了,感谢大家的支持. RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系 ...
- go-wingui 2018 全新 v2.0 版本发布,包含重大更新!
go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布
RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V2.9 版本震撼发布 全新体验.全新感觉.2015钜献! 继上个版本“RDIFramework.NET V2.8版本发布”5 ...
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增企业通(内部简易聊天工具)
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增企业通(内部简易聊天工具) RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-WinForm部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增岗位管理-WinForm部分 岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改. ...
- JEECG 3.7.2版本发布,企业级JAVA快速开发平台
JEECG 3.7.2版本发布 - 微云快速开发平台 JEECG是一款基于代码生成器的J2EE快速开发平台,开源界"小普元"超越传统商业企业级开发平台.引领新的开发模式(Onli ...
- JEECG 3.7.1 版本发布,企业级JAVA快速开发平台
JEECG 3.7.1 版本发布,企业级JAVA快速开发平台 ---------------------------------------- Version: Jeecg_3.7.1项 目: ...
- JEECG 3.7.3 新春版本发布,企业级JAVA快速开发平台
JEECG 3.7.3新春版本发布 - 微云快速开发平台 导读 ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...
随机推荐
- 在Vue中使用键盘事件,回调函数被执行两次
暂时先不考虑v-for的key,查看下面的代码 <template> <div> <form @submit.prevent="addTask"> ...
- 常见API使用
String类 字符串相关的类 Java程序中的所有字符串文字(例如"abc")都实现为此类的实例 字符串是不变的 他们的值在创建后无法更改 int length() 返回字符串对 ...
- 【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案
一. 问题描述 使用华为推送服务下发IM消息时,下发消息请求成功且code码为80000000,但是手机总是收不到消息: 在华为推送自助分析(Beta)平台查看发现,消息发送触发了频控. 二. 问题原 ...
- 阿里云 AIGC 白嫖 FC 搭建 stable diffusion
下午瞎逛在 V 站看到阿里在做推广,正好这几天在研究 stable-diffusion,就进去看了看,活动地址: https://developer.aliyun.com/topic/aigc . 主 ...
- P1980 [NOIP2013 普及组] 计数问题
题目链接:https://www.luogu.com.cn/problem/P1980 术语 以下的英文术语均可以翻译为数字. digit: 一个数字字符,十进制就是 0-9 之间的一个字符: num ...
- C#处理医学影像(四):基于Stitcher算法拼接人体全景脊柱骨骼影像
在拍摄脊柱或胸片时,经常会遇到因设备高度不够需要分段拍摄的情况, 对于影像科诊断查阅影像时希望将分段影像合并成一张影像,有助于更直观的观察病灶, 以下图为例的两个分段影像: 我们使用Ope ...
- Oracle 定时任务job实际应用
目录 一.Oracle定时任务简介 二.dbms_job涉及到的知识点 三.初始化相关参数job_queue_processes 四.实际创建一个定时任务(一分钟执行一次),实现定时一分钟往表中插入数 ...
- 音视频八股文(4)--ffmpeg常见命令(3)
17 FFmpeg滤镜 17.1 filter的分类 按照处理数据的类型,通常多媒体的filter分为: ● 音频filter ● 视频filter ● 字幕filter 另一种按照处于编解码器的位置 ...
- 2021-07-05:股票问题2。给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖
2021-07-05:股票问题2.给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖 ...
- SQL Server 2014 英文版安装教程
安装过程如下 1. 点击setup开始安装. 2. 选择如下的全新安装. 3. 自动生成产品密钥,然后点击下一步. 4. 勾选接受条款,然后点击下一步. 5. 自动更新根据实际情况进行选择,点击下一步 ...