Echo 介绍

Echo 是众多 Go Web 框架的一个,根据官网介绍,它有着高性能、可扩展性、极简的特点。



Echo 的特点概述:


  • 优化的 HTTP 路由,可智能地优先路由
  • 方便构建强大且可扩展的 RESTful API
  • API 组
  • 可扩展的中间件框架,在多个级别定义中间件(root, group, route)
  • 为 JSON , XML 进行表单数据负载绑定
  • 发送各种 HTTP 响应的便捷功能
  • 集中式 HTTP 错误处理
  • 使用任何模板引擎进行模板渲染
  • 定义日志的格式
  • 高度个性化、可定制
  • 通过 Let’s Encrypt 实现自动 TLS
  • HTTP/2 支持

Echo 上手

从 4.0.0 版本开始,Echo 可作为 Go 模块使用。因此,需要一个能够理解 /vN 后缀导入的 Go 版本:


  • 1.9.7+
  • 1.10.3+
  • 1.14+


github.com/labstack/echo/v4

Echo 安装

这里以 Linux 为例,我们先看一下自己本地的 Go 版本:


本文使用的是 Go 1.16 版本,所以可以直接上手使用。


HeadFirstEcho


go mod


  1. 下载 Echo,命令:


本次下载成功如下:



下载成功后,我们来看一下如果利用 Echo 来写一个 HelloWorld 项目。

Hello World

helloServer.go


$ go run helloServer.go



http://localhost:2022/



对比,之前用 Go 系统自带的 http 库实现的 HelloWorld 应用还是有异曲同工之妙的。

带日志功能的 HelloWorld 程序

e.Use(middleware.Logger())


e.Use(middleware.Recover())


来看如下的例子:


除了能在前端显示出:“你好,世界!” 的界面,还能在后台看到日志打印在控制台上:


能看到的日志信息有:


  • time :时间,2022-02-25T15:08:10.481569868+08:00
  • id:此处为空
  • remote_ip:127.0.0.1
  • host:localhost:1323
  • method:GET 方法
  • uri:/ 根目录
  • user_agent 用户头:此处为火狐 Ubuntu 版,Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0
  • status:状态码,200
  • error:空
  • latency: 9308
  • latency_human: 9.308µs
  • bytes_in: 0
  • bytes_out: 16

其他中间件

从上面两个中间件我们可以看出,Echo 的确不愧为官网自称的极简 Web 框架,所有的函数调用都非常简单,而且支持可定制化。


在官方文档中,我们能看到所有的基本 Web 组件都已经帮我们实现好,比如:


  • Binding:绑定请求数据
  • Context:上下文,表示当前 HTTP 请求的上下文。
  • Cookies
  • Error Handling:错误处理
  • Request:请求
  • Response:响应
  • Static Files:静态文件
  • Templates:模板
  • Testing:测试


还有更多的中间件,包括 认证、CORS、CSRF、JWT、Logger、Secure、Session 等等,感兴趣的朋友赶紧上手试一试吧。

丰富而简单的案例

如果有一点 Web 开发的知识,对上述内容一定不陌生。


除了针对每一个组件的介绍,官方文档也提供了很多案例来帮助我们更好的学习和上手 Echo 这个框架,比如文件下载、上传、还有一个 WebSocket 的案例实现服务器和客户端的聊天。


跟着文档学习的过程你中,发现每个程序案例都很简单,几乎都是在本地运行代码,就能看到同样的效果,对新人真的很友好!


如果大家感兴趣的话,就自己去探索吧,刚好笔者也想做一个简单的 Web 项目,刚好可以利用上 Echo ,一边开发一边学习。

总结

Go 语言的 Web 开发框架其实也有很多:Gin、Beego、Revel。


Echo 作为其中的一款。截止到 2022 年,目前已经在 Github 上收获了 21.7k 的 Star 和 1.9k 的 Fork,可以说是经得起时间检验,得到了大家的认可,正可谓对应上标题中的回声嘹亮


在著名的 Go 开发者成长路线图 中也推荐了 Go 语言开发者应该要学习 Echo 框架。



最后,希望更多人能够和我一样加入对这个框架的学习。之后的文章中,会介绍 Echo 的其他组件在 Web 开发中的运用,下一篇 Echo 文章见!