GoFr框架v1.0.2版本发布
1 回复
GoFr v1.0.2的发布带来了两个实用的功能增强和一个重要的错误修复,对于使用PubSub和表单绑定的项目来说值得立即升级。
1. SubscribeWithCommit 方法的重构 这个改动解决了之前方法只能消费单条消息的限制,现在可以持续消费流式消息了。这对于构建实时数据处理服务至关重要。
// 示例:消费Google PubSub中的所有消息
func main() {
app := gofr.New()
app.SubscribeWithCommit("subscription-name", func(ctx *gofr.Context) error {
var msg YourMessageStruct
if err := ctx.Bind(&msg); err != nil {
return err
}
// 处理消息逻辑
ctx.Logger.Infof("Processing message: %v", msg)
// 返回nil自动提交消息
return nil
})
app.Run()
}
2. 重复指标初始化代码的移除 这个优化减少了pubsub包中的代码冗余,虽然对用户透明,但有助于降低代码复杂性和维护成本。
3. ctx.Bind 对HTML表单的修复
这个修复特别重要,之前使用HTML表单提交数据时,ctx.Bind可能无法正确解析数据。
// 修复后可以正确处理表单数据
func handler(ctx *gofr.Context) (interface{}, error) {
var data struct {
Name string `form:"name"`
Email string `form:"email"`
}
// 现在可以正确绑定HTML表单数据
if err := ctx.Bind(&data); err != nil {
return nil, err
}
ctx.Logger.Infof("Received form data: Name=%s, Email=%s", data.Name, data.Email)
return "Form processed successfully", nil
}
升级命令:
go get -u gofr.dev@v1.0.2
这次更新虽然看起来是小版本迭代,但SubscribeWithCommit的重构和表单绑定修复都是实际开发中经常遇到的核心功能,建议所有GoFr用户尽快升级。

