beego

package module
v0.0.0-...-e7a83c6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2014 License: Apache-2.0 Imports: 38 Imported by: 0

README

beego

修改自github.com/astaxie/beego

Original Features

  • RESTful support
  • MVC architecture
  • Session support (store in memory, file, Redis or MySQL)
  • Cache support (store in memory, Redis or Memcache)
  • Global Config
  • Intelligent routing
  • Thread-safe map
  • Friendly displaying of errors
  • Useful template functions

Added Features

  • Daemonize, 可在app.conf中用 Daemonize={bool}配置, pidfile默认写到程序目录的run/.pid
  • Access Logging, 默认写到程序目录的logs/access.log
  • DebugLevel配置,app.conf中 DebugLevel={int}配置,数字越高级别越高
  • utils 增加uuid.go, 可生成正常的uuid以及22字节长的短uuid
  • 简化路由功能, 只支持/{endpoint}/{rowkeys}/{selector}调度

使用

  • main.go去除router.go,加上_ "zhaoonline.com/applications/controllers"

  • controller对应endpoint需要如下代码(字符串对应,首字母大写,尖括号<>包含的内容可变):

type <Endpoint>Controller struct {
        beego.Controller
}

func init() {
    beego.RegistZhaoController(&<Endpoint>Controller{})
}

Documentation

Overview

Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language. @link http://github.com/zhaocloud/beego for the canonical source repository @license http://github.com/zhaocloud/beego/blob/master/LICENSE @authors zhaocloud

Index

Constants

View Source
const (
	LevelTrace = iota
	LevelDebug
	LevelInfo
	LevelWarning
	LevelError
	LevelCritical
)

Log levels to control the logging output.

View Source
const (
	// default filter execution points
	BeforeRouter = iota
	AfterStatic
	BeforeExec
	AfterExec
	FinishRouter
)
View Source
const (
	// An environment variable when restarting application http listener.
	FDKey = "BEEGO_HOT_FD"
)
View Source
const VERSION = "1.2.0"

beego web framework version.

Variables

View Source
var (
	BeeApp  *App // beego application
	AppName string
	AppPath string

	AppConfigPath          string
	StaticDir              map[string]string
	TemplateCache          map[string]*template.Template // template caching map
	StaticExtensionsToGzip []string                      // files with should be compressed with gzip (.js,.css,etc)
	HttpAddr               string
	HttpPort               int
	HttpTLS                bool
	HttpCertFile           string
	HttpKeyFile            string
	RecoverPanic           bool // flag of auto recover panic
	AutoRender             bool // flag of render template automatically
	ViewsPath              string
	RunMode                string // run mode, "dev" or "prod"
	AppConfig              config.ConfigContainer
	GlobalSessions         *session.Manager // global session mananger
	SessionOn              bool             // flag of starting session auto. default is false.
	SessionProvider        string           // default session provider, memory, mysql , redis ,etc.
	SessionName            string           // the cookie name when saving session id into cookie.
	SessionGCMaxLifetime   int64            // session gc time for auto cleaning expired session.
	SessionSavePath        string           // if use mysql/redis/file provider, define save path to connection info.
	SessionHashFunc        string           // session hash generation func.
	SessionHashKey         string           // session hash salt string.
	SessionCookieLifeTime  int              // the life time of session id in cookie.
	SessionAutoSetCookie   bool             // auto setcookie
	UseFcgi                bool
	MaxMemory              int64
	EnableGzip             bool // flag of enable gzip
	DirectoryIndex         bool // flag of display directory index. default is false.
	EnableHotUpdate        bool // flag of hot update checking by app self. default is false.
	HttpServerTimeOut      int64
	ErrorsShow             bool   // flag of show errors in page. if true, show error and trace info in page rendered with error template.
	XSRFKEY                string // xsrf hash salt string.
	EnableXSRF             bool   // flag of enable xsrf.
	XSRFExpire             int    // the expiry of xsrf value.
	CopyRequestBody        bool   // flag of copy raw request body in context.
	TemplateLeft           string
	TemplateRight          string
	BeegoServerName        string // beego server name exported in response header.
	EnableAdmin            bool   // flag of enable admin module to log every request info.
	AdminHttpAddr          string // http server configurations for admin module.
	AdminHttpPort          int
	FlashName              string // name of the flash variable found in response header and cookie
	FlashSeperator         string // used to seperate flash key:value

	//added by odin
	Daemonize  bool   // daemonize or not
	ProcName   string //proc name
	PidFile    string //pidfile abs path
	SkipAuth   []string
	DebugLevel int
)
View Source
var (
	//zhao auth
	ZhaoAuth *zhaoutils.ZhaoAuth
	// supported http methods.
	HTTPMETHOD = []string{"get", "post", "put", "delete", "patch", "options", "head", "trace", "connect"}
)
View Source
var (

	// beego template caching map and supported template file extensions.
	BeeTemplates   map[string]*template.Template
	BeeTemplateExt []string
)
View Source
var (
	AccessLogger *logs.BeeLogger
)

logger references the used application logger.

View Source
var BeeLogger *logs.BeeLogger

logger references the used application logger.

View Source
var ErrClosing = errors.New("use of closed network connection")

Export an error equivalent to net.errClosing for use with Accept during a graceful exit.

View Source
var ErrInitStart = errors.New("init from")
View Source
var FilterMonitorFunc func(string, string, time.Duration) bool

FilterMonitorFunc is default monitor filter when admin module is enable. if this func returns, admin module records qbs for this request by condition of this function logic. usage:

func MyFilterMonitor(method, requestPath string, t time.Duration) bool {
 	if method == "POST" {
		return false
 	}
 	if t.Nanoseconds() < 100 {
		return false
 	}
 	if strings.HasPrefix(requestPath, "/zhaocloud") {
		return false
 	}
 	return true
}
beego.FilterMonitorFunc = MyFilterMonitor.
View Source
var FormType = map[string]bool{
	"text":     true,
	"textarea": true,
	"hidden":   true,
	"password": true,
}

form types for RenderForm function

View Source
var SUCCODE = map[string]int{
	"get":    http.StatusOK,
	"delete": http.StatusNoContent,
	"put":    http.StatusCreated,
	"post":   http.StatusCreated,
	"patch":  http.StatusResetContent,
	"head":   http.StatusOK,
}
View Source
var (
	// custom error when user stop request handler manually.
	USERSTOPRUN = errors.New("User stop run")
)

Functions

func Access

func Access(v ...interface{})

func AddAPPStartHook

func AddAPPStartHook(hf hookfunc)

The hookfunc will run in beego.Run() such as sessionInit, middlerware start, buildtemplate, admin start

func AddFuncMap

func AddFuncMap(key string, funname interface{}) error

AddFuncMap let user to register a func in the template.

func AddNamespace

func AddNamespace(nl ...*Namespace)

func AddTemplateExt

func AddTemplateExt(ext string)

add new extension for template.

func AssetsCss

func AssetsCss(src string) template.HTML

returns stylesheet link tag with src string.

func AssetsJs

func AssetsJs(src string) template.HTML

returns script tag with src string.

func BuildTemplate

func BuildTemplate(dir string) error

build all template files in a directory. it makes beego can render any template file in view directory.

func CloseSelf

func CloseSelf() error

Kill current running os process.

func Compare

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 Critical

func Critical(v ...interface{})

Critical logs a message at critical level.

func Date

func Date(t time.Time, format string) string

Date takes a PHP like date func to Go's time format.

func DateFormat

func DateFormat(t time.Time, layout string) (datestring string)

DateFormat takes a time and a layout string and returns a string with the formatted date. Used by the template parser as "dateformat"

func DateParse

func DateParse(dateString, format string) (time.Time, error)

Parse Date use PHP time format.

func Debug

func Debug(v ...interface{})

Debug logs a message at debug level.

func Error

func Error(v ...interface{})

Error logs a message at error level.

func ExceptMethodAppend

func ExceptMethodAppend(action string)

To append a slice's value into "exceptMethod", for controller's methods shouldn't reflect to AutoRouter

func GetInitListener

func GetInitListener(tcpaddr *net.TCPAddr) (l net.Listener, err error)

Get current net.Listen in running process.

func HasTemplateExt

func HasTemplateExt(paths string) bool

return this path contains supported template extension of beego or not.

func Html2str

func Html2str(html string) string

Html2str returns escaping text convert from html.

func Htmlquote

func Htmlquote(src string) string

Htmlquote returns quoted html string.

func Htmlunquote

func Htmlunquote(src string) string

Htmlunquote returns unquoted html string.

func Info

func Info(v ...interface{})

Info logs a message at info level.

func ParseConfig

func ParseConfig() (err error)

ParseConfig parsed default config file. now only support ini, next will support json.

func ParseForm

func ParseForm(form url.Values, obj interface{}) error

parse form values to struct via tag.

func RegistZhaoController

func RegistZhaoController(c ControllerInterface)

通过这个函数注册controller, 每个controller的init()都需要调用这个函数

func RenderForm

func RenderForm(obj interface{}) template.HTML

render object to form html. obj must be a struct pointer.

func Restart

func Restart(l net.Listener) error

Re-exec this image without dropping the listener passed to this function.

func Run

func Run()

Run beego application. it's alias of App.Run.

func SaveAccess

func SaveAccess(start time.Time, context *beecontext.Context)

func SetLevel

func SetLevel(l int)

SetLogLevel sets the global log level used by the simple logger.

func SetLogFuncCall

func SetLogFuncCall(b bool)

func SetLogger

func SetLogger(adaptername string, config string) error

SetLogger sets a new logger.

func Str2html

func Str2html(raw string) template.HTML

Convert string to template.HTML type.

func Substr

func Substr(s string, start, length int) string

Substr returns the substr from start to length.

func TestBeegoInit

func TestBeegoInit(apppath string)

func Trace

func Trace(v ...interface{})

Trace logs a message at trace level.

func UrlFor

func UrlFor(endpoint string, values ...string) string

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

func WaitSignal

func WaitSignal(l net.Listener) error

Listener waits signal to kill or interrupt then restart.

func Warn

func Warn(v ...interface{})

Warning logs a message at warning level.

func WriteMsg

func WriteMsg(v ...interface{})

flush

Types

type App

type App struct {
	Handlers *ControllerRegistor
}

App defines beego application with a new PatternServeMux.

func AddFilter

func AddFilter(pattern, action string, filter FilterFunc) *App

[Deprecated] use InsertFilter. Filter adds a FilterFunc under pattern condition and named action. The actions contains BeforeRouter,AfterStatic,BeforeExec,AfterExec and FinishRouter. it's alias of App.Filter.

func AddGroupRouter

func AddGroupRouter(prefix string, groups GroupRouters) *App

AddGroupRouter with the prefix it will register the router in BeeApp the follow code is write in modules: GR:=NewGroupRouters() GR.AddRouter("/login",&UserController,"get:Login") GR.AddRouter("/logout",&UserController,"get:Logout") GR.AddRouter("/register",&UserController,"get:Reg") the follow code is write in app: import "github.com/beego/modules/auth" AddRouterGroup("/admin", auth.GR)

func Any

func Any(rootpath string, f FilterFunc) *App

register router for all method

func AutoPrefix

func AutoPrefix(prefix string, c ControllerInterface) *App

AutoPrefix adds controller handler to BeeApp with prefix. it's same to App.AutoRouterWithPrefix.

func AutoRouter

func AutoRouter(c ControllerInterface) *App

AutoRouter adds defined controller handler to BeeApp. it's same to App.AutoRouter.

func DelStaticPath

func DelStaticPath(url string) *App

DelStaticPath removes the static folder setting in this url pattern in beego application. it's alias of App.DelStaticPath.

func Delete

func Delete(rootpath string, f FilterFunc) *App

register router for Delete method

func Errorhandler

func Errorhandler(err string, h http.HandlerFunc) *App

ErrorHandler registers http.HandlerFunc to each http err code string. usage:

beego.ErrorHandler("404",NotFound)
beego.ErrorHandler("500",InternalServerError)

func Get

func Get(rootpath string, f FilterFunc) *App

register router for Get method

func Handler

func Handler(rootpath string, h http.Handler, options ...interface{}) *App

register router for own Handler

func Head(rootpath string, f FilterFunc) *App

register router for Head method

func InsertFilter

func InsertFilter(pattern string, pos int, filter FilterFunc) *App

InsertFilter adds a FilterFunc with pattern condition and action constant. The pos means action constant including beego.BeforeRouter, beego.AfterStatic, beego.BeforeExec, beego.AfterExec and beego.FinishRouter. it's alias of App.InsertFilter.

func NewApp

func NewApp() *App

NewApp returns a new beego application.

func Options

func Options(rootpath string, f FilterFunc) *App

register router for Options method

func Patch

func Patch(rootpath string, f FilterFunc) *App

register router for Patch method

func Post

func Post(rootpath string, f FilterFunc) *App

register router for Post method

func Put

func Put(rootpath string, f FilterFunc) *App

register router for Put method

func RESTRouter

func RESTRouter(rootpath string, c ControllerInterface) *App

RESTRouter adds a restful controller handler to BeeApp. its' controller implements beego.ControllerInterface and defines a param "pattern/:objectId" to visit each resource.

func Router

func Router(rootpath string, c ControllerInterface, mappingMethods ...string) *App

Router adds a patterned controller handler to BeeApp. it's an alias method of App.Router.

func SetStaticPath

func SetStaticPath(url string, path string) *App

SetStaticPath sets static directory and url prefix to BeeApp. it's alias of App.SetStaticPath.

func SetViewsPath

func SetViewsPath(path string) *App

SetViewsPath sets view directory to BeeApp. it's alias of App.SetViewsPath.

func (*App) Any

func (app *App) Any(rootpath string, f FilterFunc) *App

add router for Patch method

func (*App) AutoRouter

func (app *App) AutoRouter(c ControllerInterface) *App

AutoRouter adds beego-defined controller handler. 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.

func (*App) AutoRouterWithPrefix

func (app *App) AutoRouterWithPrefix(prefix string, c ControllerInterface) *App

AutoRouterWithPrefix adds beego-defined controller handler with prefix. 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 (*App) DelStaticPath

func (app *App) DelStaticPath(url string) *App

DelStaticPath removes the static folder setting in this url pattern in beego application. it returns beego application self.

func (*App) Delete

func (app *App) Delete(rootpath string, f FilterFunc) *App

add router for Delete method

func (*App) Filter

func (app *App) Filter(pattern, action string, filter FilterFunc) *App

[Deprecated] use InsertFilter. Filter adds a FilterFunc under pattern condition and named action. The actions contains BeforeRouter,AfterStatic,BeforeExec,AfterExec and FinishRouter.

func (*App) Get

func (app *App) Get(rootpath string, f FilterFunc) *App

add router for Get method

func (*App) Handler

func (app *App) Handler(rootpath string, h http.Handler, options ...interface{}) *App

add router for http.Handler

func (*App) Head

func (app *App) Head(rootpath string, f FilterFunc) *App

add router for Head method

func (*App) InsertFilter

func (app *App) InsertFilter(pattern string, pos int, filter FilterFunc) *App

InsertFilter adds a FilterFunc with pattern condition and action constant. The pos means action constant including beego.BeforeRouter, beego.AfterStatic, beego.BeforeExec, beego.AfterExec and beego.FinishRouter.

func (*App) Options

func (app *App) Options(rootpath string, f FilterFunc) *App

add router for Options method

func (*App) Patch

func (app *App) Patch(rootpath string, f FilterFunc) *App

add router for Patch method

func (*App) Post

func (app *App) Post(rootpath string, f FilterFunc) *App

add router for Post method

func (*App) Put

func (app *App) Put(rootpath string, f FilterFunc) *App

add router for Put method

func (*App) Router

func (app *App) Router(path string, c ControllerInterface, mappingMethods ...string) *App

Router adds a url-patterned controller handler. The path argument supports regex rules and specific placeholders. The c argument needs a controller handler implemented beego.ControllerInterface. The mapping methods argument only need one string to define custom router rules. 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")

func (*App) Run

func (app *App) Run()

Run beego application.

func (*App) SetStaticPath

func (app *App) SetStaticPath(url string, path string) *App

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". it returns beego application self.

func (*App) SetViewsPath

func (app *App) SetViewsPath(path string) *App

SetViewsPath sets view directory path in beego application. it returns beego application self.

func (*App) UrlFor

func (app *App) UrlFor(endpoint string, values ...string) string

UrlFor creates a url with another registered controller handler with params. The endpoint is formed as path.controller.name to defined the controller method which will run. The values need key-pair data to assign into controller method.

type Controller

type Controller struct {
	Ctx  *context.Context
	Data map[interface{}]interface{}

	TplNames       string
	Layout         string
	LayoutSections map[string]string // the key is the section name and the value is the template name
	TplExt         string

	CruSession    session.SessionStore
	XSRFExpire    int
	AppController interface{}
	EnableRender  bool
	EnableXSRF    bool
	// contains filtered or unexported fields
}

Controller defines some basic http request handler operations, such as http context, template and view, session and xsrf.

func (*Controller) Abort

func (c *Controller) Abort(code string)

Aborts stops controller handler and show the error data if code is defined in ErrorMap or code string.

func (*Controller) CheckXsrfCookie

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".

func (*Controller) DelSession

func (c *Controller) DelSession(name interface{})

SetSession removes value from session.

func (*Controller) Delete

func (c *Controller) Delete()

Delete adds a request function to handle DELETE request.

func (*Controller) DestroySession

func (c *Controller) DestroySession()

DestroySession cleans session data and session cookie.

func (*Controller) Finish

func (c *Controller) Finish()

Finish runs after request function execution.

func (*Controller) Get

func (c *Controller) Get()

Get adds a request function to handle GET request.

func (*Controller) GetBool

func (c *Controller) GetBool(key string) (bool, error)

GetBool returns input value as bool.

func (*Controller) GetControllerAndAction

func (c *Controller) GetControllerAndAction() (controllerName, actionName string)

GetControllerAndAction gets the executing controller name and action name.

func (*Controller) GetFile

func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader, error)

GetFile returns the file data in file upload field named as key. it returns the first one of multi-uploaded files.

func (*Controller) GetFloat

func (c *Controller) GetFloat(key string) (float64, error)

GetFloat returns input value as float64.

func (*Controller) GetInt

func (c *Controller) GetInt(key string) (int64, error)

GetInt returns input value as int64.

func (*Controller) GetSecureCookie

func (c *Controller) GetSecureCookie(Secret, key string) (string, bool)

GetSecureCookie returns decoded cookie value from encoded browser cookie values.

func (*Controller) GetSession

func (c *Controller) GetSession(name interface{}) interface{}

GetSession gets value from session.

func (*Controller) GetString

func (c *Controller) GetString(key string) string

GetString returns the input value by key string.

func (*Controller) GetStrings

func (c *Controller) GetStrings(key string) []string

GetStrings returns the input string slice by key string. it's designed for multi-value input field such as checkbox(input[type=checkbox]), multi-selection.

func (*Controller) Head

func (c *Controller) Head()

Head adds a request function to handle HEAD request.

func (*Controller) Init

func (c *Controller) Init(ctx *context.Context, controllerName, actionName string, app interface{})

Init generates default values of controller operations.

func (*Controller) Input

func (c *Controller) Input() url.Values

Input returns the input data map from POST or PUT request body and query string.

func (*Controller) IsAjax

func (c *Controller) IsAjax() bool

IsAjax returns this request is ajax or not.

func (*Controller) Options

func (c *Controller) Options()

Options adds a request function to handle OPTIONS request.

func (*Controller) ParseForm

func (c *Controller) ParseForm(obj interface{}) error

ParseForm maps input data map to obj struct.

func (*Controller) Patch

func (c *Controller) Patch()

Patch adds a request function to handle PATCH request.

func (*Controller) Post

func (c *Controller) Post()

Post adds a request function to handle POST request.

func (*Controller) Prepare

func (c *Controller) Prepare()

Prepare runs after Init before request function execution.

func (*Controller) Put

func (c *Controller) Put()

Put adds a request function to handle PUT request.

func (*Controller) Redirect

func (c *Controller) Redirect(url string, code int)

Redirect sends the redirection response to url with status code.

func (*Controller) Render

func (c *Controller) Render() error

Render sends the response with rendered template bytes as text/html type.

func (*Controller) RenderBytes

func (c *Controller) RenderBytes() ([]byte, error)

RenderBytes returns the bytes of rendered template string. Do not send out response.

func (*Controller) RenderString

func (c *Controller) RenderString() (string, error)

RenderString returns the rendered template string. Do not send out response.

func (*Controller) SaveToFile

func (c *Controller) SaveToFile(fromfile, tofile string) error

SaveToFile saves uploaded file to new path. it only operates the first one of mutil-upload form file field.

func (*Controller) ServeFormatted

func (c *Controller) ServeFormatted()

func (*Controller) ServeJson

func (c *Controller) ServeJson(encoding ...bool)

ServeJson sends a json response with encoding charset.

func (*Controller) ServeJsonp

func (c *Controller) ServeJsonp()

ServeJsonp sends a jsonp response.

func (*Controller) ServeREST

func (c *Controller) ServeREST(err error, encoding ...bool)

ServeJson sends a json response with encoding charset.

func (*Controller) ServeXml

func (c *Controller) ServeXml()

ServeXml sends xml response.

func (*Controller) SessionRegenerateID

func (c *Controller) SessionRegenerateID()

SessionRegenerateID regenerates session id for this session. the session data have no changes.

func (*Controller) SetSecureCookie

func (c *Controller) SetSecureCookie(Secret, name, value string, others ...interface{})

SetSecureCookie puts value into cookie after encoded the value.

func (*Controller) SetSession

func (c *Controller) SetSession(name interface{}, value interface{})

SetSession puts value into session.

func (*Controller) StartSession

func (c *Controller) StartSession() session.SessionStore

StartSession starts session and load old session data info this controller.

func (*Controller) StopRun

func (c *Controller) StopRun()

StopRun makes panic of USERSTOPRUN error and go to recover function if defined.

func (*Controller) UrlFor

func (c *Controller) UrlFor(endpoint string, values ...string) string

UrlFor does another controller handler in this request function. it goes to this controller method if endpoint is not clear.

func (*Controller) XsrfFormHtml

func (c *Controller) XsrfFormHtml() string

XsrfFormHtml writes an input field contains xsrf token value.

func (*Controller) XsrfToken

func (c *Controller) XsrfToken() string

XsrfToken creates a xsrf token string and returns.

type ControllerInterface

type ControllerInterface interface {
	Init(ct *context.Context, controllerName, actionName string, app interface{})
	Prepare()
	Get()
	Post()
	Delete()
	Put()
	Head()
	Patch()
	Options()
	Finish()
	Render() error
	XsrfToken() string
	CheckXsrfCookie() bool
}

ControllerInterface is an interface to uniform all controller handler.

type ControllerRegistor

type ControllerRegistor struct {
	// contains filtered or unexported fields
}

ControllerRegistor containers registered router rules, controller handlers and filters.

func NewControllerRegistor

func NewControllerRegistor() *ControllerRegistor

NewControllerRegistor returns a new ControllerRegistor.

func (*ControllerRegistor) Add

func (p *ControllerRegistor) Add(pattern string, c ControllerInterface, mappingMethods ...string)

Add controller handler and pattern rules to ControllerRegistor. 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 (*ControllerRegistor) AddAuto

Add auto router to ControllerRegistor. 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.

func (*ControllerRegistor) AddAutoPrefix

func (p *ControllerRegistor) AddAutoPrefix(prefix string, c ControllerInterface)

Add auto router to ControllerRegistor 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 (*ControllerRegistor) AddFilter

func (p *ControllerRegistor) AddFilter(pattern, action string, filter FilterFunc) error

[Deprecated] use InsertFilter. Add FilterFunc with pattern for action.

func (*ControllerRegistor) AddMethod

func (p *ControllerRegistor) AddMethod(method, pattern string, f FilterFunc)

add http method router usage:

AddMethod("get","/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Any

func (p *ControllerRegistor) Any(pattern string, f FilterFunc)

add all method usage:

Any("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Delete

func (p *ControllerRegistor) Delete(pattern string, f FilterFunc)

add delete method usage:

Delete("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Get

func (p *ControllerRegistor) Get(pattern string, f FilterFunc)

add get method usage:

Get("/", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Handler

func (p *ControllerRegistor) Handler(pattern string, h http.Handler, options ...interface{})

func (*ControllerRegistor) Head

func (p *ControllerRegistor) Head(pattern string, f FilterFunc)

add head method usage:

Head("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) InsertFilter

func (p *ControllerRegistor) InsertFilter(pattern string, pos int, filter FilterFunc) error

Add a FilterFunc with pattern rule and action constant.

func (*ControllerRegistor) Options

func (p *ControllerRegistor) Options(pattern string, f FilterFunc)

add options method usage:

Options("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Patch

func (p *ControllerRegistor) Patch(pattern string, f FilterFunc)

add patch method usage:

Patch("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Post

func (p *ControllerRegistor) Post(pattern string, f FilterFunc)

add post method usage:

Post("/api", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) Put

func (p *ControllerRegistor) Put(pattern string, f FilterFunc)

add put method usage:

Put("/api/:id", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})

func (*ControllerRegistor) ServeHTTP

func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)

Implement http.Handler interface.

func (*ControllerRegistor) UrlFor

func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string

UrlFor does another controller handler in this request function. it can access any controller method.

type FilterFunc

type FilterFunc func(*context.Context)

FilterFunc defines filter function type.

type FilterRouter

type FilterRouter struct {
	// contains filtered or unexported fields
}

FilterRouter defines filter operation before controller handler execution. it can match patterned url and do filter function when action arrives.

func (*FilterRouter) ValidRouter

func (mr *FilterRouter) ValidRouter(router string) (bool, map[string]string)

ValidRouter check current request is valid for this filter. if matched, returns parsed params in this request by defined filter router pattern.

type FlashData

type FlashData struct {
	Data map[string]string
}

FlashData is a tools to maintain data when using across request.

func NewFlash

func NewFlash() *FlashData

NewFlash return a new empty FlashData struct.

func ReadFromRequest

func ReadFromRequest(c *Controller) *FlashData

ReadFromRequest parsed flash data from encoded values in cookie.

func (*FlashData) Error

func (fd *FlashData) Error(msg string, args ...interface{})

Error writes error message to flash.

func (*FlashData) Notice

func (fd *FlashData) Notice(msg string, args ...interface{})

Notice writes notice message to flash.

func (*FlashData) Store

func (fd *FlashData) Store(c *Controller)

Store does the saving operation of flash data. the data are encoded and saved in cookie.

func (*FlashData) Warning

func (fd *FlashData) Warning(msg string, args ...interface{})

Warning writes warning message to flash.

type GroupRouters

type GroupRouters []groupRouter

RouterGroups which will store routers

func NewGroupRouters

func NewGroupRouters() GroupRouters

Get a new GroupRouters

func (*GroupRouters) AddAuto

func (gr *GroupRouters) AddAuto(c ControllerInterface)

func (*GroupRouters) AddRouter

func (gr *GroupRouters) AddRouter(pattern string, c ControllerInterface, mappingMethod ...string)

Add Router in the GroupRouters it is for plugin or module to register router

type Namespace

type Namespace struct {
	// contains filtered or unexported fields
}

func NewNamespace

func NewNamespace(prefix string) *Namespace

func (*Namespace) Any

func (n *Namespace) Any(rootpath string, f FilterFunc) *Namespace

func (*Namespace) AutoPrefix

func (n *Namespace) AutoPrefix(prefix string, c ControllerInterface) *Namespace

func (*Namespace) AutoRouter

func (n *Namespace) AutoRouter(c ControllerInterface) *Namespace

func (*Namespace) Cond

func (n *Namespace) Cond(cond namespaceCond) *Namespace

func (*Namespace) Delete

func (n *Namespace) Delete(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Filter

func (n *Namespace) Filter(action string, filter FilterFunc) *Namespace

func (*Namespace) Get

func (n *Namespace) Get(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Handler

func (n *Namespace) Handler(rootpath string, h http.Handler) *Namespace

func (*Namespace) Head

func (n *Namespace) Head(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Namespace

func (n *Namespace) Namespace(ns *Namespace) *Namespace

func (*Namespace) Options

func (n *Namespace) Options(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Patch

func (n *Namespace) Patch(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Post

func (n *Namespace) Post(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Put

func (n *Namespace) Put(rootpath string, f FilterFunc) *Namespace

func (*Namespace) Router

func (n *Namespace) Router(rootpath string, c ControllerInterface, mappingMethods ...string) *Namespace

func (*Namespace) ServeHTTP

func (n *Namespace) ServeHTTP(rw http.ResponseWriter, r *http.Request)

Directories

Path Synopsis
xml
这里处理所有要output的REST错误
这里处理所有要output的REST错误
example
chat
Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language.
Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language.
plugins
captcha
an example for use captcha “` package controllers import ( "github.com/zhaocloud/beego" "github.com/zhaocloud/beego/cache" "github.com/zhaocloud/beego/utils/captcha" ) var cpt *captcha.Captcha func init() { // use beego cache system store the captcha data store := cache.NewMemoryCache() cpt = captcha.NewWithFilter("/captcha/", store) } type MainController struct { beego.Controller } func (this *MainController) Get() { this.TplNames = "index.tpl" } func (this *MainController) Post() { this.TplNames = "index.tpl" this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request) } “` template usage “` {{.Success}} <form action="/" method="post"> {{create_captcha}} <input name="captcha" type="text"> </form> “`
an example for use captcha “` package controllers import ( "github.com/zhaocloud/beego" "github.com/zhaocloud/beego/cache" "github.com/zhaocloud/beego/utils/captcha" ) var cpt *captcha.Captcha func init() { // use beego cache system store the captcha data store := cache.NewMemoryCache() cpt = captcha.NewWithFilter("/captcha/", store) } type MainController struct { beego.Controller } func (this *MainController) Get() { this.TplNames = "index.tpl" } func (this *MainController) Post() { this.TplNames = "index.tpl" this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request) } “` template usage “` {{.Success}} <form action="/" method="post"> {{create_captcha}} <input name="captcha" type="text"> </form> “`

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL