Golang Go语言中 目前最好的 Web 框架和 ORM 库是?

Golang Go语言中 目前最好的 Web 框架和 ORM 库是?


Gin 和 Echo 哪个更好?


89 回复

gin 除了不支持路由命名以外暂时找不到其他缺点了
除了 gorm 还有其他更好的选择?

更多关于Golang Go语言中 目前最好的 Web 框架和 ORM 库是?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


更喜欢 Echo, better API.

歪楼求问,就框架而言 iris 怎么样啊

哪有最好,我用的 iris,功能全面,速度不输 gin

然后是 xorm

借地推销一下我写的 sqlingo
https://github.com/lqs/sqlingo

XORM 貌似不支持 Associations 啊。

用 gin 的飘过~ 暂时没有#1 说的那些需求,所以没感觉到明显的缺点
同也是用的 gorm

gin + sqlx

Iris 的模型绑定功能不如 gin 的方便。

试试 facebooke 开源的 ORM 框架 ent: https://github.com/facebookincubator/ent

感谢,之前一直不知道这个。

gorm 不支持批量插入,好难受。。。

gin,路由用 gorilla/mux
gorm

Iris 弄跨域太麻烦了

批量插入有解决方案的

你们都用 gin 写什么呀

老哥,gin 有没有可分享的项目源码 参考一下

没有,都是公司项目

有个印尼人写的 rel 库看着还不错!

go-chi/chi + jmoiron/sqlx

主流都是 gin + gorm

补充一个,如果不考虑性能,我会选择 martini

不喜欢 ORM,轻量级的 sqlx 足矣。
或者 sqlx 的轻量级封装: https://github.com/ilibs/gosql
目前感觉良好

呵呵,一看你就经常逛 reddit:/r/golang

开始用的 gin,后来自己参考了一堆,自己搭了一个,主要是自己扩展起来方便,orm 就用了 gorm




gin 写的博客! 也就是简单的 curd!
gin 封装的包,供上面的博客所用!

博客地址: https://www.iphpt.com/
代码是开源!

orm 用的 xorm!

我个人用过 xorm 和 gorm 还有 beego 自带的 orm

orm,相比 gorm 这类 code-first 的方案,更喜欢 sqlboiler 这种 database-first code-generation 方案

gorm 还行,虽然有时候有奇奇怪怪的预定义值

gin 有路由冲突还有上下文是个结构,不能扩充更多功能,echo 就没这些问题,不过开发不太活跃

这个 https://upper.io/db.v3/ 非常好用!

写很复杂条件的 sql,我还是喜欢类 mybatis 这种,目前找到的就 xormplus

gin+gorm 吧

https://tech.crandom.com/post/2017/echo-error/

这是我早年从 gin 转到 echo 的原因,就因为 echo 多了个这。
不知道现在 gin 的错误处理有没有更灵活。

gorm 现在比以前也好很多了。前几天试了一下,slice of struct 类型的列表数据,preload 时它会自动用 in 关键字,只会出来俩 sql,早年的时候有 n 行就有 n+1 个 sql,导致很好的 preload 功能在返回列表时没发用。现在很方便的。 就是写 join 还是不那么方便。

gin+gorm

echo+gorm

正所谓框架肯定要是框架不能是库,当然推荐GoFrame https://goframe.org/

GF(Go Frame)是一款模块化、高性能、生产级的 Go 基础开发框架。实现了比较完善的基础设施建设,包括常用的核心开发组件, 如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、资源管理、数据校验、数据编码、文件监控、 定时任务、数据库 ORM、TCP/UDP 组件、进程管理 /通信、并发安全容器等等。 并提供了 Web 服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、服务注册、配置管理、模板引擎等等, 支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite 等特性。

GF实现了非常强大的ORM https://goframe.org/database/gdb/index

目前正在用 goframe

看到没人推荐 beego 我就放心了。主流还是 gin+gorm。但是 gin 不像一个真正的 web 框架,小项目用起来挺爽,大项目用起来就感觉缺点什么,作者本身在 issue 里也回应那些要更多更上层 feature 的人说这只是一个微框架而已。gorm 也一样,半年前用的时候对批量操作的支持真的稀烂。所以如果是初入 go 建议这两个都先用用,同时看看一些其他的 framework,然后就会意识到 go 的生态就这样。

gin+手写 sql

Kratos 有用过的吗?

45# beego 咋了。。只写了一个 golang 项目,用的 beego,感觉还行啊。

gin + sqlx

哇塞! 感谢 学一下去!

web 框架: gin, echo
orm: xorm, grom
个人常用 gin xorm

https://github.com/t-tiger/gorm-bulk-insert 可以用这个库配合 gorm 批量插入哦

gin + sqlx

语言 or 框架之争 这么多年不都是这样地么… 就跟武侠里面的门派一样, 都说天下第一

自己构建一个语句不就得了

gin + gorm

估计要么你还在用老一套的方式管理 golang 的依赖,要么你就没有使用那个注解路由的特性。beego 注解路由在 go mod 是没办法用的,我有修提 pull request,但是很久都没有回复(我猜测是 issue 区国人灌水严重,而且没有稳定的维护团队)。beego 应该已经不怎么活跃了,上次 commit 还是 11 月,所以不怎么推荐了。

真的停止维护了吗, 看来要转 gin 了

应该没有,哪一个 PR 我给他们开发说一下




确实好用

gin gorm, xorm 只从不在 github 更新后我就放弃了

beego 其实也挺方便的

开始学 go 用一下可以,后面就算了,gin 或者自己用原生都可以,最早我也用过,后来有次有个 bug,提了一直没人回,修没修不清楚了,上次看了下,这个 issue 现在也是没人回,都过了几年了。

我感觉路由命名是很常用的啊,你的应用没有要输出或者跳转内部链接的地方吗?比如没有登录就跳转到 /login

gin + gorm

去 golang 的官方看看把 https://go.dev/solutions/webdev/

讲道理 gin 不能称为框架吧

那是什么?

个人习惯 gin,ORM/ODM 的话要看是否有多数据库兼容需求。

gin + xorm

beego 太重了,又重又罗嗦 beego 可能类似于 ThinkPHP 那种

Go 变成新时代的 PHP 了吗,天天争这些有的没的

RESTful - echo

ORM - gorm or xorm

echo + 1

echo 文档稍好
gorm 比较起来稍好一点

reddit 上几乎只要一提到 iris,立马就会有一场腥风血雨

吃瓜链接[A warning about github.com/kataras/iris]( https://www.reddit.com/r/golang/comments/b481q7/a_warning_about_githubcomkatarasiris/)

有人整理的前因后果[ Why you should not use iris for your Go projects ]( http://www.florinpatan.ro/2016/10/why-you-should-not-use-iris-for-your-go.html)

iris + gorm

题外话, 各位有好用的类似 swagger 的 go api 文档生成轮子推荐的吗?

感觉 gorm 和 xorm 都不能算是真正的 ORM

beego bee 工具都不支持 mod,去年就有人提了,但是就是没改动,感觉确实都没啥人维护了

go orm 当然选择 gorose 了, 谁用谁知道

#2 是不是说 Echo 比 gin 更好些 restful api?

不是,是说框架的接口设计得更好,比如集中式的错误处理,用 next 函数显式控制下个中间件的执行,validator 客制化等。

在Golang(Go语言)生态系统中,关于最好的Web框架和ORM库的选择,虽然存在一定主观性,但根据社区的广泛认可度和使用经验,可以给出以下推荐:

Web框架:

  • Gin:以其高性能和丰富的功能著称,API设计简洁明了,容易上手,支持中间件和JSON解析,适合快速构建高效的Web应用。
  • Echo:另一个高性能的Web框架,拥有简洁的API和强大的路由功能,内置支持多种模版引擎,适用于需要高吞吐量的应用。
  • Beego:一个全功能的Web框架,提供了ORM、缓存、日志等功能,支持自动化的路由和控制器生成,适合构建复杂的Web应用程序。

ORM库:

  • Gorm:Go语言中最流行的ORM库,功能全面且易于使用,支持多种数据库(如MySQL、PostgreSQL、SQLite等),提供了自动迁移、日志记录、事务支持等特性,极大提升了开发效率。

综上所述,对于Web框架,Gin、Echo和Beego都是不错的选择,具体选择哪个取决于项目的需求和开发者的偏好。而对于ORM库,Gorm无疑是Go语言中的佼佼者,值得推荐使用。

回到顶部