golang 编写rest api 的七个框架的比较

我们以前曾经谈过Go,这是一个非常强大,高效,精简的语言,可以为企业和小型应用程序提供支持。虽然Go本身非常强大,与任何语言一样,通常需要额外的功能,或者完全需要。

当这些情况出现时,建立一个坚实的框架是非常重要的。幸运的是,自从发布以来,Go已经成熟,并拥有各种惊人的框架。

虽然“框架”往往被混淆为依赖或扩展,但实际上,一个良好的框架只是一个图书馆,为一系列活动和服务提供支持。框架通常在轻量级和功能齐全的范围内构建,而在选择特定框架时,​​您不仅要考虑API目前需要什么,还要考虑未来可能需要实现的内容。

今天,我们比较了可用于构建REST API的七个流行的Go框架 - 我们将确定它们的区别,并希望发现适合您的给定应用程序的框架。

另请阅读:写出微型服务

1、revel

Go语言的高生产率Web框架。

优点 Revel首先是全面的功能。与这个列表中的其他一些框架不同,Revel旨在开箱即用,它的许多功能集预先配置并安装了最佳功能。这意味着您可以不用安装,几乎是很有吸引力的许多初创公司和小组。

同样,Revel不需要很多第三方库或中间件实现来执行复杂的任务,与此列表中的某些条目不同,这意味着它相对自包含。通过将所有内容打包在一起,确保即使复杂的任务也可以通过默认安装进行,Revel似乎将自己定位为“一站式”解决方案。

这也带来了具有相对降低的高功能复杂性的所述质量。虽然其他框架可以绑定到第三方发行版以实现相同级别的功能,这意味着增加了第三方依赖关系的复杂性和要求。

带走

全功能集:Revel是功能齐全的开箱即用,包装图书馆和功能集,从小到复杂的任务。 自包含:通过避免对第三方库的依赖,Revel可以“开箱即用”,减少了交互库和扩展之间的复杂性。 缺点 雷霆充满活力的事实可能是一些消极的。虽然Revel是全面开箱即用的,但这也意味着代码库比其他解决方案要大得多,因此不太精简。这是一个有趣的质量,当一个人看看Go,这是为了从小到巨大的解决方案。尽管预先配置和预先包装的所有内容在快速设置方面都是非常好的,但它的确意味着您会失去一些敏捷性。

虽然这对许多人来说不是一个大问题,但MongoDB缺乏本地支持。虽然这种支持可以使用第三方解决方案来实现,但是在“厨房水槽”实现中,其他所有内容都可以被包装在内,这样的缺点就是这样的一个关键功能。

带走

更大的代码库:Revel是一个“厨房水槽”实施,包括您需要的一切。这意味着增加了框架的重量和尺寸,使其不变。 没有MongoDB:MongoDB的缺乏是许多人利用框架的一个问题,虽然这个支持可以使用第三方实现来添加,但它增加了不必要的工作,你不会期望这样一个完整的框架。

2、Gin

Golang最快全功能的Web框架。晶莹剔透。

优点 而像Revel这样的解决方案承诺一个经验,Gin提供了一个非常简约的修剪框架,它只带有最基本的功能,库和功能。这使得Gin非常精益 - 这实际上是像Gin这样的框架的巨大卖点。

这种简单,简洁的设计精神反映在文档中,这是直接有效的。这使得Gin成为一个很好的框架,可以使调试和问题跟踪变得更简单。

值得注意的是,杜松子醛的设计是马提尼,另一个框架。通过使用httprouter进行流量处理,Gin设法从Martini增加了40倍以上的速度。这使得它成为斯巴达代码和速度之间的不错选择。

带走

极简主义:杜松子酒非常简约,只包括必要特征,图书馆和功能。这使它非常精益,适合低功耗的系统。 可用:非常简单的框架,体面的文档,所以很容易学习和调试。 敏捷:极快,特别是与起源框架Martini相比。 缺点 杜松子酒是非常斯巴达,对许多人来说,这是一件好事。然而,对于企业解决方案,Gin根本就不会削减。虽然理论上可以与第三方实现和其他扩展相结合,但是对于这些解决方案的支持并不像其他框架那样强大,并且可以抵消Gin在很大程度上是一个积极的事情。

同样,Gin的限制意味着即使您扩展了框架,您也将大量处理移至客户端。因此,客户端的任何限制都将反映在服务器实现上,从而反映在API的实际功能上。

服务器只能在杜松子酒中做得太多,而且您的功能有限。

带走

不适用于企业:Gin是一个非常斯巴达式的框架,因此不适合需要大型后台或多个复杂服务器功能的应用程序。 大客户端:由于服务器限制,该框架倾向于将大量工作卸载给客户端,从而将潜在的实现限制在您的位置。 我们还审查了5个轻量级PHP框架来构建REST API

3、

相关文章

类型转换 1、int转string 2、string转int 3、string转float ...
package main import s "strings" import...
类使用:实现一个people中有一个sayhi的方法调用功能,代码如...
html代码: beego代码:
1、读取文件信息: 2、读取文件夹下的所有文件: 3、写入文件...
配置环境:Windows7+推荐IDE:LiteIDEGO下载地址:http:...