首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go - vs. net/http中的Rest与像Gorilla这样的库

Go - vs. net/http中的Rest与像Gorilla这样的库
EN

Stack Overflow用户
提问于 2016-07-08 10:25:18
回答 2查看 7.2K关注 0票数 21

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

考虑到我需要做的主要事情之一是构建REST来访问一些后端存储(数据库、缓存等)。要执行CRUD操作,go的标准库本身是好的,还是应该考虑使用一些框架?

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

所以我有几个问题:

  1. go lang中的基本库是否足以支持REST的基本到中等功能?
  2. 如果我最终使用了内置的库,明天必须改变它以使用某种框架(比如大猩猩),那会有多困难/代价呢?
  3. 框架是真的解决问题,还是仅仅使简单的问题变得复杂?

我非常感谢有人在这里分享他的想法(他自己已经做出了这个选择),而我更多地研究我自己的想法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-09 02:12:51

内置的net/http包足以构建完整的REST。但是,一些库可以使构建API稍微容易一些,特别是在REST很复杂的情况下。从内置的工具到任何合适的框架都是相对简单的--它们通常接受http.Handler类型的处理程序。

然而,最终,这是一个极端的情景选择。你能做的最好的事情就是检查每一个可用的解决方案,对比和比较,如果可能的话,用顶级选项建立一个概念的证明。第一手经验将为您提供最好的指导。

票数 8
EN

Stack Overflow用户

发布于 2016-07-09 07:37:01

  1. 对于大多数情况,net/http包可能已经足够了,但是如果您想简化您的开发,您应该使用第三方包,比如Gorilla。例如,net/httpServeMux在路由固定URL路径的传入请求方面做得很好,但是对于使用变量的漂亮路径,您将需要在使用Gorilla时实现一个自定义复用器,您可以免费获得它。 另一个例子是,如果希望使用适当的HTTP方法指定RESTful资源,则很难使用标准http.ServeMux,而对于大猩猩的mux包,可以基于URL主机、路径、路径前缀、方案、标头和查询值以及HTTP方法匹配请求。
  2. 大猩猩最大的好处之一是它与net/http包完全兼容,可以在将来替代。
  3. 见1。

我完全鼓励你使用大猩猩的工具包来开发休息服务。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38264363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档