我看到Go本身有一个包net/http,足以提供启动和运行自己的REST API所需的一切.然而,有各种各样的框架;最受欢迎的可能是gorilla.

考虑到我接下来需要做的主要事情之一是构建将访问一些后端存储(数据库、缓存等)的睡觉API.要执行CRUD操作,使用Go的标准库本身好吗,或者我应该考虑使用一些框架?

通常,人们编写一个新的库或框架来解决现有库中存在的问题.但是,当实际需求很简单时,很多框架也往往会使情况变得更糟.

所以我有几个问题:

  1. Go Lang中的基础库是否足以支持睡觉的基本到中等功能?

  2. 如果我最终使用的是内置的库,明天必须将其更改为使用某个框架(如大猩猩),这会有多困难/成本有多高?

  3. 框架是否真的解决了问题,或者只是让简单的问题变得复杂?

我非常感谢有人在这里分享他的 idea (他自己也做出了这个 Select ),同时我也在研究更多我自己的 idea .

推荐答案

内置的net/httpAPI包足以构建一个完整的睡觉应用编程接口.但是,一些库可以使构建API变得稍微简单一些,特别是在睡觉API很复杂的情况下.从内置设施更改为任何像样的框架相对简单-它们通常接受http.Handler类型的处理程序.

不过,最终,这是一个非常有条件的 Select .你能做的最好的事情就是判断每个可用的解决方案,进行对比和比较,如果可能的话,用最好的选项建立概念证明.第一手经验会给你最好的指导.

Go相关问答推荐

Golang Cososdb-gremlin连接

具有GRPC的RBAC(基于角色的访问控制)-网关生成的REST风格的API

理解Golang并发:缓冲通道的意外行为

获取作为类型参数传递给方法接收方中的类型参数的切片的基础类型

使用Go使用Gorm使用外键对数据进行排序

无法使用Segentio;S Kafka-Go连接到融合的Kafka

在运行时更改 Go lang slog 的日志(log)级别

如何使用 html/template 在 golang 中运行一个范围内的范围

Go 中的 YAML 自定义标签

使用 Go Colly 抓取所有可能的标签并将它们放入一个变量中

使用 Go 解组 SOAP 消息

使用 os/exec 和在命令行执行之间的结果莫名其妙地不同

SSH 代理,数据包长度错误

github.com/rs/zerolog 字段的延迟判断

无法在 GORM 中排序

golang jwt.MapClaims 获取用户ID

如何使用golang操作很长的字符串以避免内存不足

如何使用带有Electron 表格 ID、Electron 表格名称、表格 ID 和值的 golang 在 googlesheet 中插入数据

有没有办法在golang中映射一组对象?

Go 泛型是否与 LINQ to Objects 等效?