beego

package
v0.0.0-...-eca3c71 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2014 License: Apache-2.0, MIT Imports: 37 Imported by: 0

README

Beego

Build Status GoDoc

beego is an open-source, high-performance, modularity, full-stack web framework.

More info beego.me

Installation

go get github.com/astaxie/beego

Features

  • RESTful support
  • MVC architecture
  • Modularity
  • Auto API documents
  • Annotation router
  • Namespace
  • Powerful develop tools
  • Full stack for Web & API

Documentation

Community

LICENSE

beego is licensed under the Apache Licence, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).

Documentation

Overview

beego is an open-source, high-performance, modularity, full-stack web framework

package main

import "github.com/astaxie/beego"

func main() {
 	beego.Run()
}

more infomation: http://beego.me

Index

Constants

View Source
const (
	LevelEmergency = iota
	LevelAlert
	LevelCritical
	LevelError
	LevelWarning
	LevelNotice
	LevelInformational
	LevelDebug
)

Log levels to control the logging output.

View Source
const (
	// default filter execution points
	BeforeStatic = iota
	BeforeRouter
	BeforeExec
	AfterExec
	FinishRouter
)
View Source
const VERSION = "1.4.1"

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)
	EnableHttpListen       bool
	HttpAddr               string
	HttpPort               int
	EnableHttpTLS          bool
	HttpsPort              int
	HttpCertFile           string
	HttpKeyFile            string
	RecoverPanic           bool // flag of auto recover panic
	AutoRender             bool // flag of render template automatically
	ViewsPath              string
	AppConfig              *beegoAppConfig
	RunMode                string           // run mode, "dev" or "prod"
	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
	SessionDomain          string           // the cookie domain default is empty
	UseFcgi                bool
	MaxMemory              int64
	EnableGzip             bool // flag of enable gzip
	DirectoryIndex         bool // flag of display directory index. 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
	AppConfigProvider      string // config provider
	EnableDocs             bool   // enable generate docs & server docs API Swagger
	RouterCaseSensitive    bool   // router case sensitive default is true
)
View Source
var (
	// custom error when user stop request handler manually.
	USERSTOPRUN                                            = errors.New("User stop run")
	GlobalControllerRouter map[string][]ControllerComments = make(map[string][]ControllerComments) //pkgpath+controller:comments
)
View Source
var (
	// supported http methods.
	HTTPMETHOD = map[string]string{
		"GET":     "GET",
		"POST":    "POST",
		"PUT":     "PUT",
		"DELETE":  "DELETE",
		"PATCH":   "PATCH",
		"OPTIONS": "OPTIONS",
		"HEAD":    "HEAD",
		"TRACE":   "TRACE",
		"CONNECT": "CONNECT",
	}

	FilterRouterLog func(*beecontext.Context) bool
)
View Source
var (

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

logger references the used application logger.

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, "/astaxie") {
		return false
 	}
 	return true
}
beego.FilterMonitorFunc = MyFilterMonitor.
View Source
var GlobalDocApi map[string]interface{}

Functions

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)

register Namespace into beego.Handler support multi Namespace

func AddTemplateExt

func AddTemplateExt(ext string)

add new extension for template.

func Alert

func Alert(v ...interface{})

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 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 Config

func Config(returnType, key string, defaultVal interface{}) (value interface{}, err error)

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 Emergency

func Emergency(v ...interface{})

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 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 deprecated

func Info(v ...interface{})

Deprecated: compatibility alias for Warning(), Will be removed in 1.5.0.

func Informational

func Informational(v ...interface{})

Info logs a message at info level.

func NSAfter

func NSAfter(filiterList ...FilterFunc) innnerNamespace

Namespace FinishRouter filter

func NSAny

func NSAny(rootpath string, f FilterFunc) innnerNamespace

Namespace Any

func NSAutoPrefix

func NSAutoPrefix(prefix string, c ControllerInterface) innnerNamespace

Namespace AutoPrefix

func NSAutoRouter

func NSAutoRouter(c ControllerInterface) innnerNamespace

Namespace AutoRouter

func NSBefore

func NSBefore(filiterList ...FilterFunc) innnerNamespace

Namespace BeforeRouter filter

func NSCond

func NSCond(cond namespaceCond) innnerNamespace

Namespace Condition

func NSDelete

func NSDelete(rootpath string, f FilterFunc) innnerNamespace

Namespace Delete

func NSGet

func NSGet(rootpath string, f FilterFunc) innnerNamespace

Namespace Get

func NSHead

func NSHead(rootpath string, f FilterFunc) innnerNamespace

Namespace Head

func NSInclude

func NSInclude(cList ...ControllerInterface) innnerNamespace

Namespace Include ControllerInterface

func NSNamespace

func NSNamespace(prefix string, params ...innnerNamespace) innnerNamespace

Namespace add sub Namespace

func NSOptions

func NSOptions(rootpath string, f FilterFunc) innnerNamespace

Namespace Options

func NSPatch

func NSPatch(rootpath string, f FilterFunc) innnerNamespace

Namespace Patch

func NSPost

func NSPost(rootpath string, f FilterFunc) innnerNamespace

Namespace Post

func NSPut

func NSPut(rootpath string, f FilterFunc) innnerNamespace

Namespace Put

func NSRouter

func NSRouter(rootpath string, c ControllerInterface, mappingMethods ...string) innnerNamespace

Namespace Router

func Notice

func Notice(v ...interface{})

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 RenderForm

func RenderForm(obj interface{}) template.HTML

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

func Run

func Run(params ...string)

Run beego application. beego.Run() default run on HttpPort beego.Run(":8089") beego.Run("127.0.0.1:8089")

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)

this function is for test package init

func Trace

func Trace(v ...interface{})

Trace logs a message at trace level. Deprecated: compatibility alias for Warning(), Will be removed in 1.5.0.

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 Warn deprecated

func Warn(v ...interface{})

Deprecated: compatibility alias for Warning(), Will be removed in 1.5.0.

func Warning

func Warning(v ...interface{})

Warning logs a message at warning level.

Types

type App

type App struct {
	Handlers *ControllerRegistor
	Server   *http.Server
}

App defines beego application with a new PatternServeMux.

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 usage:

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

func AutoPrefix

func AutoPrefix(prefix string, c ControllerInterface) *App

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

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.

func DelStaticPath

func DelStaticPath(url string) *App

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

func Delete

func Delete(rootpath string, f FilterFunc) *App

register router for Delete method usage:

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

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 usage:

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

func Handler

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

register router for own Handler usage:

beego.Handler("/api", func(ctx *context.Context){
      ctx.Output.Body("hello world")
})
func Head(rootpath string, f FilterFunc) *App

register router for Head method usage:

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

func Include

func Include(cList ...ControllerInterface) *App

Router add list from 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 *]

func InsertFilter

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

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)

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 usage:

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

func Patch

func Patch(rootpath string, f FilterFunc) *App

register router for Patch method usage:

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

func Post

func Post(rootpath string, f FilterFunc) *App

register router for Post method usage:

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

func Put

func Put(rootpath string, f FilterFunc) *App

register router for Put method usage:

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

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

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

func SetViewsPath

func SetViewsPath(path string) *App

SetViewsPath sets view directory path in beego application.

func (*App) Run

func (app *App) Run()

Run beego application.

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) CustomAbort

func (c *Controller) CustomAbort(status int, body string)

CustomAbort stops controller handler and show the error data, it's similar Aborts, but support status code and body.

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) (int, error)

GetInt returns input as an int

func (*Controller) GetInt16

func (c *Controller) GetInt16(key string) (int16, error)

GetInt16 returns input as an int16

func (*Controller) GetInt32

func (c *Controller) GetInt32(key string) (int32, error)

GetInt32 returns input as an int32

func (*Controller) GetInt64

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

GetInt64 returns input value as int64.

func (*Controller) GetInt8

func (c *Controller) GetInt8(key string) (int8, error)

GetInt8 return input as an int8

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) HandlerFunc

func (c *Controller) HandlerFunc(fnname string) bool

call function fn

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) Mapping

func (c *Controller) Mapping(method string, fn func())

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()

ServeFormatted serve Xml OR Json, depending on the value of the Accept header

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) 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) URLMapping

func (c *Controller) URLMapping()

URLMapping register the internal Controller router.

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 ControllerComments

type ControllerComments struct {
	Method           string
	Router           string
	AllowHTTPMethods []string
	Params           []map[string]string
}

store the comment for the controller method

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
	HandlerFunc(fn string) bool
	URLMapping()
}

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 NewControllerRegister

func NewControllerRegister() *ControllerRegistor

NewControllerRegister 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) 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{})

add user defined Handler

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) Include

func (p *ControllerRegistor) Include(cList ...ControllerInterface)

only when the Runmode is dev will generate router file in the router/auto.go from the controller Include(&BankAccount{}, &OrderController{},&RefundController{},&ReceiptController{})

func (*ControllerRegistor) InsertFilter

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

Add a FilterFunc with pattern rule and action constant. The bool params is for setting the returnOnOutput value (false allows multiple filters to execute)

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 (f *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) Set

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

Set 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) Success

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

Success writes success message to flash.

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
}

Namespace is store all the info

func NewNamespace

func NewNamespace(prefix string, params ...innnerNamespace) *Namespace

get new Namespace

func (*Namespace) Any

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

same as beego.Any refer: https://godoc.org/github.com/astaxie/beego#Any

func (*Namespace) AutoPrefix

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

same as beego.AutoPrefix refer: https://godoc.org/github.com/astaxie/beego#AutoPrefix

func (*Namespace) AutoRouter

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

same as beego.AutoRouter refer: https://godoc.org/github.com/astaxie/beego#AutoRouter

func (*Namespace) Cond

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

set condtion 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 (*Namespace) Delete

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

same as beego.Delete refer: https://godoc.org/github.com/astaxie/beego#Delete

func (*Namespace) Filter

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

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")
       }
  })

func (*Namespace) Get

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

same as beego.Get refer: https://godoc.org/github.com/astaxie/beego#Get

func (*Namespace) Handler

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

same as beego.Handler refer: https://godoc.org/github.com/astaxie/beego#Handler

func (*Namespace) Head

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

same as beego.Head refer: https://godoc.org/github.com/astaxie/beego#Head

func (*Namespace) Include

func (n *Namespace) Include(cList ...ControllerInterface) *Namespace

add include class refer: https://godoc.org/github.com/astaxie/beego#Include

func (*Namespace) Namespace

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

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"))
}),

)

func (*Namespace) Options

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

same as beego.Options refer: https://godoc.org/github.com/astaxie/beego#Options

func (*Namespace) Patch

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

same as beego.Patch refer: https://godoc.org/github.com/astaxie/beego#Patch

func (*Namespace) Post

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

same as beego.Post refer: https://godoc.org/github.com/astaxie/beego#Post

func (*Namespace) Put

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

same as beego.Put refer: https://godoc.org/github.com/astaxie/beego#Put

func (*Namespace) Router

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

same as beego.Rourer refer: https://godoc.org/github.com/astaxie/beego#Router

type Tree

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

func NewTree

func NewTree() *Tree

func (*Tree) AddRouter

func (t *Tree) AddRouter(pattern string, runObject interface{})

call addseg function

func (*Tree) AddTree

func (t *Tree) AddTree(prefix string, tree *Tree)

add Tree to the exist Tree prefix should has no params

func (*Tree) Match

func (t *Tree) Match(pattern string) (runObject interface{}, params map[string]string)

match router to runObject & params

Directories

Path Synopsis
Usage:
Usage:
memcache
package memcahe for cache provider
package memcahe for cache provider
redis
package redis for cache provider
package redis for cache provider
Usage: import(
Usage: import(
xml
package xml for config provider
package xml for config provider
yaml
package yaml for config provider
package yaml for config provider
Usage:
Usage:
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.
Usage:
Usage:
Usage:
Usage:
Usage:
Usage:
migration package for migration
migration package for migration
Simple Usage
Simple Usage
plugins
apiauth
Package apiauth provides handlers to enable apiauth support.
Package apiauth provides handlers to enable apiauth support.
auth
Package auth provides handlers to enable basic auth support.
Package auth provides handlers to enable basic auth support.
cors
Package cors provides handlers to enable CORS support.
Package cors provides handlers to enable CORS support.
package session provider
package session provider
couchbase
package couchbase for session provider
package couchbase for session provider
memcache
package memcache for session provider
package memcache for session provider
mysql
package mysql for session provider
package mysql for session provider
postgres
SessionOn = true SessionProvider = postgresql SessionSavePath = "user=a password=b dbname=c sslmode=disable" SessionName = session
SessionOn = true SessionProvider = postgresql SessionSavePath = "user=a password=b dbname=c sslmode=disable" SessionName = session
redis
package redis for session provider
package redis for session provider
swagger struct definition
swagger struct definition
toolbox healthcheck
toolbox healthcheck
captcha
an example for use captcha
an example for use captcha
pagination
The pagination package provides utilities to setup a paginator within the context of a http request.
The pagination package provides utilities to setup a paginator within the context of a http request.
package for validations
package for validations

Jump to

Keyboard shortcuts

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