Go Echo 学习笔记(一)简介


Echo 简介

Go Echo框架是一个高性能、可扩展、简化的 Go Web 框架,具有快速的 HTTP 路由器、零动态内存分配、微型化的特点。

Echo 框架默认其实只包含了MVC框架的C部分,就是负责url路由和控制器部分。至于V视图部分和M数据操作部分我们可以随意使用自己喜欢的工具库来操作。

针对实际业务需求,可能会对项目中的代码进行规划,echo web 框架没有对项目结构做出限制,我们可以根据自己项目需要自行设计。

这里给出一个典型的MVC框架大致的项目结构的例子:

├── conf                    #项目配置文件目录
   └── config.toml         #大家可以选择自己熟悉的配置文件管理工具包例如tomlxml等等
├── controllers             #控制器目录按模块存放控制器必要的时候可以继续划分子目录
   ├── food.go
   └── user.go
├── main.go                 #项目入口这里负责echo框架的初始化注册路由信息关联控制器函数等
├── models                  #模型目录负责项目的数据存储部分例如各个模块的Mysql表的读写模型
   ├── food.go
   └── user.go
├── static                  #静态资源目录包括Jscssjpg等等可以通过echo框架配置直接让用户访问
   ├── css
   ├── images
   └── js
├── logs                    #日志文件目录主要保存项目运行过程中产生的日志
└── views                   #视图模板目录存放各个模块的视图模板当然有些项目只有api是不需要视图部分可以忽略这个目录
    └── index.html

Echo 主要有如下的优点:

  • 路由优化:echo 使用经过优化的 HTTP 路由器,可对路由进行优先级排序;
  • 可扩展:echo 支持构建健壮且可扩展的 RESTful API;
  • 自动加密:echo 支持自动 TLS,echo 能够通过 “Let’s Encrypt” 自动安装 TLS 证书;
  • HTTP/2:echo 支持 HTTP/2;
  • 中间件:echo 具有许多内置的中间件(一个函数,嵌入在 HTTP 的请求和响应之间),并且支持定义中间件,且可以在根,组或路由级别设置中间件;
  • 数据绑定:echo 支持将请求数据(JSON,XML 或表单数据)绑定到指定的结构体上;
  • 数据响应:echo 支持多种格式(JSON, XML, HTML, 文件,附件,内联,流或 Blob)的 HTTP 数据响应;
  • 模版:echo 支持使用任何模版引擎进行模版渲染;
  • 可扩展:echo 拥有可定制的集中 HTTP 错误处理和易于扩展的 API 等。