我看到Go本身有一个包net/http,它足以提供启动和运行自己的REST所需的一切。然而,有各种各样的框架;最流行的可能是gorilla。
考虑到我需要做的主要事情之一是构建REST来访问一些后端存储(数据库、缓存等)。要执行CRUD操作,go的标准库本身是好的,还是应该考虑使用一些框架?
通常,人们会编写一个新的库或框架来解决现有库中存在的问题。但是,当实际需求很简单时,许多框架也会使情况变得更糟。
所以我有几个问题:
我非常感谢有人在这里分享他的想法(他自己已经做出了这个选择),而我更多地研究我自己的想法。
发布于 2016-07-09 02:12:51
内置的net/http包足以构建完整的REST。但是,一些库可以使构建API稍微容易一些,特别是在REST很复杂的情况下。从内置的工具到任何合适的框架都是相对简单的--它们通常接受http.Handler类型的处理程序。
然而,最终,这是一个极端的情景选择。你能做的最好的事情就是检查每一个可用的解决方案,对比和比较,如果可能的话,用顶级选项建立一个概念的证明。第一手经验将为您提供最好的指导。
发布于 2016-07-09 07:37:01
net/http包可能已经足够了,但是如果您想简化您的开发,您应该使用第三方包,比如Gorilla。例如,net/http的ServeMux在路由固定URL路径的传入请求方面做得很好,但是对于使用变量的漂亮路径,您将需要在使用Gorilla时实现一个自定义复用器,您可以免费获得它。
另一个例子是,如果希望使用适当的HTTP方法指定RESTful资源,则很难使用标准http.ServeMux,而对于大猩猩的mux包,可以基于URL主机、路径、路径前缀、方案、标头和查询值以及HTTP方法匹配请求。net/http包完全兼容,可以在将来替代。我完全鼓励你使用大猩猩的工具包来开发休息服务。
https://stackoverflow.com/questions/38264363
复制相似问题