在仅考虑 HTTP API 开发的前提下,大家有什么推荐的 Golang Web 框架或脚手架吗?
如果不使用框架/脚手架自己组合的话,常用组件大家是如何选型的呢?
![]() | 1 gouguoyin 320 天前 ![]() |
![]() | 2 javalaw2010 320 天前 ![]() 没一个好用的,就算做好了心理建设接受了有些残疾的脚手架,后面还得去接受残疾的 ORM ,我觉得人生苦短,不应该在这上面浪费时间,最后还是决定不用 golang 作为业务层了,只用来做一部分非常边缘且简单的服务。 |
3 Hellert 320 天前 ![]() echo |
![]() | 4 fgwmlhdkkkw 320 天前 ![]() 额,我正在搞一个,刚开始。 - 不写 tag 的 binding 和校验 - 自动的路由注册和导入(一点点代码生成,且不需要额外的命令) - 自动的 api 文档生成 |
![]() | 5 fgwmlhdkkkw 320 天前 @fgwmlhdkkkw sql 层面确实很难抽象,我还在想怎么做。 |
6 wudiiiii 320 天前 @fgwmlhdkkkw 我不用 orm ,只用 db/sql |
7 windcode 320 天前 ![]() |
8 Ayanokouji 320 天前 ![]() |
![]() | 9 gowk 320 天前 ![]() 用 Go 做业务开发/后端 API ,唯一的劣势就是没有一个统一的标准,没有好用的脚手架 Java 有 Spring Boot ,.NET 有 ASP.NET/Entity Framework ,Python 有 Django Go 现在也进入主流开发视野了,但这方面还是挺残废的,写业务没有其他语言好用 |
![]() | 10 snxq1995 320 天前 ![]() kratos 习惯了依赖注入后就挺不错的。还有就是未开源的 tRPC 生态非常好用。 |
![]() | 11 aleimu 320 天前 ![]() kratos 和 go-zero 都支持了脚手架创建 http 和 grpc 的代码,但是太抽象了,定位问题和接口时要跳转很多次才能看到重点....我现在还是再用 gin+wire |
12 qq135449773 320 天前 在 go 里写 DI ,理由是什么... |
13 fffq 320 天前 go 里面加 Wire 太恶心了。。。 |
14 codersdp1 320 天前 蹲一个答案,主要是 orm 这块 |
![]() | 15 mightybruce 320 天前 ![]() 中小型公司没必要用什么 DI, 另外 DI 这种东西说实话就是为了控制人的,好让你们成为像 Java 那样的 curd boy , DI 的确也有好处,项目模块化更明显,剥离出业务逻辑,使得分工更明确。 不过我想说这种脚手架真的没必要学,因为你到一个自研实力还不错的公司,这种东西都会有核心成员研发的,然后让其他人成为工具人,哈哈。 几个 web 框架比如 gin, echo, beego 要会点,其他的都可以自己造的。 |
16 xsen 320 天前 ![]() go-zero 重度用户 楼上 n 多人还在纠结 orm ,真的大可不必gpt 类出来就是节省这些方面的时间的 可以自动生成 http/grpc 框架代码,若喜欢一样可以生成 model 代码。这就够了 |
![]() | 17 rust 320 天前 ![]() GoFiber + Ent 吧 |
![]() | 18 me1onsoda 320 天前 @mightybruce DI 是什么? dependency injection ? |
19 uds9u32br 320 天前 ![]() 如果是很大型的项目确实有点头疼,一般的 web 应用搞个 httprouter 都行,又不是非要什么 spring 一样的东西 |
![]() | 20 ginakira OP @fgwmlhdkkkw 不写 tag 的 binding 和校验听起来很有趣,请问是通过什么方式做呢 |
![]() | 21 mightybruce 320 天前 @me1onsoda 是的, 这方面 go 有好几个, 一些业务团队会把 DI 用到各个 web 框架上并组成自己的脚手架, 常见的 DI 有 google/wire(代码生成), uber-go/dig (反射) |
22 GopherDaily 320 天前 紫薇,答应我,不要为两抽象而抽象,好吗? |
23 i4color 320 天前 ![]() gin+xorm |
24 sofukwird 320 天前 via Android ![]() |
25 chen11 320 天前 难受,java 转的 go 。感觉 go 是一个项目一个规范 |
![]() | 26 johng 320 天前 ![]() |
![]() | ![]() gozero 开发中用的比较多 字节的 hertz 和 Kitex 文档看着还可以,用了一下感觉也能用 |
![]() | 28 bv 320 天前 ![]() |
![]() | 29 ZxykM 320 天前 ![]() 只自己用的话,pocketbase 是个不错的项目,我现在正在用 |
![]() | 30 tbxark 320 天前 ![]() 自己撸了一个 https://github.com/TBXark/sphere, 基于 proto 定义,生产 go 代码和 api 文档,没事就往里面加点东西。 |
![]() | 31 wen20 320 天前 ![]() gin+gorm |
32 FrankAdler 320 天前 ![]() echo+entgo |
33 Breacher 319 天前 via iPhone ![]() ORM 只用 SQLBoiler, 最大的特色是 db schema first 和 100% type safe. 公司里从弱类型语言转 Go 的同事喜欢用 gorm |
![]() | 34 fgwmlhdkkkw 319 天前 ![]() @ginakira 指针偏移…… |
![]() | 35 qloog 319 天前 ![]() 框架: https://github.com/go-eagle/eagle 支持 http 和 gRPC, 关键是有脚手架,各种代码不用自己 copy 后再去修改了 数据库:gorm 使用 gorm/gen 可以链接 db 生成 model 和基础的操作方法,避免 SQL 注入,关键是可以通过自定义 sql 生成代码,比如复杂的 多条件 sql 查询 |
36 layxy 319 天前 ![]() gofiber+ent |
![]() | 37 Dogtler 319 天前 ![]() |
38 jarvanluo 319 天前 @javalaw2010 #2 想问一下,那业务层目前你是用哪个呢 |
![]() | 39 IIInsomnia 319 天前 ![]() |
40 gvison 319 天前 ![]() |
![]() | 41 feikeq 313 天前 iris 就不错呀。 |
![]() | 42 pike0002 300 天前 gin + gorm |
43 kingcanfish 289 天前 |