改进请求 Context 上下文处理,每次 Context 的变更将会影响底层的 http.Request 对象。以支持自定义 HTTP Handler 的数据交互场景。
大家好啊,GoFrame框架今天发布了v2.5.0正式版本啦!👏👏👏👏
本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了gf gen ctrl命令,以规范化定义、开发 API 接口,增加控制器、SDK 的代码生成提高开发效率,以解决Golang工程开发中接口层面的规范和效率问题,详情请参考:接口规范 - gen ctrl[1]。其他变更内容请参考以下change log。Enjoy!🍺🍺🍺🍺🍺🍺🍺🍺
Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.5.0[2]
完整代码变更:v2.4.0...v2.5.0[3],感谢本次所有的贡献开发者:
功能改进
- 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配置,用于自定义日志输出的时间格式:日志组件 - 配置管理[4]
- 改进Rotation实现,支持短运行程序的日志文件切分。
- gtag
- 新增GetGlobalEnums方法,用于获取全局注册的枚举类型。
- gutil
- 新增DumpJson方法,用于将任意类型变量按照JSON格式化打印到终端,便于人工阅读。
- gvalid
- 新增enums校验规则,用于实现枚举类型的自动识别和校验:数据校验 - 校验规则[5]
社区组件
- 修复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[6]
- 改进gf gen dao命令,新增TypeMapping特性,开发者可自定义数据表字段类型与生成的Go实体数据结构属性类型映射,并且可以方便引入第三方包类型(如decimal包以支持高精度类型):数据规范 - gen dao[7]
- 改进gf gen enums命令,其中的Prefix参数改为Prefixes,以支持多个生成枚举类型的包前缀指定:枚举维护 - gen enums[8]
- 改进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
相关资料
[1]接口规范 - gen ctrl:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D93880327
[2]https://github.com/gogf/gf/releases/tag/v2.5.0:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fgogf%2Fgf%2Freleases%2Ftag%2Fv2.5.0
[3]v2.4.0...v2.5.0:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fgogf%2Fgf%2Fcompare%2Fv2.4.0...v2.5.0
[4]日志组件 - 配置管理:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D1114388
[5]数据校验 - 校验规则:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D1114367
[6]接口规范 - gen ctrl:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D93880327
[7]数据规范 - gen dao:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D3673173
[8]枚举维护 - gen enums:https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D86187843本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。
转载本文请联系「 程序员升级打怪之旅」公众号。
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经