https://beego.me/docs/mvc/controller/controller.md
基于beego 的Controller 设计,只需要匿名组合 beego.controller 就可以了
tyep XxxController struct {
beego.Controller
}
beego.Controller 实现了接口 beego.ControllerInterface, beego.ControllerInterface 定义了如下函数
-
Init(ct *context.Context, childName string, app interface{})
这个函数主要初始化了 Context、相应的 Controller 名称,模板名,初始化模板参数的容器 Data,
app 即为当前执行的 Controller 的 reflecttype,这个 app 可以用来执行子类的方法。 -
Prepare() 此函数为了用户扩展用的,这个函数会在下面定义的这些Method 方法之前执行,用户可以重写这个函数实现用户认证之类
-
Get() 如果用户请求的 HTTP Method 是 GET ,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Get 请求。
-
Post() 如果用户请求的 HTTP Method 是 Post ,那么就执行该函数,
-
Put() 如果用户请求的 HTTP Method 是 Put ,那么就执行该函数,
-
Delete() 如果用户请求的 HTTP Method 是 Delete ,那么就执行该函数,
-
Head() 如果用户请求的 HTTP Method 是 Head ,那么就执行该函数,
-
Patch() 如果用户请求的 HTTP Method 是 Patch ,那么就执行该函数,
-
Options() 如果用户请求的 HTTP Method 是 Options ,那么就执行该函数,
-
Finish() 这个函数是在执行完相应的 HTTP Method 方法之后执行的,默认是空,用户可以在子 struct 中重写这个函数,执行例如数据库关闭,清理数据之类的工作。
-
Render() error 这个函数主要用来实现渲染模板,如果 beego.AutoRender 为 true 的情况下才会执行。