如何将已有的http.Handlers整合到Revel中?
在概念图中, http.Handler 用于处理用户的请求。Revel的处理是非常简单的,它只是创建控制器实例,并将请求传递给过滤器链。
应用程序可以通过重写默认的处理程序整合现有http.Handlers:
func installHandlers() {
var (
serveMux = http.NewServeMux()
revelHandler = revel.Server.Handler
)
serveMux.Handle("/", revelHandler)
serveMux.Handle("/path", myHandler)
revel.Server.Handler = serveMux
}
func init() {
revel.OnAppStart(installHandlers)
}
拦截器、过滤器和模块之间是什么关系?
模块是可以插入到程序中的包。他们可以在多个Revel程序(或第三方源)中共享控制器、视图、资源和其他代码。
过滤器是可挂接到请求处理管道的函数。他们一般作为一个整体处理技术在应用程序中使用,来垂直分隔应用程序逻辑。