Package beego provide a MVC framework beego: an open-source, high-performance, modular, full-stack web framework
It is used for rapid development of RESTful APIs, web apps and backend services in Go. beego is inspired by Tornado, Sinatra and Flask with the added benefit of some Go-specific features such as interfaces and struct embedding.
package main
import "github.com/astaxie/beego"
func main() {
beego.Run()
}
more information: http://beego.me
- Constants
- Variables
- func AddAPPStartHook(hf ...hookfunc)
- func AddFuncMap(key string, fn interface{}) error
- func AddNamespace(nl ...*Namespace)
- func AddTemplateExt(ext string)
- func AddViewPath(viewPath string) error
- func Alert(v ...interface{})
- func AssetsCSS(text string) template.HTML
- func AssetsJs(text string) template.HTML
- func BuildTemplate(dir string, files ...string) error
- func Compare(a, b interface{}) (equal bool)
- func CompareNot(a, b interface{}) (equal bool)
- func Critical(v ...interface{})
- func Date(t time.Time, format string) string
- func DateFormat(t time.Time, layout string) (datestring string)
- func DateParse(dateString, format string) (time.Time, error)
- func Debug(v ...interface{})
- func Emergency(v ...interface{})
- func Error(v ...interface{})
- func ExceptMethodAppend(action string)
- func Exception(errCode uint64, ctx *context.Context)
- func ExecuteTemplate(wr io.Writer, name string, data interface{}) error
- func ExecuteViewPathTemplate(wr io.Writer, name string, viewPath string, data interface{}) error
- func GetConfig(returnType, key string, defaultVal interface{}) (value interface{}, err error)
- func HTML2str(html string) string
- func HasTemplateExt(paths string) bool
- func Htmlquote(text string) string
- func Htmlunquote(text string) string
- func Info(v ...interface{})
- func Informational(v ...interface{})
- func InitBeegoBeforeTest(appConfigPath string)
- func LoadAppConfig(adapterName, configPath string) error
- func LogAccess(ctx *beecontext.Context, startTime *time.Time, statusCode int)
- func MapGet(arg1 interface{}, arg2 ...interface{}) (interface{}, error)
- func NotNil(a interface{}) (isNil bool)
- func Notice(v ...interface{})
- func ParseForm(form url.Values, obj interface{}) error
- func Policy(pattern, method string, policy ...PolicyFunc)
- func RenderForm(obj interface{}) template.HTML
- func Run(params ...string)
- func RunWithMiddleWares(addr string, mws ...MiddleWare)
- func SetLevel(l int)
- func SetLogFuncCall(b bool)
- func SetLogger(adaptername string, config string) error
- func SetTemplateFSFunc(fnt templateFSFunc)
- func Str2html(raw string) template.HTML
- func Substr(s string, start, length int) string
- func TestBeegoInit(ap string)
- func Trace(v ...interface{})
- func URLFor(endpoint string, values ...interface{}) string
- func Walk(fs http.FileSystem, root string, walkFn filepath.WalkFunc) error
- func Warn(v ...interface{})
- func Warning(v ...interface{})
- type App
- func AddTemplateEngine(extension string, fn templatePreProcessor) *App
- func Any(rootpath string, f FilterFunc) *App
- func AutoPrefix(prefix string, c ControllerInterface) *App
- func AutoRouter(c ControllerInterface) *App
- func DelStaticPath(url string) *App
- func Delete(rootpath string, f FilterFunc) *App
- func ErrorController(c ControllerInterface) *App
- func ErrorHandler(code string, h http.HandlerFunc) *App
- func Get(rootpath string, f FilterFunc) *App
- func Handler(rootpath string, h http.Handler, options ...interface{}) *App
- func Head(rootpath string, f FilterFunc) *App
- func Include(cList ...ControllerInterface) *App
- func InsertFilter(pattern string, pos int, filter FilterFunc, params ...bool) *App
- func NewApp() *App
- func Options(rootpath string, f FilterFunc) *App
- func Patch(rootpath string, f FilterFunc) *App
- func Post(rootpath string, f FilterFunc) *App
- func Put(rootpath string, f FilterFunc) *App
- func RESTRouter(rootpath string, c ControllerInterface) *App
- func Router(rootpath string, c ControllerInterface, mappingMethods ...string) *App
- func SetStaticPath(url string, path string) *App
- func SetViewsPath(path string) *App
- func UnregisterFixedRoute(fixedRoute string, method string) *App
- type Config
- type Controller
- func (c *Controller) Abort(code string)
- func (c *Controller) CheckXSRFCookie() bool
- func (c *Controller) CustomAbort(status int, body string)
- func (c *Controller) DelSession(name interface{})
- func (c *Controller) Delete()
- func (c *Controller) DestroySession()
- func (c *Controller) Finish()
- func (c *Controller) Get()
- func (c *Controller) GetBool(key string, def ...bool) (bool, error)
- func (c *Controller) GetControllerAndAction() (string, string)
- func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader, error)
- func (c *Controller) GetFiles(key string) ([]*multipart.FileHeader, error)
- func (c *Controller) GetFloat(key string, def ...float64) (float64, error)
- func (c *Controller) GetInt(key string, def ...int) (int, error)
- func (c *Controller) GetInt8(key string, def ...int8) (int8, error)
- func (c *Controller) GetInt16(key string, def ...int16) (int16, error)
- func (c *Controller) GetInt32(key string, def ...int32) (int32, error)
- func (c *Controller) GetInt64(key string, def ...int64) (int64, error)
- func (c *Controller) GetSecureCookie(Secret, key string) (string, bool)
- func (c *Controller) GetSession(name interface{}) interface{}
- func (c *Controller) GetString(key string, def ...string) string
- func (c *Controller) GetStrings(key string, def ...[]string) []string
- func (c *Controller) GetUint8(key string, def ...uint8) (uint8, error)
- func (c *Controller) GetUint16(key string, def ...uint16) (uint16, error)
- func (c *Controller) GetUint32(key string, def ...uint32) (uint32, error)
- func (c *Controller) GetUint64(key string, def ...uint64) (uint64, error)
- func (c *Controller) HandlerFunc(fnname string) bool
- func (c *Controller) Head()
- func (c *Controller) Init(ctx *context.Context, controllerName, actionName string, app interface{})
- func (c *Controller) Input() url.Values
- func (c *Controller) IsAjax() bool
- func (c *Controller) Mapping(method string, fn func())
- func (c *Controller) Options()
- func (c *Controller) ParseForm(obj interface{}) error
- func (c *Controller) Patch()
- func (c *Controller) Post()
- func (c *Controller) Prepare()
- func (c *Controller) Put()
- func (c *Controller) Redirect(url string, code int)
- func (c *Controller) Render() error
- func (c *Controller) RenderBytes() ([]byte, error)
- func (c *Controller) RenderString() (string, error)
- func (c *Controller) SaveToFile(fromfile, tofile string) error
- func (c *Controller) ServeFormatted(encoding ...bool)
- func (c *Controller) ServeJSON(encoding ...bool)
- func (c *Controller) ServeJSONP()
- func (c *Controller) ServeXML()
- func (c *Controller) ServeYAML()
- func (c *Controller) SessionRegenerateID()
- func (c *Controller) SetData(data interface{})
- func (c *Controller) SetSecureCookie(Secret, name, value string, others ...interface{})
- func (c *Controller) SetSession(name interface{}, value interface{})
- func (c *Controller) StartSession() session.Store
- func (c *Controller) StopRun()
- func (c *Controller) Trace()
- func (c *Controller) URLFor(endpoint string, values ...interface{}) string
- func (c *Controller) URLMapping()
- func (c *Controller) XSRFFormHTML() string
- func (c *Controller) XSRFToken() string
- type ControllerComments
- type ControllerCommentsSlice
- type ControllerFilter
- type ControllerFilterComments
- type ControllerImportComments
- type ControllerInfo
- type ControllerInterface
- type ControllerRegister
- func (p *ControllerRegister) Add(pattern string, c ControllerInterface, mappingMethods ...string)
- func (p *ControllerRegister) AddAuto(c ControllerInterface)
- func (p *ControllerRegister) AddAutoPrefix(prefix string, c ControllerInterface)
- func (p *ControllerRegister) AddMethod(method, pattern string, f FilterFunc)
- func (p *ControllerRegister) Any(pattern string, f FilterFunc)
- func (p *ControllerRegister) Delete(pattern string, f FilterFunc)
- func (p *ControllerRegister) FindPolicy(cont *context.Context) []PolicyFunc
- func (p *ControllerRegister) FindRouter(context *beecontext.Context) (routerInfo *ControllerInfo, isFind bool)
- func (p *ControllerRegister) Get(pattern string, f FilterFunc)
- func (p *ControllerRegister) GetContext() *beecontext.Context
- func (p *ControllerRegister) GiveBackContext(ctx *beecontext.Context)
- func (p *ControllerRegister) Handler(pattern string, h http.Handler, options ...interface{})
- func (p *ControllerRegister) Head(pattern string, f FilterFunc)
- func (p *ControllerRegister) Include(cList ...ControllerInterface)
- func (p *ControllerRegister) InsertFilter(pattern string, pos int, filter FilterFunc, params ...bool) error
- func (p *ControllerRegister) Options(pattern string, f FilterFunc)
- func (p *ControllerRegister) Patch(pattern string, f FilterFunc)
- func (p *ControllerRegister) Post(pattern string, f FilterFunc)
- func (p *ControllerRegister) Put(pattern string, f FilterFunc)
- func (p *ControllerRegister) ServeHTTP(rw http.ResponseWriter, r *http.Request)
- func (p *ControllerRegister) URLFor(endpoint string, values ...interface{}) string
- type FileSystem
- type FilterFunc
- type FilterHandler
- type FilterRouter
- type FlashData
- func (fd *FlashData) Error(msg string, args ...interface{})
- func (fd *FlashData) Notice(msg string, args ...interface{})
- func (fd *FlashData) Set(key string, msg string, args ...interface{})
- func (fd *FlashData) Store(c *Controller)
- func (fd *FlashData) Success(msg string, args ...interface{})
- func (fd *FlashData) Warning(msg string, args ...interface{})
- type LinkNamespace
- func NSAfter(filterList ...FilterFunc) LinkNamespace
- func NSAny(rootpath string, f FilterFunc) LinkNamespace
- func NSAutoPrefix(prefix string, c ControllerInterface) LinkNamespace
- func NSAutoRouter(c ControllerInterface) LinkNamespace
- func NSBefore(filterList ...FilterFunc) LinkNamespace
- func NSCond(cond namespaceCond) LinkNamespace
- func NSDelete(rootpath string, f FilterFunc) LinkNamespace
- func NSGet(rootpath string, f FilterFunc) LinkNamespace
- func NSHandler(rootpath string, h http.Handler) LinkNamespace
- func NSHead(rootpath string, f FilterFunc) LinkNamespace
- func NSInclude(cList ...ControllerInterface) LinkNamespace
- func NSNamespace(prefix string, params ...LinkNamespace) LinkNamespace
- func NSOptions(rootpath string, f FilterFunc) LinkNamespace
- func NSPatch(rootpath string, f FilterFunc) LinkNamespace
- func NSPost(rootpath string, f FilterFunc) LinkNamespace
- func NSPut(rootpath string, f FilterFunc) LinkNamespace
- func NSRouter(rootpath string, c ControllerInterface, mappingMethods ...string) LinkNamespace
- type Listen
- type LogConfig
- type M
- type MiddleWare
- type Namespace
- func (n *Namespace) Any(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) AutoPrefix(prefix string, c ControllerInterface) *Namespace
- func (n *Namespace) AutoRouter(c ControllerInterface) *Namespace
- func (n *Namespace) Cond(cond namespaceCond) *Namespace
- func (n *Namespace) Delete(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Filter(action string, filter ...FilterFunc) *Namespace
- func (n *Namespace) Get(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Handler(rootpath string, h http.Handler) *Namespace
- func (n *Namespace) Head(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Include(cList ...ControllerInterface) *Namespace
- func (n *Namespace) Namespace(ns ...*Namespace) *Namespace
- func (n *Namespace) Options(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Patch(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Post(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Put(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Router(rootpath string, c ControllerInterface, mappingMethods ...string) *Namespace
- type PolicyFunc
- type SessionConfig
- type Tree
- type WebConfig
const ( VERSION = "1.12.3" DEV = "dev" PROD = "prod" )
const ( LevelEmergency = iota LevelAlert LevelCritical LevelError LevelWarning LevelNotice LevelInformational LevelDebug )
Log levels to control the logging output. Deprecated: use github.com/astaxie/beego/logs instead.
const ( BeforeStatic = iota BeforeRouter BeforeExec AfterExec FinishRouter )
default filter execution points
BeeLogger references the used application logger. Deprecated: use github.com/astaxie/beego/logs instead.
ErrorMaps holds map of http handlers for each error string. there is 10 kinds default error(40x and 50x)
FilterMonitorFunc is default monitor filter when admin module is enable. if this func returns, admin module records qps for this request by condition of this function logic. usage:
func MyFilterMonitor(method, requestPath string, t time.Duration, pattern string, statusCode int) bool {
if method == "POST" {
return false
}
if t.Nanoseconds() < 100 {
return false
}
if strings.HasPrefix(requestPath, "/astaxie") {
return false
}
return true
}
beego.FilterMonitorFunc = MyFilterMonitor.
func AddAPPStartHook(hf ...hookfunc)
AddAPPStartHook is used to register the hookfunc The hookfuncs will run in beego.Run() such as initiating session , starting middleware , building template, starting admin control and so on.
AddFuncMap let user to register a func in the template.
func AddNamespace(nl ...*Namespace)
AddNamespace register Namespace into beego.Handler support multi Namespace
func AddTemplateExt(ext string)
AddTemplateExt add new extension for template.
AddViewPath adds a new path to the supported view paths. Can later be used by setting a controller ViewPath to this folder will panic if called after beego.Run()
func Alert(v ...interface{})
Alert logs a message at alert level. Deprecated: use github.com/astaxie/beego/logs instead.
AssetsCSS returns stylesheet link tag with src string.
AssetsJs returns script tag with src string.
BuildTemplate will build all template files in a directory. it makes beego can render any template file in view directory.
func Compare(a, b interface{}) (equal bool)
Compare is a quick and dirty comparison function. It will convert whatever you give it to strings and see if the two values are equal. Whitespace is trimmed. Used by the template parser as "eq".
func CompareNot(a, b interface{}) (equal bool)
CompareNot !Compare
func Critical(v ...interface{})
Critical logs a message at critical level. Deprecated: use github.com/astaxie/beego/logs instead.
Date takes a PHP like date func to Go's time format.
DateFormat takes a time and a layout string and returns a string with the formatted date. Used by the template parser as "dateformat"
DateParse Parse Date use PHP time format.
func Debug(v ...interface{})
Debug logs a message at debug level. Deprecated: use github.com/astaxie/beego/logs instead.
func Emergency(v ...interface{})
Emergency logs a message at emergency level. Deprecated: use github.com/astaxie/beego/logs instead.
func Error(v ...interface{})
Error logs a message at error level. Deprecated: use github.com/astaxie/beego/logs instead.
func ExceptMethodAppend(action string)
ExceptMethodAppend to append a slice's value into "exceptMethod", for controller's methods shouldn't reflect to AutoRouter
Exception Write HttpStatus with errCode and Exec error handler if exist.
ExecuteTemplate applies the template with name to the specified data object, writing the output to wr. A template will be executed safely in parallel.
ExecuteViewPathTemplate applies the template with name and from specific viewPath to the specified data object, writing the output to wr. A template will be executed safely in parallel.
GetConfig get the Appconfig
HTML2str returns escaping text convert from html.
HasTemplateExt return this path contains supported template extension of beego or not.
Htmlquote returns quoted html string.
Htmlunquote returns unquoted html string.
func Info(v ...interface{})
Info compatibility alias for Warning() Deprecated: use github.com/astaxie/beego/logs instead.
func Informational(v ...interface{})
Informational logs a message at info level. Deprecated: use github.com/astaxie/beego/logs instead.
func InitBeegoBeforeTest(appConfigPath string)
InitBeegoBeforeTest is for test package init
LoadAppConfig allow developer to apply a config file
LogAccess logging info HTTP Access
func MapGet(arg1 interface{}, arg2 ...interface{}) (interface{}, error)
MapGet getting value from map by keys usage:
Data["m"] = M{
"a": 1,
"1": map[string]float64{
"c": 4,
},
}
{{ map_get m "a" }} // return 1 {{ map_get m 1 "c" }} // return 4
func NotNil(a interface{}) (isNil bool)
NotNil the same as CompareNot
func Notice(v ...interface{})
Notice logs a message at notice level. Deprecated: use github.com/astaxie/beego/logs instead.
ParseForm will parse form values to struct via tag.
func Policy(pattern, method string, policy ...PolicyFunc)
Policy Register new policy in beego
RenderForm will render object to form html. obj must be a struct pointer.
Run beego application. beego.Run() default run on HttpPort beego.Run("localhost") beego.Run(":8089") beego.Run("127.0.0.1:8089")
func RunWithMiddleWares(addr string, mws ...MiddleWare)
RunWithMiddleWares Run beego application with middlewares.
SetLevel sets the global log level used by the simple logger. Deprecated: use github.com/astaxie/beego/logs instead.
func SetLogFuncCall(b bool)
SetLogFuncCall set the CallDepth, default is 3 Deprecated: use github.com/astaxie/beego/logs instead.
SetLogger sets a new logger. Deprecated: use github.com/astaxie/beego/logs instead.
func SetTemplateFSFunc(fnt templateFSFunc)
SetTemplateFSFunc set default filesystem function
Str2html Convert string to template.HTML type.
Substr returns the substr from start to length.
TestBeegoInit is for test package init
func Trace(v ...interface{})
Trace logs a message at trace level. compatibility alias for Warning() Deprecated: use github.com/astaxie/beego/logs instead.
URLFor returns url string with another registered controller handler with params.
usage:
URLFor(".index")
print URLFor("index")
router /login
print URLFor("login")
print URLFor("login", "next","/"")
router /profile/:username
print UrlFor("profile", ":username","John Doe")
result:
/
/login
/login?next=/
/user/John%20Doe
more detail http://beego.me/docs/mvc/controller/urlbuilding.md
Walk walks the file tree rooted at root in filesystem, calling walkFn for each file or directory in the tree, including root. All errors that arise visiting files and directories are filtered by walkFn.
func Warn(v ...interface{})
Warn compatibility alias for Warning() Deprecated: use github.com/astaxie/beego/logs instead.
func Warning(v ...interface{})
Warning logs a message at warning level. Deprecated: use github.com/astaxie/beego/logs instead.
App defines beego application with a new PatternServeMux.
AddTemplateEngine add a new templatePreProcessor which support extension
Any used to register router for all methods usage:
beego.Any("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
AutoPrefix adds controller handler to BeeApp with prefix. it's same to App.AutoRouterWithPrefix. if beego.AutoPrefix("/admin",&MainContorlller{}) and MainController has methods List and Page, visit the url /admin/main/list to exec List function or /admin/main/page to exec Page function.
func AutoRouter(c ControllerInterface) *App
AutoRouter adds defined controller handler to BeeApp. it's same to App.AutoRouter. if beego.AddAuto(&MainContorlller{}) and MainController has methods List and Page, visit the url /main/list to exec List function or /main/page to exec Page function.
DelStaticPath removes the static folder setting in this url pattern in beego application.
Delete used to register router for Delete method usage:
beego.Delete("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
func ErrorController(c ControllerInterface) *App
ErrorController registers ControllerInterface to each http err code string. usage:
beego.ErrorController(&controllers.ErrorController{})
func ErrorHandler ¶ added in v1.6.0
ErrorHandler registers http.HandlerFunc to each http err code string. usage:
beego.ErrorHandler("404",NotFound)
beego.ErrorHandler("500",InternalServerError)
Get used to register router for Get method usage:
beego.Get("/", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
func Handler ¶
Handler used to register a Handler router usage:
beego.Handler("/api", http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
}))
Head used to register router for Head method usage:
beego.Head("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
func Include(cList ...ControllerInterface) *App
Include will generate router file in the router/xxx.go from the controller's comments usage: beego.Include(&BankAccount{}, &OrderController{},&RefundController{},&ReceiptController{})
type BankAccount struct{
beego.Controller
}
register the function
func (b *BankAccount)Mapping(){
b.Mapping("ShowAccount" , b.ShowAccount)
b.Mapping("ModifyAccount", b.ModifyAccount)
}
//@router /account/:id [get]
func (b *BankAccount) ShowAccount(){
//logic
}
//@router /account/:id [post]
func (b *BankAccount) ModifyAccount(){
//logic
}
the comments @router url methodlist url support all the function Router's pattern methodlist [get post head put delete options *]
InsertFilter adds a FilterFunc with pattern condition and action constant. The pos means action constant including beego.BeforeStatic, beego.BeforeRouter, beego.BeforeExec, beego.AfterExec and beego.FinishRouter. The bool params is for setting the returnOnOutput value (false allows multiple filters to execute)
NewApp returns a new beego application.
Options used to register router for Options method usage:
beego.Options("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Patch used to register router for Patch method usage:
beego.Patch("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Post used to register router for Post method usage:
beego.Post("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Put used to register router for Put method usage:
beego.Put("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
RESTRouter adds a restful controller handler to BeeApp. its' controller implements beego.ControllerInterface and defines a param "pattern/:objectId" to visit each resource.
Router adds a patterned controller handler to BeeApp. it's an alias method of App.Router. usage:
simple router
beego.Router("/admin", &admin.UserController{})
beego.Router("/admin/index", &admin.ArticleController{})
regex router
beego.Router("/api/:id([0-9]+)", &controllers.RController{})
custom rules
beego.Router("/api/list",&RestController{},"*:ListFood")
beego.Router("/api/create",&RestController{},"post:CreateFood")
beego.Router("/api/update",&RestController{},"put:UpdateFood")
beego.Router("/api/delete",&RestController{},"delete:DeleteFood")
SetStaticPath sets static directory path and proper url pattern in beego application. if beego.SetStaticPath("static","public"), visit /static/* to load static file in folder "public".
UnregisterFixedRoute unregisters the route with the specified fixedRoute. It is particularly useful in web applications that inherit most routes from a base webapp via the underscore import, and aim to overwrite only certain paths. The method parameter can be empty or "*" for all HTTP methods, or a particular method type (e.g. "GET" or "POST") for selective removal.
Usage (replace "GET" with "*" for all methods):
beego.UnregisterFixedRoute("/yourpreviouspath", "GET")
beego.Router("/yourpreviouspath", yourControllerAddress, "get:GetNewPage")
func (app *App) Run(mws ...MiddleWare)
Run beego application.
Config is the main struct for BConfig
Controller defines some basic http request handler operations, such as http context, template and view, session and xsrf.
Abort stops controller handler and show the error data if code is defined in ErrorMap or code string.
func (c *Controller) CheckXSRFCookie() bool
CheckXSRFCookie checks xsrf token in this request is valid or not. the token can provided in request header "X-Xsrftoken" and "X-CsrfToken" or in form field value named as "_xsrf".
CustomAbort stops controller handler and show the error data, it's similar Aborts, but support status code and body.
func (c *Controller) DelSession(name interface{})
DelSession removes value from session.
func (c *Controller) Delete()
Delete adds a request function to handle DELETE request.
func (c *Controller) DestroySession()
DestroySession cleans session data and session cookie.
func (c *Controller) Finish()
Finish runs after request function execution.
func (c *Controller) Get()
Get adds a request function to handle GET request.
GetBool returns input value as bool or the default value while it's present and input is blank.
func (*Controller) GetControllerAndAction ¶
GetControllerAndAction gets the executing controller name and action name.
GetFile returns the file data in file upload field named as key. it returns the first one of multi-uploaded files.
GetFiles return multi-upload files files, err:=c.GetFiles("myfiles")
if err != nil {
http.Error(w, err.Error(), http.StatusNoContent)
return
}
for i, _ := range files {
//for each fileheader, get a handle to the actual file
file, err := files[i].Open()
defer file.Close()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
//create destination file making sure the path is writeable.
dst, err := os.Create("upload/" + files[i].Filename)
defer dst.Close()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
//copy the uploaded file to the destination file
if _, err := io.Copy(dst, file); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
GetFloat returns input value as float64 or the default value while it's present and input is blank.
GetInt returns input as an int or the default value while it's present and input is blank
GetInt8 return input as an int8 or the default value while it's present and input is blank
GetInt16 returns input as an int16 or the default value while it's present and input is blank
GetInt32 returns input as an int32 or the default value while it's present and input is blank
GetInt64 returns input value as int64 or the default value while it's present and input is blank.
GetSecureCookie returns decoded cookie value from encoded browser cookie values.
func (c *Controller) GetSession(name interface{}) interface{}
GetSession gets value from session.
GetString returns the input value by key string or the default value while it's present and input is blank
GetStrings returns the input string slice by key string or the default value while it's present and input is blank it's designed for multi-value input field such as checkbox(input[type=checkbox]), multi-selection.
GetUint8 return input as an uint8 or the default value while it's present and input is blank
GetUint16 returns input as an uint16 or the default value while it's present and input is blank
GetUint32 returns input as an uint32 or the default value while it's present and input is blank
GetUint64 returns input value as uint64 or the default value while it's present and input is blank.
func (*Controller) HandlerFunc ¶ added in v1.3.0
HandlerFunc call function with the name
func (c *Controller) Head()
Head adds a request function to handle HEAD request.
Init generates default values of controller operations.
Input returns the input data map from POST or PUT request body and query string.
IsAjax returns this request is ajax or not.
func (c *Controller) Mapping(method string, fn func())
Mapping the method to function
func (c *Controller) Options()
Options adds a request function to handle OPTIONS request.
func (c *Controller) ParseForm(obj interface{}) error
ParseForm maps input data map to obj struct.
func (c *Controller) Patch()
Patch adds a request function to handle PATCH request.
func (c *Controller) Post()
Post adds a request function to handle POST request.
func (c *Controller) Prepare()
Prepare runs after Init before request function execution.
func (c *Controller) Put()
Put adds a request function to handle PUT request.
Redirect sends the redirection response to url with status code.
Render sends the response with rendered template bytes as text/html type.
RenderBytes returns the bytes of rendered template string. Do not send out response.
RenderString returns the rendered template string. Do not send out response.
SaveToFile saves uploaded file to new path. it only operates the first one of mutil-upload form file field.
func (c *Controller) ServeFormatted(encoding ...bool)
ServeFormatted serve YAML, XML OR JSON, depending on the value of the Accept header
func (c *Controller) ServeJSON(encoding ...bool)
ServeJSON sends a json response with encoding charset.
func (c *Controller) ServeJSONP()
ServeJSONP sends a jsonp response.
func (c *Controller) ServeXML()
ServeXML sends xml response.
func (c *Controller) ServeYAML()
ServeYAML sends yaml response.
func (c *Controller) SessionRegenerateID()
SessionRegenerateID regenerates session id for this session. the session data have no changes.
func (c *Controller) SetData(data interface{})
SetData set the data depending on the accepted
func (c *Controller) SetSecureCookie(Secret, name, value string, others ...interface{})
SetSecureCookie puts value into cookie after encoded the value.
func (c *Controller) SetSession(name interface{}, value interface{})
SetSession puts value into session.
StartSession starts session and load old session data info this controller.
func (c *Controller) StopRun()
StopRun makes panic of USERSTOPRUN error and go to recover function if defined.
func (c *Controller) Trace()
Trace adds a request function to handle Trace request. this method SHOULD NOT be overridden. https://tools.ietf.org/html/rfc7231#section-4.3.8 The TRACE method requests a remote, application-level loop-back of the request message. The final recipient of the request SHOULD reflect the message received, excluding some fields described below, back to the client as the message body of a 200 (OK) response with a Content-Type of "message/http" (Section 8.3.1 of [RFC7230]).
URLFor does another controller handler in this request function. it goes to this controller method if endpoint is not clear.
func (c *Controller) URLMapping()
URLMapping register the internal Controller router.
XSRFFormHTML writes an input field contains xsrf token value.
XSRFToken creates a CSRF token string and returns.
type ControllerComments struct {
}
ControllerComments store the comment for the controller method
type ControllerCommentsSlice []ControllerComments
ControllerCommentsSlice implements the sort interface
type ControllerFilter struct {
Pattern string
Pos int
Filter FilterFunc
ReturnOnOutput bool
ResetParams bool
}
ControllerFilter store the filter for controller
type ControllerFilterComments struct {
}
ControllerFilterComments store the comment for controller level filter
type ControllerImportComments struct {
}
ControllerImportComments store the import comment for controller needed
type ControllerInfo struct {
}
ControllerInfo holds information about the controller.
type ControllerInterface interface {
Init(ct *context.Context, controllerName, actionName string, app interface{})
Prepare()
Get()
Post()
Delete()
Put()
Head()
Patch()
Options()
Trace()
Finish()
Render() error
XSRFToken() string
CheckXSRFCookie() bool
HandlerFunc(fn string) bool
URLMapping()
}
ControllerInterface is an interface to uniform all controller handler.
type ControllerRegister struct {
}
ControllerRegister containers registered router rules, controller handlers and filters.
func NewControllerRegister() *ControllerRegister
NewControllerRegister returns a new ControllerRegister.
Add controller handler and pattern rules to ControllerRegister. usage:
default methods is the same name as method
Add("/user",&UserController{})
Add("/api/list",&RestController{},"*:ListFood")
Add("/api/create",&RestController{},"post:CreateFood")
Add("/api/update",&RestController{},"put:UpdateFood")
Add("/api/delete",&RestController{},"delete:DeleteFood")
Add("/api",&RestController{},"get,post:ApiFunc"
Add("/simple",&SimpleController{},"get:GetFunc;post:PostFunc")
func (p *ControllerRegister) AddAuto(c ControllerInterface)
AddAuto router to ControllerRegister. example beego.AddAuto(&MainContorlller{}), MainController has method List and Page. visit the url /main/list to execute List function /main/page to execute Page function.
AddAutoPrefix Add auto router to ControllerRegister with prefix. example beego.AddAutoPrefix("/admin",&MainContorlller{}), MainController has method List and Page. visit the url /admin/main/list to execute List function /admin/main/page to execute Page function.
func (p *ControllerRegister) AddMethod(method, pattern string, f FilterFunc)
AddMethod add http method router usage:
AddMethod("get","/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Any add all method usage:
Any("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Delete add delete method usage:
Delete("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
FindPolicy Find Router info for URL
FindRouter Find Router info for URL
Get add get method usage:
Get("/", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
GetContext returns a context from pool, so usually you should remember to call Reset function to clean the context And don't forget to give back context to pool example:
ctx := p.GetContext() ctx.Reset(w, q) defer p.GiveBackContext(ctx)
GiveBackContext put the ctx into pool so that it could be reuse
Head add head method usage:
Head("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
func (p *ControllerRegister) Include(cList ...ControllerInterface)
Include only when the Runmode is dev will generate router file in the router/auto.go from the controller Include(&BankAccount{}, &OrderController{},&RefundController{},&ReceiptController{})
InsertFilter Add a FilterFunc with pattern rule and action constant. params is for:
- setting the returnOnOutput value (false allows multiple filters to execute)
- determining whether or not params need to be reset.
Options add options method usage:
Options("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Patch add patch method usage:
Patch("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Post add post method usage:
Post("/api", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Put add put method usage:
Put("/api/:id", func(ctx *context.Context){
ctx.Output.Body("hello world")
})
Implement http.Handler interface.
URLFor does another controller handler in this request function. it can access any controller method.
type FileSystem struct {
}
FilterFunc defines a filter function which is invoked before the controller handler is executed.
type FilterHandler ¶ added in v1.4.2
FilterHandler is an interface for
var ( HTTPMETHOD = map[string]bool{ "GET": true, "POST": true, "PUT": true, "DELETE": true, "PATCH": true, "OPTIONS": true, "HEAD": true, "TRACE": true, "CONNECT": true, "MKCOL": true, "COPY": true, "MOVE": true, "PROPFIND": true, "PROPPATCH": true, "LOCK": true, "UNLOCK": true, } DefaultAccessLogFilter FilterHandler = &logFilter{} )
type FilterRouter struct {
}
FilterRouter defines a filter operation which is invoked before the controller handler is executed. It can match the URL against a pattern, and execute a filter function when a request with a matching URL arrives.
ValidRouter checks if the current request is matched by this filter. If the request is matched, the values of the URL parameters defined by the filter pattern are also returned.
FlashData is a tools to maintain data when using across request.
func NewFlash() *FlashData
NewFlash return a new empty FlashData struct.
func ReadFromRequest(c *Controller) *FlashData
ReadFromRequest parsed flash data from encoded values in cookie.
Set message to flash
func (fd *FlashData) Store(c *Controller)
Store does the saving operation of flash data. the data are encoded and saved in cookie.
Success writes success message to flash.
type LinkNamespace func(*Namespace)
LinkNamespace used as link action
func NSAfter(filterList ...FilterFunc) LinkNamespace
NSAfter add Namespace FinishRouter filter
NSAny call Namespace Any
NSAutoPrefix call Namespace AutoPrefix
func NSAutoRouter(c ControllerInterface) LinkNamespace
NSAutoRouter call Namespace AutoRouter
func NSBefore(filterList ...FilterFunc) LinkNamespace
NSBefore Namespace BeforeRouter filter
func NSCond(cond namespaceCond) LinkNamespace
NSCond is Namespace Condition
NSDelete call Namespace Delete
NSGet call Namespace Get
NSHead call Namespace Head
func NSInclude(cList ...ControllerInterface) LinkNamespace
NSInclude Namespace Include ControllerInterface
func NSNamespace(prefix string, params ...LinkNamespace) LinkNamespace
NSNamespace add sub Namespace
NSOptions call Namespace Options
NSPatch call Namespace Patch
NSPost call Namespace Post
NSPut call Namespace Put
NSRouter call Namespace Router
Listen holds for http and https related config
LogConfig holds Log related config
M is Map shortcut
PrintTree prints all registered routers.
MiddleWare function for http.Handler
type Namespace struct {
}
Namespace is store all the info
func NewNamespace(prefix string, params ...LinkNamespace) *Namespace
NewNamespace get new Namespace
Cond set condition function if cond return true can run this namespace, else can't usage:
ns.Cond(func (ctx *context.Context) bool{
if ctx.Input.Domain() == "api.beego.me" {
return true
}
return false
})
Cond as the first filter
func (n *Namespace) Filter(action string, filter ...FilterFunc) *Namespace
Filter add filter in the Namespace action has before & after FilterFunc usage:
Filter("before", func (ctx *context.Context){
_, ok := ctx.Input.Session("uid").(int)
if !ok && ctx.Request.RequestURI != "/login" {
ctx.Redirect(302, "/login")
}
})
Namespace add nest Namespace usage: ns := beego.NewNamespace(“/v1”). Namespace(
beego.NewNamespace("/shop").
Get("/:id", func(ctx *context.Context) {
ctx.Output.Body([]byte("shopinfo"))
}),
beego.NewNamespace("/order").
Get("/:id", func(ctx *context.Context) {
ctx.Output.Body([]byte("orderinfo"))
}),
beego.NewNamespace("/crm").
Get("/:id", func(ctx *context.Context) {
ctx.Output.Body([]byte("crminfo"))
}),
)
PolicyFunc defines a policy function which is invoked before the controller handler is executed.
type SessionConfig struct {
SessionOn bool
SessionProvider string
SessionName string
SessionGCMaxLifetime int64
SessionProviderConfig string
SessionCookieLifeTime int
SessionAutoSetCookie bool
SessionDomain string
SessionDisableHTTPOnly bool
SessionEnableSidInURLQuery bool
SessionCookieSameSite http.SameSite
}
SessionConfig holds session related config
type Tree struct {
}
Tree has three elements: FixRouter/wildcard/leaves fixRouter stores Fixed Router wildcard stores params leaves store the endpoint information
NewTree return a new Tree
AddTree will add tree to the exist Tree prefix should has no params
Match router to runObject & params
WebConfig holds web related config