Go web框架 Echo

Echo 是众多 Go Web 框架的一个,根据官网介绍,它有着高性能、可扩展性、极简的特点。echo框架默认其实只包含了MVC框架的C部分,就是负责url路由和控制器部分。至于V视图部分和M数据操作部分可以随意使用自己喜欢的工具库来操作。

1.1 核心模块

(1) Echo Echo 是框架内部的一个结构体,类似于 Beego 的 HttpServer 和 Gin 的 Engine

核心功能:

  • 对外暴露路由注册方法,但不负责成为路由树的载体
  • 负责服务的生命周期管理,如 Shutdown 和 Start 等
func TestHelloWorld(t *testing.T) {
   // Echo instance
   e := echo.New()

   // Middleware
   e.Use(middleware.Logger())
   e.Use(middleware.Recover())

   // Routes
   e.GET("/", hello)

   // Start server
   e.Logger.Fatal(e.Start(":8084"))
}

// Handle
func hello(c echo.Context) error {
   return c.String(http.StatusOK, "Hello, World!")
}
复制代码

在 Echo 里面有两个相似的字段:

  • Router:这其实就是代表路由树
  • Routers:这代表的是根据 Host 来进行分组组织,可以看做是近似于 namespace 之类的概念,既是一种组织方式,也是一种隔离机制

(2) Router 和 node

  • Router 代表的就是路由树,node 代表的是路由树上的节点, 它里面还有一个字段叫做 echo 维护的是使用 Route 的是 echo。这种设计形态在别的地方也能见到,比如说在 sql.Tx 里 面维持了一个 sql.DB 的实例
  • node 里面有一个很有意思的设计:staticChildren、paramChild 和 anyChild。利用这种设计可以轻松实现路由优先级和路由冲突检测

(3) Context

这里可能会感到意外,context是接口类型,定义了处理请求和响应的各种方法。 但其实作用和 Beego、Gin、Iris 的 Context 没有什么区别

1.2 总结

优点

  • 路由性能高
  • 更轻量级的web开发框架

缺点

  • 调试不方便,报错信息不友好
  • 路由性能虽高,但是路由实现的算法底层不支持路由排序,会引起路由冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值