mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 07:10:55 +00:00
增加了文档和router函数
This commit is contained in:
parent
9e428ba979
commit
c1cac16073
23
README.md
23
README.md
@ -72,5 +72,28 @@ this will serve any files in /static, including files in subdirectories. For exa
|
|||||||
|
|
||||||
## Filters / Middleware
|
## Filters / Middleware
|
||||||
============
|
============
|
||||||
|
You can apply filters to routes, which is useful for enforcing security, redirects, etc.
|
||||||
|
|
||||||
|
You can, for example, filter all request to enforce some type of security:
|
||||||
|
|
||||||
|
var FilterUser = func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if r.URL.User == nil || r.URL.User.Username() != "admin" {
|
||||||
|
http.Error(w, "", http.StatusUnauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
beego.BeeApp.Filter(FilterUser)
|
||||||
|
|
||||||
|
You can also apply filters only when certain REST URL Parameters exist:
|
||||||
|
|
||||||
|
beego.BeeApp.RegisterController("/:id([0-9]+)", &admin.EditController{})
|
||||||
|
beego.BeeApp.FilterParam("id", func(rw http.ResponseWriter, r *http.Request) {
|
||||||
|
...
|
||||||
|
})
|
||||||
|
|
||||||
|
also You can apply filters only when certain prefix URL path exist:
|
||||||
|
|
||||||
|
beego.BeeApp.FilterPrefixPath("/admin", func(rw http.ResponseWriter, r *http.Request) {
|
||||||
|
… auth
|
||||||
|
})
|
||||||
|
|
15
beego.go
15
beego.go
@ -93,6 +93,21 @@ func (app *App) RegisterController(path string, c ControllerInterface) *App {
|
|||||||
return app
|
return app
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (app *App) Filter(filter http.HandlerFunc) *App {
|
||||||
|
app.Handlers.Filter(filter)
|
||||||
|
return app
|
||||||
|
}
|
||||||
|
|
||||||
|
func (app *App) FilterParam(param string, filter http.HandlerFunc) *App {
|
||||||
|
app.Handlers.FilterParam(param, filter)
|
||||||
|
return app
|
||||||
|
}
|
||||||
|
|
||||||
|
func (app *App) FilterPrefixPath(path string, filter http.HandlerFunc) *App {
|
||||||
|
app.Handlers.FilterParam(path, filter)
|
||||||
|
return app
|
||||||
|
}
|
||||||
|
|
||||||
func (app *App) SetViewsPath(path string) *App {
|
func (app *App) SetViewsPath(path string) *App {
|
||||||
ViewsPath = path
|
ViewsPath = path
|
||||||
return app
|
return app
|
||||||
|
Loading…
Reference in New Issue
Block a user