Крючки для цикла запросов Beego

Я хочу знать, есть ли у Beego какие-нибудь хуки, которые я могу использовать для каждого запроса в приложении, чтобы добавить какую-то функциональность. Например, BeforeControllerLoads или AfterInitRequestLoads. Подобных крючков я не обнаружил. Крючки ORM не подходят. Спасибо


person KUKU    schedule 20.05.2019    source источник


Ответы (1)


В контроллере есть как Prepare, так и Finish:

// Prepare runs after Init before request function execution.
func (c *Controller) Prepare() {}

// Finish runs after request function execution.
func (c *Controller) Finish() {}

Также через фильтры вы можете вставить любой хук:

beego.InsertFilter("/user/:id([0-9]+)", beego.BeforeRouter, FilterUser)

У вас разные точки исполнения:

// default filter execution points
const (
    BeforeStatic = iota
    BeforeRouter
    BeforeExec
    AfterExec
    FinishRouter
)

https://github.com/astaxie/beego/blob/develop/controller.go https://github.com/astaxie/beego/blob/develop/router.go

person Mario Pérez    schedule 25.05.2019