context

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Tree

func Tree() *node

Types

type App

type App struct {
	Requests []Path

	Middlewares Handlers
	Prefix      string
	// contains filtered or unexported fields
}

App is the key struct of the package. App as a member of plugin entity contains the request and the corresponding handler. Prefix is the url prefix and MiddlewareList is for control flow.

func NewApp

func NewApp() *App

NewApp return an empty app.

func (*App) ANY

func (app *App) ANY(url string, handler ...Handler)

Any registers a route that matches all the HTTP methods. GET, POST, PUT, HEAD, OPTIONS, DELETE.

func (*App) AppendReqAndResp

func (app *App) AppendReqAndResp(url, method string, handler []Handler)

AppendReqAndResp stores the request info and handle into app. support the route parameter. The route parameter will be recognized as wildcard store into the RegUrl of Path struct. For example:

/user/:id      => /user/(.*)
/user/:id/info => /user/(.*?)/info

The RegUrl will be used to recognize the incoming path and find the handler.

func (*App) DELETE

func (app *App) DELETE(url string, handler ...Handler)

DELETE is a shortcut for app.AppendReqAndResp(url, "delete", handler).

func (*App) Find

func (app *App) Find(url, method string) []Handler

Find is public helper method for findPath of tree.

func (*App) GET

func (app *App) GET(url string, handler ...Handler)

GET is a shortcut for app.AppendReqAndResp(url, "get", handler).

func (*App) Group

func (app *App) Group(prefix string, middleware ...Handler) *RouterGroup

Group add middlewares and prefix for App.

func (*App) HEAD

func (app *App) HEAD(url string, handler ...Handler)

HEAD is a shortcut for app.AppendReqAndResp(url, "head", handler).

func (*App) OPTIONS

func (app *App) OPTIONS(url string, handler ...Handler)

OPTIONS is a shortcut for app.AppendReqAndResp(url, "options", handler).

func (*App) POST

func (app *App) POST(url string, handler ...Handler)

POST is a shortcut for app.AppendReqAndResp(url, "post", handler).

func (*App) PUT

func (app *App) PUT(url string, handler ...Handler)

PUT is a shortcut for app.AppendReqAndResp(url, "put", handler).

type Context

type Context struct {
	Request   *http.Request
	Response  *http.Response
	UserValue map[string]interface{}
	// contains filtered or unexported fields
}

Context is the simplify version of web framework context. But it is important which will be used in plugins to custom the request and response. And adapter will help to transform the Context to the web framework`s context. It has three attributes. Request and response are belongs to net/http package. UserValue is the custom key-value store of context.

func NewContext

func NewContext(req *http.Request) *Context

NewContext used in adapter which return a Context with request and slice of UserValue and a default Response.

func (*Context) Abort added in v0.0.5

func (ctx *Context) Abort()

Abort abort the context.

func (*Context) AddHeader added in v0.0.4

func (ctx *Context) AddHeader(key, value string)

AddHeader adds the key, value pair to the header.

func (*Context) Data added in v0.0.11

func (ctx *Context) Data(code int, contentType string, data []byte)

Data writes some data into the body stream and updates the HTTP code.

func (*Context) FormValue added in v0.0.4

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

FormValue get the value of request form key.

func (*Context) Headers added in v0.0.4

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

Headers get the value of request headers key.

func (*Context) Html added in v0.0.4

func (ctx *Context) Html(code int, body string)

Html output html response.

func (*Context) Json

func (ctx *Context) Json(code int, Body map[string]interface{})

Json serializes the given struct as JSON into the response body. It also sets the Content-Type as "application/json".

func (*Context) LocalIP

func (ctx *Context) LocalIP() string

LocalIP return the request client ip.

func (*Context) Method

func (ctx *Context) Method() string

Method return the request method.

func (*Context) Next added in v0.0.5

func (ctx *Context) Next()

Next should be used only inside middleware.

func (*Context) Path

func (ctx *Context) Path() string

Path return the url path.

func (*Context) Query added in v0.0.4

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

Query get the query parameter of url.

func (*Context) QueryDefault added in v0.0.4

func (ctx *Context) QueryDefault(key, def string) string

QueryDefault get the query parameter of url. If it is empty, return the default.

func (*Context) SetContentType

func (ctx *Context) SetContentType(contentType string)

SetStatusCode save the given content type header into the response header.

func (*Context) SetCookie

func (ctx *Context) SetCookie(cookie *http.Cookie)

SetCookie save the given cookie obj into the response Set-Cookie header.

func (*Context) SetHandlers added in v0.0.5

func (ctx *Context) SetHandlers(handlers Handlers) *Context

Next should be used only inside middleware.

func (*Context) SetHeader added in v0.0.11

func (ctx *Context) SetHeader(key, value string)

SetHeader set the key, value pair to the header.

func (*Context) SetStatusCode

func (ctx *Context) SetStatusCode(code int)

SetStatusCode save the given status code into the response.

func (*Context) SetUserValue

func (ctx *Context) SetUserValue(key string, value interface{})

SetUserValue set the value of user context.

func (*Context) User added in v0.0.4

func (ctx *Context) User() interface{}

User return the current login user.

func (*Context) Write

func (ctx *Context) Write(code int, Header map[string]string, Body string)

Write save the given status code, header and body string into the response.

func (*Context) WriteString

func (ctx *Context) WriteString(Body string)

Write save the given body string into the response.

type Handler

type Handler func(ctx *Context)

type Handlers added in v0.0.5

type Handlers []Handler

type Path

type Path struct {
	URL    string
	Method string
}

Path is used in the matching of request and response. URL stores the raw register url. RegUrl contains the wildcard which on behalf of the route params.

type RouterGroup added in v0.0.5

type RouterGroup struct {
	Middlewares Handlers
	Prefix      string
	// contains filtered or unexported fields
}

RouterGroup is a group of routes.

func (*RouterGroup) ANY added in v0.0.5

func (g *RouterGroup) ANY(url string, handler ...Handler)

Any registers a route that matches all the HTTP methods. GET, POST, PUT, HEAD, OPTIONS, DELETE.

func (*RouterGroup) AppendReqAndResp added in v0.0.5

func (g *RouterGroup) AppendReqAndResp(url, method string, handler []Handler)

AppendReqAndResp stores the request info and handle into app. support the route parameter. The route parameter will be recognized as wildcard store into the RegUrl of Path struct. For example:

/user/:id      => /user/(.*)
/user/:id/info => /user/(.*?)/info

The RegUrl will be used to recognize the incoming path and find the handler.

func (*RouterGroup) DELETE added in v0.0.5

func (g *RouterGroup) DELETE(url string, handler ...Handler)

DELETE is a shortcut for app.AppendReqAndResp(url, "delete", handler).

func (*RouterGroup) GET added in v0.0.5

func (g *RouterGroup) GET(url string, handler ...Handler)

GET is a shortcut for app.AppendReqAndResp(url, "get", handler).

func (*RouterGroup) Group added in v0.0.5

func (g *RouterGroup) Group(prefix string, middleware ...Handler) *RouterGroup

Group add middlewares and prefix for App.

func (*RouterGroup) HEAD added in v0.0.5

func (g *RouterGroup) HEAD(url string, handler ...Handler)

HEAD is a shortcut for app.AppendReqAndResp(url, "head", handler).

func (*RouterGroup) OPTIONS added in v0.0.5

func (g *RouterGroup) OPTIONS(url string, handler ...Handler)

OPTIONS is a shortcut for app.AppendReqAndResp(url, "options", handler).

func (*RouterGroup) POST added in v0.0.5

func (g *RouterGroup) POST(url string, handler ...Handler)

POST is a shortcut for app.AppendReqAndResp(url, "post", handler).

func (*RouterGroup) PUT added in v0.0.5

func (g *RouterGroup) PUT(url string, handler ...Handler)

PUT is a shortcut for app.AppendReqAndResp(url, "put", handler).

Jump to

Keyboard shortcuts

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