Go Echo 学习笔记(一)简介
Echo 简介
Go Echo框架是一个高性能、可扩展、简化的 Go Web 框架,具有快速的 HTTP 路由器、零动态内存分配、微型化的特点。
Echo 框架默认其实只包含了MVC框架的C部分,就是负责url路由和控制器部分。至于V视图部分和M数据操作部分我们可以随意使用自己喜欢的工具库来操作。
针对实际业务需求,可能会对项目中的代码进行规划,echo web 框架没有对项目结构做出限制,我们可以根据自己项目需要自行设计。
这里给出一个典型的MVC框架大致的项目结构的例子:
├── conf #项目配置文件目录
│ └── config.toml #大家可以选择自己熟悉的配置文件管理工具包例如:toml、xml等等
├── controllers #控制器目录,按模块存放控制器,必要的时候可以继续划分子目录。
│ ├── food.go
│ └── user.go
├── main.go #项目入口,这里负责echo框架的初始化,注册路由信息,关联控制器函数等。
├── models #模型目录,负责项目的数据存储部分,例如各个模块的Mysql表的读写模型。
│ ├── food.go
│ └── user.go
├── static #静态资源目录,包括Js,css,jpg等等,可以通过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 等。