Go语言的主要框架有哪些

90次阅读
没有评论

共计 1716 个字符,预计需要花费 5 分钟才能阅读完成。

本篇内容介绍了“Go 语言的主要框架有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Google 的 Go 语言(又名 Golang)已成为编写网络服务和 API 强有力的选择。它可以编译成快速运行的原生代码,天生支持异步编程,还拥有广泛和不断扩大的用户群。

下面列出了网络开发中用到的 Go 语言的主要框架。一些框架旨在简化用户的使用,如 API 访问点等。还有一些主要是为了处理全面的网站开发,或者可以根据工作需要的组件扩张或缩减开发。

▌Go 网络开发框架:Beego

在某些方面,Beego 会让人联想到 Python 中包罗万象的 Django Web 框架。它具备各种 Web 应用程序的通用功能,总共有八个模块,你可以根据需要选择使用。除了大多数 Web 框架中常见的模型 - 视图 - 控制器(model-view-controller,MVC)组件外,它还包括访问数据库的对象关系映射(object-relationship map,ORM)、内置缓存处理程序、会话处理工具、日志记录机制和常用的操作 HTTP 对象的库。

Beego 还有一个与 Django 很相似的地方是它的命令行工具。例如,你可以使用 bee 从头创建 Beego 应用或管理现有的应用。

▌Go 网络开发框架:Gin

Go 的第一个 Web 开发框架是 Martini,但这个项目已经停止了维护。然而,其他 Go 框架如雨后春笋般纷纷涌现,它们使用 Martini 的基本思想,但是具有更好的性能和更多的功能。

Gin 就是其中的一个项目。它使用修改过的的 httprouter 软件包来提高速度,并为很多常见的场景提供处理程序,包括中间件、文件上传、日志、将前端 HTML 组件绑定到后台的数据结构等等。其稳定版 API 是 1.x 版本,所以未来的变更应该不会破坏现有的 Gin 应用。

▌Go Web 开发框架:Gorilla

Gorilla 的定位是“Web 工具箱”,而并非 MVC 风格的框架。它提供的库可以帮忙解决 Web 服务编程中各种底层的问题,包括 context(在请求期间保存状态)、mux(路由和调度),以及实现 HTTP 上的安全 cookie、会话、websocket 和 RPC 等功能。

Gorilla 没有提供模板、表单和其他前端部分。你需要自己准备这些部分,你可以在其他框架中使用 Gorilla 的各个组件,或是在独立组件中集成用 Gorilla 编写的东西。

▌Go Web 开发框架:Echo

Echo 是另一个小框架,主要面向 API。例如,它并没有提供模板系统,所以你可以根据需要使用 Go 自己的 html/template。但是,Echo 提供了几种常常用于 API 的中间件模块,例如基本的认证和密钥身份验证、压缩、代理和日志记录。

Echo 还提供了大量实用的 recipe,其中很多无需大费周折就能实现。例如,如果你想使用 Let’s Encrypt 来管理 HTTPS 证书,那么可以设置一种 recipe 来自动安装这些证书。

▌Go Web 开发框架:Iris

Iris 的创建者称其为“真正属于 Go 的 Express.js”,也就是说,它是 JavaScript / Node.js 的 Web 框架的 Go 语言版,它使用最小设计,绝大部分功能都由插件提供。Iris 提供基本的 MVC 功能,自带对中间件、会话、路由和缓存的支持。

▌Go 网络开发框架:Revel

Ruby on Rails 为 MVC 风格的 Web 框架提供了一个通用模式,许多其他语言都仿照 Ruby on Rails 实现了自己的框架。Revel 的创建者将其视作 Rails 的灵魂。

除了提供基本的 MVC,Revel 还允许你自由使用其他组件来满足其他需求。你可以使用 Go 自己的原生 html/template 包,或自己提供。同样,对于 HTTP 引擎,你也可以使用 Go 自己的或第三方提供的。缓存可以在本地的内容中完成,也可以通过 Memcached 或 Redis 在后台完成。但是,该框架没有数据库的原生 ORM。

“Go 语言的主要框架有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计1716字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)