v2.1.4 Latest Latest

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

Go to latest
Published: Nov 27, 2023 License: Apache-2.0, Apache-2.0 Imports: 30 Imported by: 131



Package context provide the context utils Usage:

import ""

ctx := context.Context{Request:req,ResponseWriter:rw}



View Source
const (
	ApplicationJSON  = "application/json"
	ApplicationXML   = "application/xml"
	ApplicationForm  = "application/x-www-form-urlencoded"
	ApplicationProto = "application/x-protobuf"
	ApplicationYAML  = "application/x-yaml"
	TextXML          = "text/xml"

Commonly used mime-types


This section is empty.


func InitGzip

func InitGzip(minLength, compressLevel int, methods []string)

InitGzip initializes the gzipcompress

func ParseEncoding

func ParseEncoding(r *http.Request) string

ParseEncoding will extract the right encoding for response the Accept-Encoding's sec is here:

func ParseForm added in v2.0.2

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

ParseForm will parse form values to struct via tag.

func WriteBody

func WriteBody(encoding string, writer io.Writer, content []byte) (bool, string, error)

WriteBody reads writes content to writer by the specific encoding(gzip/deflate)

func WriteFile

func WriteFile(encoding string, writer io.Writer, file *os.File) (bool, string, error)

WriteFile reads from file and writes to writer by the specific encoding(gzip/deflate)


type BeegoInput

type BeegoInput struct {
	Context    *Context
	CruSession session.Store

	RequestBody   []byte
	RunMethod     string
	RunController reflect.Type
	// contains filtered or unexported fields

BeegoInput operates the http request header, data, cookie and body. Contains router params and current session.

func NewInput

func NewInput() *BeegoInput

NewInput returns the BeegoInput generated by context.

func (*BeegoInput) AcceptsHTML

func (input *BeegoInput) AcceptsHTML() bool

AcceptsHTML Checks if request accepts html response

func (*BeegoInput) AcceptsJSON

func (input *BeegoInput) AcceptsJSON() bool

AcceptsJSON Checks if request accepts json response

func (*BeegoInput) AcceptsXML

func (input *BeegoInput) AcceptsXML() bool

AcceptsXML Checks if request accepts xml response

func (*BeegoInput) AcceptsYAML

func (input *BeegoInput) AcceptsYAML() bool

AcceptsYAML Checks if request accepts json response

func (*BeegoInput) Bind

func (input *BeegoInput) Bind(dest interface{}, key string) error

Bind data from request.Form[key] to dest like /?id=123&isok=true&ft=1.2&ol[0]=1&ol[1]=2&ul[]=str&ul[]=array&user.Name=astaxie var id int beegoInput.Bind(&id, "id") id ==123 var isok bool beegoInput.Bind(&isok, "isok") isok ==true var ft float64 beegoInput.Bind(&ft, "ft") ft ==1.2 ol := make([]int, 0, 2) beegoInput.Bind(&ol, "ol") ol ==[1 2] ul := make([]string, 0, 2) beegoInput.Bind(&ul, "ul") ul ==[str array] user struct{Name} beegoInput.Bind(&user, "user") user == {Name:"astaxie"}

func (*BeegoInput) Cookie

func (input *BeegoInput) Cookie(key string) string

Cookie returns request cookie item string by a given key. if non-existed, return empty string.

func (*BeegoInput) CopyBody

func (input *BeegoInput) CopyBody(MaxMemory int64) []byte

CopyBody returns the raw request body data as bytes.

func (*BeegoInput) Data

func (input *BeegoInput) Data() map[interface{}]interface{}

Data returns the implicit data in the input

func (*BeegoInput) Domain

func (input *BeegoInput) Domain() string

Domain returns the host name (alias of host method)

func (*BeegoInput) GetData

func (input *BeegoInput) GetData(key interface{}) interface{}

GetData returns the stored data in this context.

func (*BeegoInput) Header

func (input *BeegoInput) Header(key string) string

Header returns request header item string by a given string. if non-existed, return empty string.

func (*BeegoInput) Host

func (input *BeegoInput) Host() string

Host returns the host name. If no host info in request, return localhost.

func (*BeegoInput) IP

func (input *BeegoInput) IP() string

IP returns request client ip. if in proxy, return first proxy id. if error, return RemoteAddr.

func (*BeegoInput) Is

func (input *BeegoInput) Is(method string) bool

Is returns the boolean value of this request is on given method, such as Is("POST").

func (*BeegoInput) IsAjax

func (input *BeegoInput) IsAjax() bool

IsAjax returns boolean of is this request generated by ajax.

func (*BeegoInput) IsDelete

func (input *BeegoInput) IsDelete() bool

IsDelete Is this a DELETE method request?

func (*BeegoInput) IsGet

func (input *BeegoInput) IsGet() bool

IsGet Is this a GET method request?

func (*BeegoInput) IsHead

func (input *BeegoInput) IsHead() bool

IsHead Is this a Head method request?

func (*BeegoInput) IsOptions

func (input *BeegoInput) IsOptions() bool

IsOptions Is this an OPTIONS method request?

func (*BeegoInput) IsPatch

func (input *BeegoInput) IsPatch() bool

IsPatch Is this a PATCH method request?

func (*BeegoInput) IsPost

func (input *BeegoInput) IsPost() bool

IsPost Is this a POST method request?

func (*BeegoInput) IsPut

func (input *BeegoInput) IsPut() bool

IsPut Is this a PUT method request?

func (*BeegoInput) IsSecure

func (input *BeegoInput) IsSecure() bool

IsSecure returns boolean of this request is in https.

func (*BeegoInput) IsUpload

func (input *BeegoInput) IsUpload() bool

IsUpload returns boolean of whether file uploads in this request or not..

func (*BeegoInput) IsWebsocket

func (input *BeegoInput) IsWebsocket() bool

IsWebsocket returns boolean of this request is in webSocket.

func (*BeegoInput) Method

func (input *BeegoInput) Method() string

Method returns http request method.

func (*BeegoInput) Param

func (input *BeegoInput) Param(key string) string

Param returns router param by a given key.

func (*BeegoInput) Params

func (input *BeegoInput) Params() map[string]string

Params returns the map[key]value.

func (*BeegoInput) ParamsLen

func (input *BeegoInput) ParamsLen() int

ParamsLen return the length of the params

func (*BeegoInput) ParseFormOrMultiForm

func (input *BeegoInput) ParseFormOrMultiForm(maxMemory int64) error

ParseFormOrMultiForm parseForm or parseMultiForm based on Content-type

func (*BeegoInput) Port

func (input *BeegoInput) Port() int

Port returns request client port. when error or empty, return 80.

func (*BeegoInput) Protocol

func (input *BeegoInput) Protocol() string

Protocol returns the request protocol name, such as HTTP/1.1 .

func (*BeegoInput) Proxy

func (input *BeegoInput) Proxy() []string

Proxy returns proxy client ips slice.

func (*BeegoInput) Query

func (input *BeegoInput) Query(key string) string

Query returns input data item string by a given string.

func (*BeegoInput) Refer

func (input *BeegoInput) Refer() string

Refer returns http referer header.

func (*BeegoInput) Referer

func (input *BeegoInput) Referer() string

Referer returns http referer header.

func (*BeegoInput) Reset

func (input *BeegoInput) Reset(ctx *Context)

Reset initializes the BeegoInput

func (*BeegoInput) ResetParams

func (input *BeegoInput) ResetParams()

ResetParams clears any of the input's params Used to clear parameters so they may be reset between filter passes.

func (*BeegoInput) Scheme

func (input *BeegoInput) Scheme() string

Scheme returns the request scheme as "http" or "https".

func (*BeegoInput) Session

func (input *BeegoInput) Session(key interface{}) interface{}

Session returns current session item value by a given key. if non-existed, return nil.

func (*BeegoInput) SetData

func (input *BeegoInput) SetData(key, val interface{})

SetData stores data with given key in this context. This data is only available in this context.

func (*BeegoInput) SetParam

func (input *BeegoInput) SetParam(key, val string)

SetParam sets the param with key and value

func (*BeegoInput) Site

func (input *BeegoInput) Site() string

Site returns the base site url as scheme://domain type.

func (*BeegoInput) SubDomains

func (input *BeegoInput) SubDomains() string

SubDomains returns sub domain string. if, returns

func (*BeegoInput) URI

func (input *BeegoInput) URI() string

URI returns the full request url with query, string and fragment.

func (*BeegoInput) URL

func (input *BeegoInput) URL() string

URL returns the request url path (without query, string and fragment).

func (*BeegoInput) UserAgent

func (input *BeegoInput) UserAgent() string

UserAgent returns request client user agent string.

type BeegoOutput

type BeegoOutput struct {
	Context    *Context
	Status     int
	EnableGzip bool

BeegoOutput does work for sending response header.

func NewOutput

func NewOutput() *BeegoOutput

NewOutput returns new BeegoOutput. Empty when initialized

func (*BeegoOutput) Body

func (output *BeegoOutput) Body(content []byte) error

Body sets the response body content. if EnableGzip, content is compressed. Sends out response body directly.

func (*BeegoOutput) ContentType

func (output *BeegoOutput) ContentType(ext string)

ContentType sets the content type from ext string. MIME type is given in mime package.

func (*BeegoOutput) Cookie

func (output *BeegoOutput) Cookie(name string, value string, others ...interface{})

Cookie sets a cookie value via given key. others: used to set a cookie's max age time, path,domain, secure and httponly.

func (*BeegoOutput) Download

func (output *BeegoOutput) Download(file string, filename ...string)

Download forces response for download file. Prepares the download response header automatically.

func (*BeegoOutput) Header

func (output *BeegoOutput) Header(key, val string)

Header sets response header item string via given key.

func (*BeegoOutput) IsCachable

func (output *BeegoOutput) IsCachable() bool

IsCachable returns boolean of if this request is cached. HTTP 304 means cached.

func (*BeegoOutput) IsClientError

func (output *BeegoOutput) IsClientError() bool

IsClientError returns boolean of if this request client sends error data. HTTP 4xx means client error.

func (*BeegoOutput) IsEmpty

func (output *BeegoOutput) IsEmpty() bool

IsEmpty returns boolean of if this request is empty. HTTP 201,204 and 304 means empty.

func (*BeegoOutput) IsForbidden

func (output *BeegoOutput) IsForbidden() bool

IsForbidden returns boolean of if this request is forbidden. HTTP 403 means forbidden.

func (*BeegoOutput) IsNotFound

func (output *BeegoOutput) IsNotFound() bool

IsNotFound returns boolean of if this request is not found. HTTP 404 means not found.

func (*BeegoOutput) IsOk

func (output *BeegoOutput) IsOk() bool

IsOk returns boolean of if this request was ok. HTTP 200 means ok.

func (*BeegoOutput) IsRedirect

func (output *BeegoOutput) IsRedirect() bool

IsRedirect returns boolean of if this request is redirected. HTTP 301,302,307 means redirection.

func (*BeegoOutput) IsServerError

func (output *BeegoOutput) IsServerError() bool

IsServerError returns boolean of if this server handler errors. HTTP 5xx means server internal error.

func (*BeegoOutput) IsSuccessful

func (output *BeegoOutput) IsSuccessful() bool

IsSuccessful returns boolean of this request was successful. HTTP 2xx means ok.

func (*BeegoOutput) JSON

func (output *BeegoOutput) JSON(data interface{}, hasIndent bool, encoding bool) error

JSON writes json to the response body. if encoding is true, it converts utf-8 to \u0000 type.

func (*BeegoOutput) JSONP

func (output *BeegoOutput) JSONP(data interface{}, hasIndent bool) error

JSONP writes jsonp to the response body.

func (*BeegoOutput) Proto added in v2.0.2

func (output *BeegoOutput) Proto(data proto.Message) error

Proto writes protobuf to the response body.

func (*BeegoOutput) Reset

func (output *BeegoOutput) Reset(ctx *Context)

Reset initializes BeegoOutput

func (*BeegoOutput) ServeFormatted

func (output *BeegoOutput) ServeFormatted(data interface{}, hasIndent bool, hasEncode ...bool) error

ServeFormatted serves YAML, XML or JSON, depending on the value of the Accept header

func (*BeegoOutput) Session

func (output *BeegoOutput) Session(name interface{}, value interface{})

Session sets session item value with given key.

func (*BeegoOutput) SetStatus

func (output *BeegoOutput) SetStatus(status int)

SetStatus sets the response status code. Writes response header directly.

func (*BeegoOutput) XML

func (output *BeegoOutput) XML(data interface{}, hasIndent bool) error

XML writes xml string to the response body.

func (*BeegoOutput) YAML

func (output *BeegoOutput) YAML(data interface{}) error

YAML writes yaml to the response body.

type Context

type Context struct {
	Input          *BeegoInput
	Output         *BeegoOutput
	Request        *http.Request
	ResponseWriter *Response
	// contains filtered or unexported fields

Context Http request context struct including BeegoInput, BeegoOutput, http.Request and http.ResponseWriter. BeegoInput and BeegoOutput provides an api to operate request and response more easily.

func NewContext

func NewContext() *Context

NewContext return the Context with Input and Output

func (*Context) Abort

func (ctx *Context) Abort(status int, body string)

Abort stops the request. If beego.ErrorMaps exists, panic body.

func (*Context) Bind added in v2.0.2

func (ctx *Context) Bind(obj interface{}) error

func (*Context) BindForm added in v2.0.2

func (ctx *Context) BindForm(obj interface{}) error

BindForm will parse form values to struct via tag.

func (*Context) BindJSON added in v2.0.2

func (ctx *Context) BindJSON(obj interface{}) error

BindJSON only read data from http request body

func (*Context) BindProtobuf added in v2.0.2

func (ctx *Context) BindProtobuf(obj proto.Message) error

BindProtobuf only read data from http request body

func (*Context) BindXML added in v2.0.2

func (ctx *Context) BindXML(obj interface{}) error

BindXML only read data from http request body

func (*Context) BindYAML added in v2.0.2

func (ctx *Context) BindYAML(obj interface{}) error

BindYAML only read data from http request body

func (*Context) CheckXSRFCookie

func (ctx *Context) CheckXSRFCookie() bool

CheckXSRFCookie checks if the XSRF token in this request is valid or not. The token can be provided in the request header in the form "X-Xsrftoken" or "X-CsrfToken" or in form field value named as "_xsrf".

func (*Context) GetCookie

func (ctx *Context) GetCookie(key string) string

GetCookie gets a cookie from a request for a given key. (Alias of BeegoInput.Cookie)

func (*Context) GetSecureCookie

func (ctx *Context) GetSecureCookie(Secret, key string) (string, bool)

GetSecureCookie gets a secure cookie from a request for a given key.

func (*Context) JSONResp added in v2.0.2

func (ctx *Context) JSONResp(data interface{}) error

func (*Context) ProtoResp added in v2.0.2

func (ctx *Context) ProtoResp(data proto.Message) error

func (*Context) Redirect

func (ctx *Context) Redirect(status int, localurl string)

Redirect redirects to localurl with http header status code.

func (*Context) RenderMethodResult

func (ctx *Context) RenderMethodResult(result interface{})

RenderMethodResult renders the return value of a controller method to the output

func (*Context) Reset

func (ctx *Context) Reset(rw http.ResponseWriter, r *http.Request)

Reset initializes Context, BeegoInput and BeegoOutput

func (*Context) Resp added in v2.0.2

func (ctx *Context) Resp(data interface{}) error

Resp sends response based on the Accept Header By default response will be in JSON

func (*Context) Session added in v2.0.2

func (ctx *Context) Session() (store session.Store, err error)

Session return session store of this context of request

func (*Context) SetCookie

func (ctx *Context) SetCookie(name string, value string, others ...interface{})

SetCookie sets a cookie for a response. (Alias of BeegoOutput.Cookie)

func (*Context) SetSecureCookie

func (ctx *Context) SetSecureCookie(Secret, name, value string, others ...interface{})

SetSecureCookie sets a secure cookie for a response.

func (*Context) WriteString

func (ctx *Context) WriteString(content string)

WriteString writes a string to response body.

func (*Context) XMLResp added in v2.0.2

func (ctx *Context) XMLResp(data interface{}) error

func (*Context) XSRFToken

func (ctx *Context) XSRFToken(key string, expire int64) string

XSRFToken creates and returns an xsrf token string

func (*Context) YamlResp added in v2.0.2

func (ctx *Context) YamlResp(data interface{}) error

type Renderer

type Renderer interface {
	Render(ctx *Context)

Renderer defines a http response renderer

type Response

type Response struct {
	Started bool
	Status  int
	Elapsed time.Duration

Response is a wrapper for the http.ResponseWriter Started: if true, response was already written to so the other handler will not be executed

func (*Response) CloseNotify

func (r *Response) CloseNotify() <-chan bool

CloseNotify http.CloseNotifier

func (*Response) Flush

func (r *Response) Flush()

Flush http.Flusher

func (*Response) Hijack

func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error)

Hijack hijacker for http

func (*Response) Pusher

func (r *Response) Pusher() (pusher http.Pusher)

Pusher http.Pusher

func (*Response) Write

func (r *Response) Write(p []byte) (int, error)

Write writes the data to the connection as part of a HTTP reply, and sets `Started` to true. Started: if true, the response was already sent

func (*Response) WriteHeader

func (r *Response) WriteHeader(code int)

WriteHeader sends a HTTP response header with status code, and sets `Started` to true.

type StatusCode

type StatusCode int

StatusCode sets the HTTP response status code

const (
	// BadRequest indicates HTTP error 400
	BadRequest StatusCode = http.StatusBadRequest

	// NotFound indicates HTTP error 404
	NotFound StatusCode = http.StatusNotFound

func (StatusCode) Error

func (s StatusCode) Error() string

func (StatusCode) Render

func (s StatusCode) Render(ctx *Context)

Render sets the HTTP status code


Path Synopsis

Jump to

Keyboard shortcuts

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