在 Echo 的官网的首页,列出了 9 个核心功能或亮点。我这里将它说成是亮点(也许并不一定都比其他框架更好)。
一、优化的路由
高度优化的 HTTP 路由,动态内存分配为零,可对路由进行优先级排序。
这一点从上一篇:搭建 Echo 开发环境 可以看到。
Echo 路由基于 radix tree[1] ,查询速度非常快。路由使用 sync pool[2] 来重用内存,实现无 GC 开销下的零动态内存分配。
路由的注册和使用方式
各大框架路由的注册和使用方式都类似,通过 HTTP 方法(GET、POST、PUT、DELETE 等),将 url 路径和一个处理程序绑定在一起,唯一不太一样的一般是处理程序的函数签名不一样(主要参数类型不一样)。例如,下面的代码则展示了一个注册路由的例子:它包括 GET
的访问方式, /hello
的访问路径,以及发送 Hello World
HTTP 响应的处理程序。
// 业务处理
func hello(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
}
// 路由
e.GET("/hello", hello)
更多路由的特性,参考文档:https://echo.labstack.com/guide/routing/(英文)、 https://www.bookstack.cn/read/echo-v3-zh/guide-routing.md (中文)。(上篇贴的中文文档打不开了。注意,中文文档基于 V3,而不是 V4)
二、Scalable
Echo 方