这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
初识 Go 语言Web框架
三、Beego——简约强大的企业级 Web 应用框架。
概要及特点介绍
Beego 用于在 Go 中快速开发企业应用程序,包括 RESTful API、web应用程序和后端服务。它的灵感来源于Tornado, Sinatra and Flask;Beego有一些特定于 Go 的特性,如自动化接口 和 结构体内嵌。支持如下特性有MVC、REST、智能路由、日志调试、配置管理、模板自动渲染、layout 设计、中间件插入逻辑以及方便的 JSON/XML 服务。
Beego 源码:github.com/beego/beego
自动化API接口
Beego拥有自动化API文档的功能通过脚手架bee可以新建API应用:使用命令bee api beeapi
要使得文档工作,你需要做几个事情,
- 开启API应用文档首先需要设置其配置文件来开启文档功能:
EnableDocs = true - 使用启动参数命令:
bee run -gendoc=true -downdoc=true来运行API应用,
参数解释:
-gendoc=true参数表示每次自动化的 build 文档;
-downdoc=true表示会自动下载Swagger文档查看器。
- 打开浏览器,默认localhost:8080,可查看API文档。
结构体内嵌
在 Beego 中,结构体内嵌的用法随处可见,框架所提供的控制器本质上是一个结构体,而该结构体里内嵌了 beego.Controller,开发者继承该结构体后便可拥有了所有 beego.Controller 的属性方法。
Beego 的安装
Beego 框架要求 Go 版本在1.1+以上,通过执行安装命令来安装:
go get http://github.com/astaxie/beego
安装完毕后,在GOPATH下的src目录下可以找到 Beego 框架的源码,之后还需要安装 Bee 脚手架来辅助构建 Go 项目:
- 首先通过命令安装bee 脚手架:
go get github.com/beego/bee
通过命令行命令:
bee,来检查安装情况
- 创建一个新的 Beego 项目(这里叫beegotest):
bee new beegotest - 通过使用go.mod来进一步管理项目,初始化 Go Mod:
go mod init - 通过 bee 运行刚刚创建的项目:
bee run
Beego 构建服务实例Demo:
在下面的Demo中可以见到该框架的特性:Router的参数决定了一个路由必须绑定一个控制器,而控制器可以由开发者自行编写,并且继承自框架的控制器,除此之外还有自动路由AutoRouter可以使用,参数的绑定方式也有多种。
控制器的命名规则是
XXXController,一般直接使用名称或者使用前缀
import "github.com/astaxie/beego"
// 控制器案例
type MainController struct {
beego.Controller
}
// 结构体内嵌调用
func (this *MainController) Get() {
this.Ctx.WriteString("hello world")
}
func main() {
// 创建Beego路由
beego.Router("/", &MainController{})
beego.Run()
}