DAY-11 入门Go项目6 | 青训营笔记

108 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

初识 Go 语言Web框架

三、Beego——简约强大的企业级 Web 应用框架。

概要及特点介绍

Beego 用于在 Go 中快速开发企业应用程序,包括 RESTful APIweb应用程序后端服务。它的灵感来源于Tornado, Sinatra and Flask;Beego有一些特定于 Go 的特性,如自动化接口结构体内嵌。支持如下特性有MVC、REST、智能路由、日志调试、配置管理、模板自动渲染、layout 设计、中间件插入逻辑以及方便的 JSON/XML 服务。

Beego 源码:github.com/beego/beego

自动化API接口

Beego拥有自动化API文档的功能通过脚手架bee可以新建API应用:使用命令bee api beeapi 要使得文档工作,你需要做几个事情,

  1. 开启API应用文档首先需要设置其配置文件来开启文档功能:EnableDocs = true
  2. 使用启动参数命令: bee run -gendoc=true -downdoc=true来运行API应用,

参数解释:

-gendoc=true参数表示每次自动化的 build 文档;

-downdoc=true 表示会自动下载 Swagger 文档查看器。

  1. 打开浏览器,默认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 项目:

  1. 首先通过命令安装bee 脚手架go get github.com/beego/bee

通过命令行命令:bee,来检查安装情况

  1. 创建一个新的 Beego 项目(这里叫beegotest):bee new beegotest
  2. 通过使用go.mod来进一步管理项目,初始化 Go Mod: go mod init
  3. 通过 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()
}