gf: github.com/gogf/gf/net/ghttp Index | Files

package ghttp

import "github.com/gogf/gf/net/ghttp"

Package ghttp provides powerful http server and simple client implements.

Index

Package Files

ghttp.go ghttp_client_api.go ghttp_client_bytes.go ghttp_client_chain.go ghttp_client_config.go ghttp_client_content.go ghttp_client_request.go ghttp_client_response.go ghttp_controller.go ghttp_func.go ghttp_request.go ghttp_request_auth.go ghttp_request_body.go ghttp_request_middleware.go ghttp_request_param.go ghttp_request_param_ctx.go ghttp_request_param_file.go ghttp_request_param_form.go ghttp_request_param_page.go ghttp_request_param_param.go ghttp_request_param_post.go ghttp_request_param_query.go ghttp_request_param_request.go ghttp_request_param_router.go ghttp_request_view.go ghttp_response.go ghttp_response_cors.go ghttp_response_view.go ghttp_response_write.go ghttp_response_writer.go ghttp_server.go ghttp_server_admin.go ghttp_server_admin_process.go ghttp_server_admin_unix.go ghttp_server_config.go ghttp_server_config_cookie.go ghttp_server_config_logging.go ghttp_server_config_mess.go ghttp_server_config_route.go ghttp_server_config_session.go ghttp_server_config_static.go ghttp_server_cookie.go ghttp_server_domain.go ghttp_server_error_logger.go ghttp_server_graceful.go ghttp_server_handler.go ghttp_server_log.go ghttp_server_plugin.go ghttp_server_pprof.go ghttp_server_router.go ghttp_server_router_group.go ghttp_server_router_hook.go ghttp_server_router_middleware.go ghttp_server_router_serve.go ghttp_server_service_controller.go ghttp_server_service_handler.go ghttp_server_service_object.go ghttp_server_session.go ghttp_server_status.go ghttp_server_websocket.go

Constants

const (
    SERVER_STATUS_STOPPED = 0
    SERVER_STATUS_RUNNING = 1
    HOOK_BEFORE_SERVE     = "HOOK_BEFORE_SERVE"
    HOOK_AFTER_SERVE      = "HOOK_AFTER_SERVE"
    HOOK_BEFORE_OUTPUT    = "HOOK_BEFORE_OUTPUT"
    HOOK_AFTER_OUTPUT     = "HOOK_AFTER_OUTPUT"
    HTTP_METHODS          = "GET,PUT,POST,DELETE,PATCH,HEAD,CONNECT,OPTIONS,TRACE"
)
const (
    URI_TYPE_DEFAULT  = 0 // Method name to URI converting type, which converts name to its lower case and joins the words using char '-'.
    URI_TYPE_FULLNAME = 1 // Method name to URI converting type, which does no converting to the method name.
    URI_TYPE_ALLLOWER = 2 // Method name to URI converting type, which converts name to its lower case.
    URI_TYPE_CAMEL    = 3 // Method name to URI converting type, which converts name to its camel case.
)
const (
    // TextMessage denotes a text data message. The text message payload is
    // interpreted as UTF-8 encoded text data.
    WS_MSG_TEXT = websocket.TextMessage

    // BinaryMessage denotes a binary data message.
    WS_MSG_BINARY = websocket.BinaryMessage

    // CloseMessage denotes a close control message. The optional message
    // payload contains a numeric code and text. Use the FormatCloseMessage
    // function to format a close message payload.
    WS_MSG_CLOSE = websocket.CloseMessage

    // PingMessage denotes a ping control message. The optional message payload
    // is UTF-8 encoded text.
    WS_MSG_PING = websocket.PingMessage

    // PongMessage denotes a pong control message. The optional message payload
    // is UTF-8 encoded text.
    WS_MSG_PONG = websocket.PongMessage
)

func BuildParams Uses

func BuildParams(params interface{}, noUrlEncode ...bool) (encodedParamStr string)

BuildParams builds the request string for the http client. The <params> can be type of: string/[]byte/map/struct/*struct.

The optional parameter <noUrlEncode> specifies whether ignore the url encoding for the data.

func ConnectBytes Uses

func ConnectBytes(url string, data ...interface{}) []byte

ConnectBytes is a convenience method for sending CONNECT request, which retrieves and returns the result content as bytes and automatically closes response object.

func ConnectContent Uses

func ConnectContent(url string, data ...interface{}) string

ConnectContent is a convenience method for sending CONNECT request, which retrieves and returns the result content and automatically closes response object.

func DeleteBytes Uses

func DeleteBytes(url string, data ...interface{}) []byte

DeleteBytes is a convenience method for sending DELETE request, which retrieves and returns the result content as bytes and automatically closes response object.

func DeleteContent Uses

func DeleteContent(url string, data ...interface{}) string

DeleteContent is a convenience method for sending DELETE request, which retrieves and returns the result content and automatically closes response object.

func GetBytes Uses

func GetBytes(url string, data ...interface{}) []byte

GetBytes is a convenience method for sending GET request, which retrieves and returns the result content as bytes and automatically closes response object.

func GetContent Uses

func GetContent(url string, data ...interface{}) string

GetContent is a convenience method for sending GET request, which retrieves and returns the result content and automatically closes response object.

func HeadBytes Uses

func HeadBytes(url string, data ...interface{}) []byte

HeadBytes is a convenience method for sending HEAD request, which retrieves and returns the result content as bytes and automatically closes response object.

func HeadContent Uses

func HeadContent(url string, data ...interface{}) string

HeadContent is a convenience method for sending HEAD request, which retrieves and returns the result content and automatically closes response object.

func IsExitError Uses

func IsExitError(err interface{}) bool

主要用于开发者在HTTP处理中自定义异常捕获时,判断捕获的异常是否Server抛出的自定义退出异常

func OptionsBytes Uses

func OptionsBytes(url string, data ...interface{}) []byte

OptionsBytes is a convenience method for sending OPTIONS request, which retrieves and returns the result content as bytes and automatically closes response object.

func OptionsContent Uses

func OptionsContent(url string, data ...interface{}) string

OptionsContent is a convenience method for sending OPTIONS request, which retrieves and returns the result content and automatically closes response object.

func PatchBytes Uses

func PatchBytes(url string, data ...interface{}) []byte

PatchBytes is a convenience method for sending PATCH request, which retrieves and returns the result content as bytes and automatically closes response object.

func PatchContent Uses

func PatchContent(url string, data ...interface{}) string

PatchContent is a convenience method for sending PATCH request, which retrieves and returns the result content and automatically closes response object.

func PostBytes Uses

func PostBytes(url string, data ...interface{}) []byte

PostBytes is a convenience method for sending POST request, which retrieves and returns the result content as bytes and automatically closes response object.

func PostContent Uses

func PostContent(url string, data ...interface{}) string

PostContent is a convenience method for sending POST request, which retrieves and returns the result content and automatically closes response object.

func PutBytes Uses

func PutBytes(url string, data ...interface{}) []byte

PutBytes is a convenience method for sending PUT request, which retrieves and returns the result content as bytes and automatically closes response object.

func PutContent Uses

func PutContent(url string, data ...interface{}) string

PutContent is a convenience method for sending PUT request, which retrieves and returns the result content and automatically closes response object.

func RequestBytes Uses

func RequestBytes(method string, url string, data ...interface{}) []byte

RequestBytes is a convenience method for sending custom http method request, which retrieves and returns the result content as bytes and automatically closes response object.

func RequestContent Uses

func RequestContent(method string, url string, data ...interface{}) string

RequestContent is a convenience method for sending custom http method request, which retrieves and returns the result content and automatically closes response object.

func RestartAllServer Uses

func RestartAllServer(newExeFilePath ...string) error

重启Web Server,参数支持自定义重启的可执行文件路径,不传递时默认和原有可执行文件路径一致。 针对*niux系统: 平滑重启 针对windows : 完整重启

func SetGraceful Uses

func SetGraceful(enabled bool)

是否开启平滑重启特性

func ShutdownAllServer Uses

func ShutdownAllServer() error

关闭所有的WebServer

func TraceBytes Uses

func TraceBytes(url string, data ...interface{}) []byte

TraceBytes is a convenience method for sending TRACE request, which retrieves and returns the result content as bytes and automatically closes response object.

func TraceContent Uses

func TraceContent(url string, data ...interface{}) string

TraceContent is a convenience method for sending TRACE request, which retrieves and returns the result content and automatically closes response object.

func Wait Uses

func Wait()

Wait blocks to wait for all servers done. It's commonly used in multiple servers situation.

type BodyReadCloser Uses

type BodyReadCloser struct {
    *bytes.Reader
}

BodyReadCloser implements the io.ReadCloser interface which is used for reading request body content multiple times.

func (*BodyReadCloser) Close Uses

func (b *BodyReadCloser) Close() error

Close implements the io.ReadCloser interface.

type CORSOptions Uses

type CORSOptions struct {
    AllowDomain      []string // Used for allowing requests from custom domains
    AllowOrigin      string   // Access-Control-Allow-Origin
    AllowCredentials string   // Access-Control-Allow-Credentials
    ExposeHeaders    string   // Access-Control-Expose-Headers
    MaxAge           int      // Access-Control-Max-Age
    AllowMethods     string   // Access-Control-Allow-Methods
    AllowHeaders     string   // Access-Control-Allow-Headers
}

CORSOptions is the options for CORS feature. See https://www.w3.org/TR/cors/ .

type Client Uses

type Client struct {
    http.Client // Underlying HTTP Client.
    // contains filtered or unexported fields
}

Client is the HTTP client for HTTP request management.

func NewClient Uses

func NewClient() *Client

NewClient creates and returns a new HTTP client object.

func (*Client) BasicAuth Uses

func (c *Client) BasicAuth(user, pass string) *Client

BasicAuth is a chaining function, which sets HTTP basic authentication information for next request.

func (*Client) Clone Uses

func (c *Client) Clone() *Client

Clone clones current client and returns a new one.

func (*Client) Connect Uses

func (c *Client) Connect(url string, data ...interface{}) (*ClientResponse, error)

Connect send CONNECT request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) ConnectBytes Uses

func (c *Client) ConnectBytes(url string, data ...interface{}) []byte

ConnectBytes sends a CONNECT request, retrieves and returns the result content as bytes.

func (*Client) ConnectContent Uses

func (c *Client) ConnectContent(url string, data ...interface{}) string

ConnectContent is a convenience method for sending CONNECT request, which retrieves and returns the result content and automatically closes response object.

func (*Client) ContentJson Uses

func (c *Client) ContentJson() *Client

ContentJson is a chaining function, which sets the HTTP content type as "application/json" for the next request.

Note that it also checks and encodes the parameter to JSON format automatically.

func (*Client) ContentType Uses

func (c *Client) ContentType(contentType string) *Client

ContentType is a chaining function, which sets HTTP content type for the next request.

func (*Client) ContentXml Uses

func (c *Client) ContentXml() *Client

ContentXml is a chaining function, which sets the HTTP content type as "application/xml" for the next request.

Note that it also checks and encodes the parameter to XML format automatically.

func (*Client) Cookie Uses

func (c *Client) Cookie(m map[string]string) *Client

Cookie is a chaining function, which sets cookie items with map for next request.

func (*Client) Ctx Uses

func (c *Client) Ctx(ctx context.Context) *Client

Ctx is a chaining function, which sets context for next request of this client.

func (*Client) Delete Uses

func (c *Client) Delete(url string, data ...interface{}) (*ClientResponse, error)

Delete send DELETE request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) DeleteBytes Uses

func (c *Client) DeleteBytes(url string, data ...interface{}) []byte

DeleteBytes sends a DELETE request, retrieves and returns the result content as bytes.

func (*Client) DeleteContent Uses

func (c *Client) DeleteContent(url string, data ...interface{}) string

DeleteContent is a convenience method for sending DELETE request, which retrieves and returns the result content and automatically closes response object.

func (*Client) DoRequest Uses

func (c *Client) DoRequest(method, url string, data ...interface{}) (resp *ClientResponse, err error)

DoRequest sends request with given HTTP method and data and returns the response object. Note that the response object MUST be closed if it'll be never used.

Note that it uses "multipart/form-data" as its Content-Type if it contains file uploading, else it uses "application/x-www-form-urlencoded". It also automatically detects the post content for JSON format, and for that it automatically sets the Content-Type as "application/json".

func (*Client) Get Uses

func (c *Client) Get(url string, data ...interface{}) (*ClientResponse, error)

Get send GET request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) GetBytes Uses

func (c *Client) GetBytes(url string, data ...interface{}) []byte

GetBytes sends a GET request, retrieves and returns the result content as bytes.

func (*Client) GetContent Uses

func (c *Client) GetContent(url string, data ...interface{}) string

GetContent is a convenience method for sending GET request, which retrieves and returns the result content and automatically closes response object.

func (*Client) Head Uses

func (c *Client) Head(url string, data ...interface{}) (*ClientResponse, error)

Head send HEAD request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) HeadBytes Uses

func (c *Client) HeadBytes(url string, data ...interface{}) []byte

HeadBytes sends a HEAD request, retrieves and returns the result content as bytes.

func (*Client) HeadContent Uses

func (c *Client) HeadContent(url string, data ...interface{}) string

HeadContent is a convenience method for sending HEAD request, which retrieves and returns the result content and automatically closes response object.

func (*Client) Header Uses

func (c *Client) Header(m map[string]string) *Client

Header is a chaining function, which sets custom HTTP headers with map for next request.

func (*Client) HeaderRaw Uses

func (c *Client) HeaderRaw(headers string) *Client

Header is a chaining function, which sets custom HTTP header using raw string for next request.

func (*Client) Options Uses

func (c *Client) Options(url string, data ...interface{}) (*ClientResponse, error)

Options send OPTIONS request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) OptionsBytes Uses

func (c *Client) OptionsBytes(url string, data ...interface{}) []byte

OptionsBytes sends a OPTIONS request, retrieves and returns the result content as bytes.

func (*Client) OptionsContent Uses

func (c *Client) OptionsContent(url string, data ...interface{}) string

OptionsContent is a convenience method for sending OPTIONS request, which retrieves and returns the result content and automatically closes response object.

func (*Client) Patch Uses

func (c *Client) Patch(url string, data ...interface{}) (*ClientResponse, error)

Patch send PATCH request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) PatchBytes Uses

func (c *Client) PatchBytes(url string, data ...interface{}) []byte

PatchBytes sends a PATCH request, retrieves and returns the result content as bytes.

func (*Client) PatchContent Uses

func (c *Client) PatchContent(url string, data ...interface{}) string

PatchContent is a convenience method for sending PATCH request, which retrieves and returns the result content and automatically closes response object.

func (*Client) Post Uses

func (c *Client) Post(url string, data ...interface{}) (*ClientResponse, error)

Post sends request using HTTP method POST and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) PostBytes Uses

func (c *Client) PostBytes(url string, data ...interface{}) []byte

PostBytes sends a POST request, retrieves and returns the result content as bytes.

func (*Client) PostContent Uses

func (c *Client) PostContent(url string, data ...interface{}) string

PostContent is a convenience method for sending POST request, which retrieves and returns the result content and automatically closes response object.

func (*Client) Prefix Uses

func (c *Client) Prefix(prefix string) *Client

Prefix is a chaining function, which sets the URL prefix for next request of this client.

func (*Client) Put Uses

func (c *Client) Put(url string, data ...interface{}) (*ClientResponse, error)

Put send PUT request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) PutBytes Uses

func (c *Client) PutBytes(url string, data ...interface{}) []byte

PutBytes sends a PUT request, retrieves and returns the result content as bytes.

func (*Client) PutContent Uses

func (c *Client) PutContent(url string, data ...interface{}) string

PutContent is a convenience method for sending PUT request, which retrieves and returns the result content and automatically closes response object.

func (*Client) RequestBytes Uses

func (c *Client) RequestBytes(method string, url string, data ...interface{}) []byte

RequestBytes sends request using given HTTP method and data, retrieves returns the result as bytes. It reads and closes the response object internally automatically.

func (*Client) RequestContent Uses

func (c *Client) RequestContent(method string, url string, data ...interface{}) string

RequestContent is a convenience method for sending custom http method request, which retrieves and returns the result content and automatically closes response object.

func (*Client) SetBasicAuth Uses

func (c *Client) SetBasicAuth(user, pass string) *Client

SetBasicAuth sets HTTP basic authentication information for the client.

func (*Client) SetBrowserMode Uses

func (c *Client) SetBrowserMode(enabled bool) *Client

SetBrowserMode enables browser mode of the client. When browser mode is enabled, it automatically saves and sends cookie content from and to server.

func (*Client) SetContentType Uses

func (c *Client) SetContentType(contentType string) *Client

SetContentType sets HTTP content type for the client.

func (*Client) SetCookie Uses

func (c *Client) SetCookie(key, value string) *Client

SetCookie sets a cookie pair for the client.

func (*Client) SetCookieMap Uses

func (c *Client) SetCookieMap(m map[string]string) *Client

SetCookieMap sets cookie items with map.

func (*Client) SetCtx Uses

func (c *Client) SetCtx(ctx context.Context) *Client

SetCtx sets context for each request of this client.

func (*Client) SetHeader Uses

func (c *Client) SetHeader(key, value string) *Client

SetHeader sets a custom HTTP header pair for the client.

func (*Client) SetHeaderMap Uses

func (c *Client) SetHeaderMap(m map[string]string) *Client

SetHeaderMap sets custom HTTP headers with map.

func (*Client) SetHeaderRaw Uses

func (c *Client) SetHeaderRaw(headers string) *Client

SetHeaderRaw sets custom HTTP header using raw string.

func (*Client) SetPrefix Uses

func (c *Client) SetPrefix(prefix string) *Client

SetPrefix sets the request server URL prefix.

func (*Client) SetRetry Uses

func (c *Client) SetRetry(retryCount int, retryInterval int) *Client

SetRetry sets retry count and interval.

func (*Client) SetTimeout Uses

func (c *Client) SetTimeout(t time.Duration) *Client

SetTimeOut sets the request timeout for the client.

func (*Client) Timeout Uses

func (c *Client) Timeout(t time.Duration) *Client

TimeOut is a chaining function, which sets the timeout for next request.

func (*Client) Trace Uses

func (c *Client) Trace(url string, data ...interface{}) (*ClientResponse, error)

Trace send TRACE request and returns the response object. Note that the response object MUST be closed if it'll be never used.

func (*Client) TraceBytes Uses

func (c *Client) TraceBytes(url string, data ...interface{}) []byte

TraceBytes sends a TRACE request, retrieves and returns the result content as bytes.

func (*Client) TraceContent Uses

func (c *Client) TraceContent(url string, data ...interface{}) string

TraceContent is a convenience method for sending TRACE request, which retrieves and returns the result content and automatically closes response object.

type ClientResponse Uses

type ClientResponse struct {
    *http.Response
    // contains filtered or unexported fields
}

ClientResponse is the struct for client request response.

func Connect Uses

func Connect(url string, data ...interface{}) (*ClientResponse, error)

Connect is a convenience method for sending CONNECT request. NOTE that remembers CLOSING the response object when it'll never be used.

func Delete Uses

func Delete(url string, data ...interface{}) (*ClientResponse, error)

Delete is a convenience method for sending DELETE request. NOTE that remembers CLOSING the response object when it'll never be used.

func DoRequest Uses

func DoRequest(method, url string, data ...interface{}) (*ClientResponse, error)

DoRequest is a convenience method for sending custom http method request. NOTE that remembers CLOSING the response object when it'll never be used.

func Get Uses

func Get(url string, data ...interface{}) (*ClientResponse, error)

Get is a convenience method for sending GET request. NOTE that remembers CLOSING the response object when it'll never be used.

func Head(url string, data ...interface{}) (*ClientResponse, error)

Head is a convenience method for sending HEAD request. NOTE that remembers CLOSING the response object when it'll never be used.

func Options Uses

func Options(url string, data ...interface{}) (*ClientResponse, error)

Options is a convenience method for sending OPTIONS request. NOTE that remembers CLOSING the response object when it'll never be used.

func Patch Uses

func Patch(url string, data ...interface{}) (*ClientResponse, error)

Patch is a convenience method for sending PATCH request. NOTE that remembers CLOSING the response object when it'll never be used.

func Post Uses

func Post(url string, data ...interface{}) (*ClientResponse, error)

Post is a convenience method for sending POST request. NOTE that remembers CLOSING the response object when it'll never be used.

func Put Uses

func Put(url string, data ...interface{}) (*ClientResponse, error)

Put is a convenience method for sending PUT request. NOTE that remembers CLOSING the response object when it'll never be used.

func Trace Uses

func Trace(url string, data ...interface{}) (*ClientResponse, error)

Trace is a convenience method for sending TRACE request. NOTE that remembers CLOSING the response object when it'll never be used.

func (*ClientResponse) Close Uses

func (r *ClientResponse) Close() error

Close closes the response when it will never be used.

func (*ClientResponse) GetCookie Uses

func (r *ClientResponse) GetCookie(key string) string

GetCookie retrieves and returns the cookie value of specified <key>.

func (*ClientResponse) GetCookieMap Uses

func (r *ClientResponse) GetCookieMap() map[string]string

GetCookieMap retrieves and returns a copy of current cookie values map.

func (*ClientResponse) ReadAll Uses

func (r *ClientResponse) ReadAll() []byte

ReadAll retrieves and returns the response content as []byte.

func (*ClientResponse) ReadAllString Uses

func (r *ClientResponse) ReadAllString() string

ReadAllString retrieves and returns the response content as string.

type Controller Uses

type Controller interface {
    Init(*Request)
    Shut()
}

Controller is the base struct for controller.

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

COOKIE对象,非并发安全。

func GetCookie Uses

func GetCookie(r *Request) *Cookie

获取或者创建一个COOKIE对象,与传入的请求对应(延迟初始化)

func (*Cookie) Contains Uses

func (c *Cookie) Contains(key string) bool

判断Cookie中是否存在制定键名(并且没有过期)

func (*Cookie) Get Uses

func (c *Cookie) Get(key string, def ...string) string

查询cookie

func (*Cookie) GetSessionId Uses

func (c *Cookie) GetSessionId() string

获得客户端提交的SessionId

func (*Cookie) Map Uses

func (c *Cookie) Map() map[string]string

获取所有的Cookie并构造成map[string]string返回.

func (*Cookie) Output Uses

func (c *Cookie) Output()

输出到客户端

func (*Cookie) Remove Uses

func (c *Cookie) Remove(key string)

删除COOKIE,使用默认的domain&path

func (*Cookie) RemoveCookie Uses

func (c *Cookie) RemoveCookie(key, domain, path string)

标记该cookie在对应的域名和路径失效 删除cookie的重点是需要通知浏览器客户端cookie已过期

func (*Cookie) Set Uses

func (c *Cookie) Set(key, value string)

设置cookie,使用默认参数

func (*Cookie) SetCookie Uses

func (c *Cookie) SetCookie(key, value, domain, path string, maxAge time.Duration, httpOnly ...bool)

设置cookie,带详细cookie参数

func (*Cookie) SetSessionId Uses

func (c *Cookie) SetSessionId(id string)

设置SessionId到Cookie中

type CookieItem Uses

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

cookie项

type Domain Uses

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

域名管理器对象

func (*Domain) BindController Uses

func (d *Domain) BindController(pattern string, c Controller, methods ...string)

func (*Domain) BindControllerMethod Uses

func (d *Domain) BindControllerMethod(pattern string, c Controller, method string)

func (*Domain) BindControllerRest Uses

func (d *Domain) BindControllerRest(pattern string, c Controller)

func (*Domain) BindHandler Uses

func (d *Domain) BindHandler(pattern string, handler HandlerFunc)

func (*Domain) BindHookHandler Uses

func (d *Domain) BindHookHandler(pattern string, hook string, handler HandlerFunc)

func (*Domain) BindHookHandlerByMap Uses

func (d *Domain) BindHookHandlerByMap(pattern string, hookmap map[string]HandlerFunc)

func (*Domain) BindMiddleware Uses

func (d *Domain) BindMiddleware(pattern string, handlers ...HandlerFunc)

func (*Domain) BindMiddlewareDefault Uses

func (d *Domain) BindMiddlewareDefault(handlers ...HandlerFunc)

func (*Domain) BindObject Uses

func (d *Domain) BindObject(pattern string, obj interface{}, methods ...string)

func (*Domain) BindObjectMethod Uses

func (d *Domain) BindObjectMethod(pattern string, obj interface{}, method string)

func (*Domain) BindObjectRest Uses

func (d *Domain) BindObjectRest(pattern string, obj interface{})

func (*Domain) BindStatusHandler Uses

func (d *Domain) BindStatusHandler(status int, handler HandlerFunc)

func (*Domain) BindStatusHandlerByMap Uses

func (d *Domain) BindStatusHandlerByMap(handlerMap map[int]HandlerFunc)

func (*Domain) Group Uses

func (d *Domain) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup

Group creates and returns a RouterGroup object, which is bound to a specified domain.

func (*Domain) Use Uses

func (d *Domain) Use(handlers ...HandlerFunc)

type GroupItem Uses

type GroupItem = []interface{}

GroupItem is item for router group.

type HandlerFunc Uses

type HandlerFunc = func(r *Request)

Request handler function.

type Middleware Uses

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

Middleware is the plugin for request workflow management.

func (*Middleware) Next Uses

func (m *Middleware) Next()

Next calls the next workflow handler. It's an important function controlling the workflow of the server request execution.

type Plugin Uses

type Plugin interface {
    Name() string            // Name returns the name of the plugin.
    Author() string          // Author returns the author of the plugin.
    Version() string         // Version returns the version of the plugin, like "v1.0.0".
    Description() string     // Description returns the description of the plugin.
    Install(s *Server) error // Install installs the plugin before server starts.
    Remove() error           // Remove removes the plugin.
}

Plugin is the interface for server plugin.

type Request Uses

type Request struct {
    *http.Request
    Server     *Server           // Server.
    Cookie     *Cookie           // Cookie.
    Session    *gsession.Session // Session.
    Response   *Response         // Corresponding Response of this request.
    Router     *Router           // Matched Router for this request. Note that it's not available in HOOK handler.
    EnterTime  int64             // Request starting time in microseconds.
    LeaveTime  int64             // Request ending time in microseconds.
    Middleware *Middleware       // Middleware manager.
    StaticFile *StaticFile       // Static file object for static file serving.
    // contains filtered or unexported fields
}

Request is the context object for a request.

func (*Request) Assign Uses

func (r *Request) Assign(key string, value interface{})

Assign binds a template variable to current request.

func (*Request) Assigns Uses

func (r *Request) Assigns(data gview.Params)

Assigns binds multiple template variables to current request.

func (*Request) BasicAuth Uses

func (r *Request) BasicAuth(user, pass string, tips ...string) bool

BasicAuth enables the http basic authentication feature with given passport and password and asks client for authentication. It returns true if authentication success, else returns false if failure.

func (*Request) Context Uses

func (r *Request) Context() context.Context

Context is alias for function GetCtx. This function overwrites the http.Request.Context function. See GetCtx.

func (*Request) Exit Uses

func (r *Request) Exit()

Exit exits executing of current HTTP handler.

func (*Request) ExitAll Uses

func (r *Request) ExitAll()

ExitAll exits executing of current and following HTTP handlers.

func (*Request) ExitHook Uses

func (r *Request) ExitHook()

ExitHook exits executing of current and following HTTP HOOK handlers.

func (*Request) Get Uses

func (r *Request) Get(key string, def ...interface{}) interface{}

Get is alias of GetRequest, which is one of the most commonly used functions for retrieving parameter. See r.GetRequest.

func (*Request) GetArray Uses

func (r *Request) GetArray(key string, def ...interface{}) []string

GetArray is an alias and convenient function for GetRequestArray. See GetRequestArray.

func (*Request) GetBody Uses

func (r *Request) GetBody() []byte

GetBody retrieves and returns request body content as bytes. It can be called multiple times retrieving the same body content.

func (*Request) GetBodyString Uses

func (r *Request) GetBodyString() string

GetBodyString retrieves and returns request body content as string. It can be called multiple times retrieving the same body content.

func (*Request) GetBool Uses

func (r *Request) GetBool(key string, def ...interface{}) bool

GetBool is an alias and convenient function for GetRequestBool. See GetRequestBool.

func (*Request) GetClientIp Uses

func (r *Request) GetClientIp() string

GetClientIp returns the client ip of this request without port.

func (*Request) GetCtx Uses

func (r *Request) GetCtx() context.Context

GetCtx retrieves and returns the request's context.

func (*Request) GetCtxVar Uses

func (r *Request) GetCtxVar(key interface{}, def ...interface{}) *gvar.Var

GetCtxVar retrieves and returns a Var with given key name. The optional parameter <def> specifies the default value of the Var if given <key> does not exist in the context.

func (*Request) GetError Uses

func (r *Request) GetError() error

GetError returns the error occurs in the procedure of the request. It returns nil if there's no error.

func (*Request) GetFloat32 Uses

func (r *Request) GetFloat32(key string, def ...interface{}) float32

GetFloat32 is an alias and convenient function for GetRequestFloat32. See GetRequestFloat32.

func (*Request) GetFloat64 Uses

func (r *Request) GetFloat64(key string, def ...interface{}) float64

GetFloat64 is an alias and convenient function for GetRequestFloat64. See GetRequestFloat64.

func (*Request) GetFloats Uses

func (r *Request) GetFloats(key string, def ...interface{}) []float64

GetFloats is an alias and convenient function for GetRequestFloats. See GetRequestFloats.

func (*Request) GetForm Uses

func (r *Request) GetForm(key string, def ...interface{}) interface{}

GetForm retrieves and returns parameter <key> from form. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormArray Uses

func (r *Request) GetFormArray(key string, def ...interface{}) []string

GetFormArray retrieves and returns parameter <key> from form as []string. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormBool Uses

func (r *Request) GetFormBool(key string, def ...interface{}) bool

GetFormBool retrieves and returns parameter <key> from form as bool. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormFloat32 Uses

func (r *Request) GetFormFloat32(key string, def ...interface{}) float32

GetFormFloat32 retrieves and returns parameter <key> from form as float32. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormFloat64 Uses

func (r *Request) GetFormFloat64(key string, def ...interface{}) float64

GetFormFloat64 retrieves and returns parameter <key> from form as float64. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormFloats Uses

func (r *Request) GetFormFloats(key string, def ...interface{}) []float64

GetFormFloats retrieves and returns parameter <key> from form as []float64. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormInt Uses

func (r *Request) GetFormInt(key string, def ...interface{}) int

GetFormInt retrieves and returns parameter <key> from form as int. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormInt32 Uses

func (r *Request) GetFormInt32(key string, def ...interface{}) int32

GetFormInt32 retrieves and returns parameter <key> from form as int32. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormInt64 Uses

func (r *Request) GetFormInt64(key string, def ...interface{}) int64

GetFormInt64 retrieves and returns parameter <key> from form as int64. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormInterfaces Uses

func (r *Request) GetFormInterfaces(key string, def ...interface{}) []interface{}

GetFormInterfaces retrieves and returns parameter <key> from form as []interface{}. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormInts Uses

func (r *Request) GetFormInts(key string, def ...interface{}) []int

GetFormInts retrieves and returns parameter <key> from form as []int. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormMap Uses

func (r *Request) GetFormMap(kvMap ...map[string]interface{}) map[string]interface{}

GetFormMap retrieves and returns all form parameters passed from client as map. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetFormMapStrStr Uses

func (r *Request) GetFormMapStrStr(kvMap ...map[string]interface{}) map[string]string

GetFormMapStrStr retrieves and returns all form parameters passed from client as map[string]string. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetFormMapStrVar Uses

func (r *Request) GetFormMapStrVar(kvMap ...map[string]interface{}) map[string]*gvar.Var

GetFormMapStrVar retrieves and returns all form parameters passed from client as map[string]*gvar.Var. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetFormString Uses

func (r *Request) GetFormString(key string, def ...interface{}) string

GetFormString retrieves and returns parameter <key> from form as string. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormStrings Uses

func (r *Request) GetFormStrings(key string, def ...interface{}) []string

GetFormStrings retrieves and returns parameter <key> from form as []string. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormStruct Uses

func (r *Request) GetFormStruct(pointer interface{}, mapping ...map[string]string) error

GetFormStruct retrieves all form parameters passed from client and converts them to given struct object. Note that the parameter <pointer> is a pointer to the struct object. The optional parameter <mapping> is used to specify the key to attribute mapping.

func (*Request) GetFormToStruct Uses

func (r *Request) GetFormToStruct(pointer interface{}, mapping ...map[string]string) error

GetFormToStruct is alias of GetFormStruct. See GetFormStruct. Deprecated.

func (*Request) GetFormUint Uses

func (r *Request) GetFormUint(key string, def ...interface{}) uint

GetFormUint retrieves and returns parameter <key> from form as uint. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormUint32 Uses

func (r *Request) GetFormUint32(key string, def ...interface{}) uint32

GetFormUint32 retrieves and returns parameter <key> from form as uint32. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormUint64 Uses

func (r *Request) GetFormUint64(key string, def ...interface{}) uint64

GetFormUint64 retrieves and returns parameter <key> from form as uint64. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetFormVar Uses

func (r *Request) GetFormVar(key string, def ...interface{}) *gvar.Var

GetFormVar retrieves and returns parameter <key> from form as Var. It returns <def> if <key> does not exist in the form and <def> is given, or else it returns nil.

func (*Request) GetHost Uses

func (r *Request) GetHost() string

GetHost returns current request host name, which might be a domain or an IP without port.

func (*Request) GetInt Uses

func (r *Request) GetInt(key string, def ...interface{}) int

GetInt is an alias and convenient function for GetRequestInt. See GetRequestInt.

func (*Request) GetInt32 Uses

func (r *Request) GetInt32(key string, def ...interface{}) int32

GetInt32 is an alias and convenient function for GetRequestInt32. See GetRequestInt32.

func (*Request) GetInt64 Uses

func (r *Request) GetInt64(key string, def ...interface{}) int64

GetInt64 is an alias and convenient function for GetRequestInt64. See GetRequestInt64.

func (*Request) GetInterfaces Uses

func (r *Request) GetInterfaces(key string, def ...interface{}) []interface{}

GetInterfaces is an alias and convenient function for GetRequestInterfaces. See GetRequestInterfaces.

func (*Request) GetInts Uses

func (r *Request) GetInts(key string, def ...interface{}) []int

GetInts is an alias and convenient function for GetRequestInts. See GetRequestInts.

func (*Request) GetJson Uses

func (r *Request) GetJson() (*gjson.Json, error)

GetJson parses current request content as JSON format, and returns the JSON object. Note that the request content is read from request BODY, not from any field of FORM.

func (*Request) GetMap Uses

func (r *Request) GetMap(def ...map[string]interface{}) map[string]interface{}

GetMap is an alias and convenient function for GetRequestMap. See GetRequestMap.

func (*Request) GetMapStrStr Uses

func (r *Request) GetMapStrStr(def ...map[string]interface{}) map[string]string

GetMapStrStr is an alias and convenient function for GetRequestMapStrStr. See GetRequestMapStrStr.

func (*Request) GetMultipartFiles Uses

func (r *Request) GetMultipartFiles(name string) []*multipart.FileHeader

GetMultipartFiles parses and returns the post files array. Note that the request form should be type of multipart.

func (*Request) GetMultipartForm Uses

func (r *Request) GetMultipartForm() *multipart.Form

GetMultipartForm parses and returns the form as multipart form.

func (*Request) GetPage Uses

func (r *Request) GetPage(totalSize, pageSize int) *gpage.Page

GetPage creates and returns the pagination object for given <totalSize> and <pageSize>. NOTE THAT the page parameter name from client is constantly defined as gpage.PAGE_NAME for simplification and convenience.

func (*Request) GetParam Uses

func (r *Request) GetParam(key string, def ...interface{}) interface{}

GetParam returns custom parameter with given name <key>. It returns <def> if <key> does not exist. It returns nil if <def> is not passed.

func (*Request) GetParamVar Uses

func (r *Request) GetParamVar(key string, def ...interface{}) *gvar.Var

GetParamVar returns custom parameter with given name <key> as *gvar.Var. It returns <def> if <key> does not exist. It returns nil if <def> is not passed.

func (*Request) GetPost Uses

func (r *Request) GetPost(key string, def ...interface{}) interface{}

GetPost retrieves and returns parameter <key> from form and body. It returns <def> if <key> does not exist in neither form nor body. It returns nil if <def> is not passed.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: form > body.

Deprecated.

func (*Request) GetPostArray Uses

func (r *Request) GetPostArray(key string, def ...interface{}) []string

Deprecated.

func (*Request) GetPostBool Uses

func (r *Request) GetPostBool(key string, def ...interface{}) bool

Deprecated.

func (*Request) GetPostFloat32 Uses

func (r *Request) GetPostFloat32(key string, def ...interface{}) float32

Deprecated.

func (*Request) GetPostFloat64 Uses

func (r *Request) GetPostFloat64(key string, def ...interface{}) float64

Deprecated.

func (*Request) GetPostFloats Uses

func (r *Request) GetPostFloats(key string, def ...interface{}) []float64

Deprecated.

func (*Request) GetPostInt Uses

func (r *Request) GetPostInt(key string, def ...interface{}) int

Deprecated.

func (*Request) GetPostInt32 Uses

func (r *Request) GetPostInt32(key string, def ...interface{}) int32

Deprecated.

func (*Request) GetPostInt64 Uses

func (r *Request) GetPostInt64(key string, def ...interface{}) int64

Deprecated.

func (*Request) GetPostInterfaces Uses

func (r *Request) GetPostInterfaces(key string, def ...interface{}) []interface{}

Deprecated.

func (*Request) GetPostInts Uses

func (r *Request) GetPostInts(key string, def ...interface{}) []int

Deprecated.

func (*Request) GetPostMap Uses

func (r *Request) GetPostMap(kvMap ...map[string]interface{}) map[string]interface{}

GetPostMap retrieves and returns all parameters in the form and body passed from client as map. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: form > body.

Deprecated.

func (*Request) GetPostMapStrStr Uses

func (r *Request) GetPostMapStrStr(kvMap ...map[string]interface{}) map[string]string

GetPostMapStrStr retrieves and returns all parameters in the form and body passed from client as map[string]string. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

Deprecated.

func (*Request) GetPostMapStrVar Uses

func (r *Request) GetPostMapStrVar(kvMap ...map[string]interface{}) map[string]*gvar.Var

GetPostMapStrVar retrieves and returns all parameters in the form and body passed from client as map[string]*gvar.Var. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

Deprecated.

func (*Request) GetPostString Uses

func (r *Request) GetPostString(key string, def ...interface{}) string

Deprecated.

func (*Request) GetPostStrings Uses

func (r *Request) GetPostStrings(key string, def ...interface{}) []string

Deprecated.

func (*Request) GetPostStruct Uses

func (r *Request) GetPostStruct(pointer interface{}, mapping ...map[string]string) error

GetPostStruct retrieves all parameters in the form and body passed from client and converts them to given struct object. Note that the parameter <pointer> is a pointer to the struct object. The optional parameter <mapping> is used to specify the key to attribute mapping.

Deprecated.

func (*Request) GetPostToStruct Uses

func (r *Request) GetPostToStruct(pointer interface{}, mapping ...map[string]string) error

GetPostToStruct is alias of GetQueryStruct. See GetPostStruct.

Deprecated.

func (*Request) GetPostUint Uses

func (r *Request) GetPostUint(key string, def ...interface{}) uint

Deprecated.

func (*Request) GetPostUint32 Uses

func (r *Request) GetPostUint32(key string, def ...interface{}) uint32

Deprecated.

func (*Request) GetPostUint64 Uses

func (r *Request) GetPostUint64(key string, def ...interface{}) uint64

Deprecated.

func (*Request) GetPostVar Uses

func (r *Request) GetPostVar(key string, def ...interface{}) *gvar.Var

Deprecated.

func (*Request) GetQuery Uses

func (r *Request) GetQuery(key string, def ...interface{}) interface{}

GetQuery retrieves and returns parameter with given name <key> from query string and request body. It returns <def> if <key> does not exist in the query and <def> is given, or else it returns nil.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: query > body.

func (*Request) GetQueryArray Uses

func (r *Request) GetQueryArray(key string, def ...interface{}) []string

func (*Request) GetQueryBool Uses

func (r *Request) GetQueryBool(key string, def ...interface{}) bool

func (*Request) GetQueryFloat32 Uses

func (r *Request) GetQueryFloat32(key string, def ...interface{}) float32

func (*Request) GetQueryFloat64 Uses

func (r *Request) GetQueryFloat64(key string, def ...interface{}) float64

func (*Request) GetQueryFloats Uses

func (r *Request) GetQueryFloats(key string, def ...interface{}) []float64

func (*Request) GetQueryInt Uses

func (r *Request) GetQueryInt(key string, def ...interface{}) int

func (*Request) GetQueryInt32 Uses

func (r *Request) GetQueryInt32(key string, def ...interface{}) int32

func (*Request) GetQueryInt64 Uses

func (r *Request) GetQueryInt64(key string, def ...interface{}) int64

func (*Request) GetQueryInterfaces Uses

func (r *Request) GetQueryInterfaces(key string, def ...interface{}) []interface{}

func (*Request) GetQueryInts Uses

func (r *Request) GetQueryInts(key string, def ...interface{}) []int

func (*Request) GetQueryMap Uses

func (r *Request) GetQueryMap(kvMap ...map[string]interface{}) map[string]interface{}

GetQueryMap retrieves and returns all parameters passed from client using HTTP GET method as map. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: query > body.

func (*Request) GetQueryMapStrStr Uses

func (r *Request) GetQueryMapStrStr(kvMap ...map[string]interface{}) map[string]string

GetQueryMapStrStr retrieves and returns all parameters passed from client using HTTP GET method as map[string]string. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetQueryMapStrVar Uses

func (r *Request) GetQueryMapStrVar(kvMap ...map[string]interface{}) map[string]*gvar.Var

GetQueryMapStrVar retrieves and returns all parameters passed from client using HTTP GET method as map[string]*gvar.Var. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetQueryString Uses

func (r *Request) GetQueryString(key string, def ...interface{}) string

func (*Request) GetQueryStrings Uses

func (r *Request) GetQueryStrings(key string, def ...interface{}) []string

func (*Request) GetQueryStruct Uses

func (r *Request) GetQueryStruct(pointer interface{}, mapping ...map[string]string) error

GetQueryStruct retrieves all parameters passed from client using HTTP GET method and converts them to given struct object. Note that the parameter <pointer> is a pointer to the struct object. The optional parameter <mapping> is used to specify the key to attribute mapping.

func (*Request) GetQueryToStruct Uses

func (r *Request) GetQueryToStruct(pointer interface{}, mapping ...map[string]string) error

GetQueryToStruct is alias of GetQueryStruct. See GetQueryStruct. Deprecated.

func (*Request) GetQueryUint Uses

func (r *Request) GetQueryUint(key string, def ...interface{}) uint

func (*Request) GetQueryUint32 Uses

func (r *Request) GetQueryUint32(key string, def ...interface{}) uint32

func (*Request) GetQueryUint64 Uses

func (r *Request) GetQueryUint64(key string, def ...interface{}) uint64

func (*Request) GetQueryVar Uses

func (r *Request) GetQueryVar(key string, def ...interface{}) *gvar.Var

func (*Request) GetRaw Uses

func (r *Request) GetRaw() []byte

GetRaw is alias of GetBody. See GetBody. Deprecated.

func (*Request) GetRawString Uses

func (r *Request) GetRawString() string

GetRawString is alias of GetBodyString. See GetBodyString. Deprecated.

func (*Request) GetReferer Uses

func (r *Request) GetReferer() string

GetReferer returns referer of this request.

func (*Request) GetRequest Uses

func (r *Request) GetRequest(key string, def ...interface{}) interface{}

GetRequest retrieves and returns the parameter named <key> passed from client and custom params as interface{}, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

GetRequest is one of the most commonly used functions for retrieving parameters.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: router < query < body < form < custom.

func (*Request) GetRequestArray Uses

func (r *Request) GetRequestArray(key string, def ...interface{}) []string

GetRequestArray retrieves and returns the parameter named <key> passed from client and custom params as []string, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestBool Uses

func (r *Request) GetRequestBool(key string, def ...interface{}) bool

GetRequestBool retrieves and returns the parameter named <key> passed from client and custom params as bool, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestFloat32 Uses

func (r *Request) GetRequestFloat32(key string, def ...interface{}) float32

GetRequestFloat32 retrieves and returns the parameter named <key> passed from client and custom params as float32, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestFloat64 Uses

func (r *Request) GetRequestFloat64(key string, def ...interface{}) float64

GetRequestFloat64 retrieves and returns the parameter named <key> passed from client and custom params as float64, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestFloats Uses

func (r *Request) GetRequestFloats(key string, def ...interface{}) []float64

GetRequestFloats retrieves and returns the parameter named <key> passed from client and custom params as []float64, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestInt Uses

func (r *Request) GetRequestInt(key string, def ...interface{}) int

GetRequestInt retrieves and returns the parameter named <key> passed from client and custom params as int, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestInt32 Uses

func (r *Request) GetRequestInt32(key string, def ...interface{}) int32

GetRequestInt32 retrieves and returns the parameter named <key> passed from client and custom params as int32, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestInt64 Uses

func (r *Request) GetRequestInt64(key string, def ...interface{}) int64

GetRequestInt64 retrieves and returns the parameter named <key> passed from client and custom params as int64, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestInterfaces Uses

func (r *Request) GetRequestInterfaces(key string, def ...interface{}) []interface{}

GetRequestInterfaces retrieves and returns the parameter named <key> passed from client and custom params as []interface{}, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestInts Uses

func (r *Request) GetRequestInts(key string, def ...interface{}) []int

GetRequestInts retrieves and returns the parameter named <key> passed from client and custom params as []int, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestMap Uses

func (r *Request) GetRequestMap(kvMap ...map[string]interface{}) map[string]interface{}

GetRequestMap retrieves and returns all parameters passed from client and custom params as map, no matter what HTTP method the client is using. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass the according keys.

GetRequestMap is one of the most commonly used functions for retrieving parameters.

Note that if there're multiple parameters with the same name, the parameters are retrieved and overwrote in order of priority: router < query < body < form < custom.

func (*Request) GetRequestMapStrStr Uses

func (r *Request) GetRequestMapStrStr(kvMap ...map[string]interface{}) map[string]string

GetRequestMapStrStr retrieves and returns all parameters passed from client and custom params as map[string]string, no matter what HTTP method the client is using. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetRequestMapStrVar Uses

func (r *Request) GetRequestMapStrVar(kvMap ...map[string]interface{}) map[string]*gvar.Var

GetRequestMapStrVar retrieves and returns all parameters passed from client and custom params as map[string]*gvar.Var, no matter what HTTP method the client is using. The parameter <kvMap> specifies the keys retrieving from client parameters, the associated values are the default values if the client does not pass.

func (*Request) GetRequestString Uses

func (r *Request) GetRequestString(key string, def ...interface{}) string

GetRequestString retrieves and returns the parameter named <key> passed from client and custom params as string, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestStrings Uses

func (r *Request) GetRequestStrings(key string, def ...interface{}) []string

GetRequestStrings retrieves and returns the parameter named <key> passed from client and custom params as []string, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestStruct Uses

func (r *Request) GetRequestStruct(pointer interface{}, mapping ...map[string]string) error

GetRequestStruct retrieves all parameters passed from client and custom params no matter what HTTP method the client is using, and converts them to given struct object. Note that the parameter <pointer> is a pointer to the struct object. The optional parameter <mapping> is used to specify the key to attribute mapping.

func (*Request) GetRequestToStruct Uses

func (r *Request) GetRequestToStruct(pointer interface{}, mapping ...map[string]string) error

GetRequestToStruct is alias of GetRequestStruct. See GetRequestStruct. Deprecated.

func (*Request) GetRequestUint Uses

func (r *Request) GetRequestUint(key string, def ...interface{}) uint

GetRequestUint retrieves and returns the parameter named <key> passed from client and custom params as uint, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestUint32 Uses

func (r *Request) GetRequestUint32(key string, def ...interface{}) uint32

GetRequestUint32 retrieves and returns the parameter named <key> passed from client and custom params as uint32, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestUint64 Uses

func (r *Request) GetRequestUint64(key string, def ...interface{}) uint64

GetRequestUint64 retrieves and returns the parameter named <key> passed from client and custom params as uint64, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRequestVar Uses

func (r *Request) GetRequestVar(key string, def ...interface{}) *gvar.Var

GetRequestVar retrieves and returns the parameter named <key> passed from client and custom params as *gvar.Var, no matter what HTTP method the client is using. The parameter <def> specifies the default value if the <key> does not exist.

func (*Request) GetRouterString Uses

func (r *Request) GetRouterString(key string, def ...interface{}) string

GetRouterString retrieves and returns the router value as string with given key name <key>. It returns <def> if <key> does not exist.

func (*Request) GetRouterValue Uses

func (r *Request) GetRouterValue(key string, def ...interface{}) interface{}

GetRouterValue retrieves and returns the router value with given key name <key>. It returns <def> if <key> does not exist.

func (*Request) GetRouterVar Uses

func (r *Request) GetRouterVar(key string, def ...interface{}) *gvar.Var

GetRouterVar retrieves and returns the router value as *gvar.var with given key name <key>. It returns <def> if <key> does not exist.

func (*Request) GetSessionId Uses

func (r *Request) GetSessionId() string

GetSessionId retrieves and returns session id from cookie or header.

func (*Request) GetString Uses

func (r *Request) GetString(key string, def ...interface{}) string

GetString is an alias and convenient function for GetRequestString. See GetRequestString.

func (*Request) GetStrings Uses

func (r *Request) GetStrings(key string, def ...interface{}) []string

GetStrings is an alias and convenient function for GetRequestStrings. See GetRequestStrings.

func (*Request) GetStruct Uses

func (r *Request) GetStruct(pointer interface{}, mapping ...map[string]string) error

GetStruct is an alias and convenient function for GetRequestStruct. See GetRequestStruct.

func (*Request) GetToStruct Uses

func (r *Request) GetToStruct(pointer interface{}, mapping ...map[string]string) error

GetToStruct is an alias and convenient function for GetRequestStruct. See GetRequestToStruct. Deprecated.

func (*Request) GetUint Uses

func (r *Request) GetUint(key string, def ...interface{}) uint

GetUint is an alias and convenient function for GetRequestUint. See GetRequestUint.

func (*Request) GetUint32 Uses

func (r *Request) GetUint32(key string, def ...interface{}) uint32

GetUint32 is an alias and convenient function for GetRequestUint32. See GetRequestUint32.

func (*Request) GetUint64 Uses

func (r *Request) GetUint64(key string, def ...interface{}) uint64

GetUint64 is an alias and convenient function for GetRequestUint64. See GetRequestUint64.

func (*Request) GetUploadFile Uses

func (r *Request) GetUploadFile(name string) *UploadFile

GetUploadFile retrieves and returns the uploading file with specified form name. This function is used for retrieving single uploading file object, which is uploaded using multipart form content type.

Note that the <name> is the file field name of the multipart form from client.

func (*Request) GetUploadFiles Uses

func (r *Request) GetUploadFiles(name string) UploadFiles

GetUploadFiles retrieves and returns multiple uploading files with specified form name. This function is used for retrieving multiple uploading file objects, which are uploaded using multipart form content type.

Note that the <name> is the file field name of the multipart form from client.

func (*Request) GetUrl Uses

func (r *Request) GetUrl() string

GetUrl returns current URL of this request.

func (*Request) GetVar Uses

func (r *Request) GetVar(key string, def ...interface{}) *gvar.Var

GetVar is alis of GetRequestVar. See GetRequestVar.

func (*Request) GetView Uses

func (r *Request) GetView() *gview.View

GetView returns the template view engine object for this request.

func (*Request) IsAjaxRequest Uses

func (r *Request) IsAjaxRequest() bool

IsAjaxRequest checks and returns whether current request is an AJAX request.

func (*Request) IsExited Uses

func (r *Request) IsExited() bool

IsExited checks and returns whether current request is exited.

func (*Request) IsFileRequest Uses

func (r *Request) IsFileRequest() bool

IsFileRequest checks and returns whether current request is serving file.

func (*Request) Parse Uses

func (r *Request) Parse(pointer interface{}) error

Parse calls r.GetStruct to convert the parameters, which are sent from client, to given struct, and then calls gvalid.CheckStruct validating the struct according to the validation tag of the struct.

See r.GetStruct, gvalid.CheckStruct.

func (*Request) RefillBody Uses

func (r *Request) RefillBody()

RefillBody refills the request body object after read all of its content. It makes the request body reusable for next reading.

func (*Request) SetCtxVar Uses

func (r *Request) SetCtxVar(key interface{}, value interface{})

SetCtxVar sets custom parameter to context with key-value pair.

func (*Request) SetForm Uses

func (r *Request) SetForm(key string, value interface{})

SetForm sets custom form value with key-value pair.

func (*Request) SetParam Uses

func (r *Request) SetParam(key string, value interface{})

SetParam sets custom parameter with key-value pair.

func (*Request) SetQuery Uses

func (r *Request) SetQuery(key string, value interface{})

SetQuery sets custom query value with key-value pair.

func (*Request) SetView Uses

func (r *Request) SetView(view *gview.View)

SetView sets template view engine object for this request.

func (*Request) WebSocket Uses

func (r *Request) WebSocket() (*WebSocket, error)

WebSocket upgrades current request as a websocket request. It returns a new WebSocket object if success, or the error if failure. Note that the request should be a websocket request, or it will surely fail upgrading.

type Response Uses

type Response struct {
    *ResponseWriter                 // Underlying ResponseWriter.
    Server          *Server         // Parent server.
    Writer          *ResponseWriter // Alias of ResponseWriter.
    Request         *Request        // According request.
}

Response is the http response manager. Note that it implements the http.ResponseWriter interface with buffering feature.

func (*Response) Buffer Uses

func (r *Response) Buffer() []byte

BufferString returns the buffered content as []byte.

func (*Response) BufferLength Uses

func (r *Response) BufferLength() int

BufferLength returns the length of the buffered content.

func (*Response) BufferString Uses

func (r *Response) BufferString() string

BufferString returns the buffered content as string.

func (*Response) CORS Uses

func (r *Response) CORS(options CORSOptions)

CORS sets custom CORS options. See https://www.w3.org/TR/cors/ .

func (*Response) CORSAllowedOrigin Uses

func (r *Response) CORSAllowedOrigin(options CORSOptions) bool

CORSAllowed checks whether the current request origin is allowed cross-domain.

func (*Response) CORSDefault Uses

func (r *Response) CORSDefault()

CORSDefault sets CORS with default CORS options, which allows any cross-domain request.

func (*Response) ClearBuffer Uses

func (r *Response) ClearBuffer()

ClearBuffer clears the response buffer.

func (*Response) DefaultCORSOptions Uses

func (r *Response) DefaultCORSOptions() CORSOptions

DefaultCORSOptions returns the default CORS options, which allows any cross-domain request.

func (*Response) Output Uses

func (r *Response) Output()

Output outputs the buffer content to the client and clears the buffer.

func (*Response) ParseTpl Uses

func (r *Response) ParseTpl(tpl string, params ...gview.Params) (string, error)

ParseTpl parses given template file <tpl> with given template variables <params> and returns the parsed template content.

func (*Response) ParseTplContent Uses

func (r *Response) ParseTplContent(content string, params ...gview.Params) (string, error)

ParseTplContent parses given template file <file> with given template parameters <params> and returns the parsed template content.

func (*Response) ParseTplDefault Uses

func (r *Response) ParseTplDefault(params ...gview.Params) (string, error)

ParseDefault parses the default template file with params.

func (*Response) RedirectBack Uses

func (r *Response) RedirectBack(code ...int)

RedirectBack redirects client back to referer. The optional parameter <code> specifies the http status code for redirecting, which commonly can be 301 or 302. It's 302 in default.

func (*Response) RedirectTo Uses

func (r *Response) RedirectTo(location string, code ...int)

RedirectTo redirects client to another location. The optional parameter <code> specifies the http status code for redirecting, which commonly can be 301 or 302. It's 302 in default.

func (*Response) ServeFile Uses

func (r *Response) ServeFile(path string, allowIndex ...bool)

ServeFile serves the file to the response.

func (*Response) ServeFileDownload Uses

func (r *Response) ServeFileDownload(path string, name ...string)

ServeFileDownload serves file downloading to the response.

func (*Response) SetBuffer Uses

func (r *Response) SetBuffer(data []byte)

SetBuffer overwrites the buffer with <data>.

func (*Response) Write Uses

func (r *Response) Write(content ...interface{})

Write writes <content> to the response buffer.

func (*Response) WriteExit Uses

func (r *Response) WriteExit(content ...interface{})

WriteExit writes <content> to the response buffer and exits executing of current handler. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) WriteJson Uses

func (r *Response) WriteJson(content interface{}) error

WriteJson writes <content> to the response with JSON format.

func (*Response) WriteJsonExit Uses

func (r *Response) WriteJsonExit(content interface{}) error

WriteJsonExit writes <content> to the response with JSON format and exits executing of current handler if success. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) WriteJsonP Uses

func (r *Response) WriteJsonP(content interface{}) error

WriteJson writes <content> to the response with JSONP format.

Note that there should be a "callback" parameter in the request for JSONP format.

func (*Response) WriteJsonPExit Uses

func (r *Response) WriteJsonPExit(content interface{}) error

WriteJsonPExit writes <content> to the response with JSONP format and exits executing of current handler if success. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

Note that there should be a "callback" parameter in the request for JSONP format.

func (*Response) WriteOver Uses

func (r *Response) WriteOver(content ...interface{})

WriteOver overwrites the response buffer with <content>.

func (*Response) WriteOverExit Uses

func (r *Response) WriteOverExit(content ...interface{})

WriteOverExit overwrites the response buffer with <content> and exits executing of current handler. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) WriteStatus Uses

func (r *Response) WriteStatus(status int, content ...interface{})

WriteStatus writes HTTP <status> and <content> to the response. Note that do not set Content-Type header here.

func (*Response) WriteStatusExit Uses

func (r *Response) WriteStatusExit(status int, content ...interface{})

WriteStatusExit writes HTTP <status> and <content> to the response and exits executing of current handler if success. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) WriteTpl Uses

func (r *Response) WriteTpl(tpl string, params ...gview.Params) error

WriteTpl parses and responses given template file. The parameter <params> specifies the template variables for parsing.

func (*Response) WriteTplContent Uses

func (r *Response) WriteTplContent(content string, params ...gview.Params) error

WriteTplContent parses and responses the template content. The parameter <params> specifies the template variables for parsing.

func (*Response) WriteTplDefault Uses

func (r *Response) WriteTplDefault(params ...gview.Params) error

WriteTplDefault parses and responses the default template file. The parameter <params> specifies the template variables for parsing.

func (*Response) WriteXml Uses

func (r *Response) WriteXml(content interface{}, rootTag ...string) error

WriteXml writes <content> to the response with XML format.

func (*Response) WriteXmlExit Uses

func (r *Response) WriteXmlExit(content interface{}, rootTag ...string) error

WriteXmlExit writes <content> to the response with XML format and exits executing of current handler if success. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) Writef Uses

func (r *Response) Writef(format string, params ...interface{})

Writef writes the response with fmt.Sprintf.

func (*Response) WritefExit Uses

func (r *Response) WritefExit(format string, params ...interface{})

WritefExit writes the response with fmt.Sprintf and exits executing of current handler. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) Writefln Uses

func (r *Response) Writefln(format string, params ...interface{})

Writefln writes the response with fmt.Sprintf and new line.

func (*Response) WriteflnExit Uses

func (r *Response) WriteflnExit(format string, params ...interface{})

WriteflnExit writes the response with fmt.Sprintf and new line and exits executing of current handler. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

func (*Response) Writeln Uses

func (r *Response) Writeln(content ...interface{})

Writef writes the response with <content> and new line.

func (*Response) WritelnExit Uses

func (r *Response) WritelnExit(content ...interface{})

WritelnExit writes the response with <content> and new line and exits executing of current handler. The "Exit" feature is commonly used to replace usage of return statement in the handler, for convenience.

type ResponseWriter Uses

type ResponseWriter struct {
    Status int // HTTP status.
    // contains filtered or unexported fields
}

ResponseWriter is the custom writer for http response.

func (*ResponseWriter) Header Uses

func (w *ResponseWriter) Header() http.Header

Header implements the interface function of http.ResponseWriter.Header.

func (*ResponseWriter) Hijack Uses

func (w *ResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)

Hijack implements the interface function of http.Hijacker.Hijack.

func (*ResponseWriter) OutputBuffer Uses

func (w *ResponseWriter) OutputBuffer()

OutputBuffer outputs the buffer to client and clears the buffer.

func (*ResponseWriter) RawWriter Uses

func (w *ResponseWriter) RawWriter() http.ResponseWriter

RawWriter returns the underlying ResponseWriter.

func (*ResponseWriter) Write Uses

func (w *ResponseWriter) Write(data []byte) (int, error)

Write implements the interface function of http.ResponseWriter.Write.

func (*ResponseWriter) WriteHeader Uses

func (w *ResponseWriter) WriteHeader(status int)

WriteHeader implements the interface of http.ResponseWriter.WriteHeader.

type Router Uses

type Router struct {
    Uri      string   // URI.
    Method   string   // HTTP method
    Domain   string   // Bound domain.
    RegRule  string   // Parsed regular expression for route matching.
    RegNames []string // Parsed router parameter names.
    Priority int      // Just for reference.
}

Router object.

type RouterGroup Uses

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

RouterGroup is a group wrapping multiple routes and middleware.

func (*RouterGroup) ALL Uses

func (g *RouterGroup) ALL(pattern string, object interface{}, params ...interface{}) *RouterGroup

ALL registers a http handler to given route pattern and all http methods.

func (*RouterGroup) Bind Uses

func (g *RouterGroup) Bind(items []GroupItem) *RouterGroup

Bind does batch route registering feature for router group.

func (*RouterGroup) CONNECT Uses

func (g *RouterGroup) CONNECT(pattern string, object interface{}, params ...interface{}) *RouterGroup

CONNECT registers a http handler to given route pattern and http method: CONNECT.

func (*RouterGroup) Clone Uses

func (g *RouterGroup) Clone() *RouterGroup

Clone returns a new router group which is a clone of current group.

func (*RouterGroup) DELETE Uses

func (g *RouterGroup) DELETE(pattern string, object interface{}, params ...interface{}) *RouterGroup

DELETE registers a http handler to given route pattern and http method: DELETE.

func (*RouterGroup) GET Uses

func (g *RouterGroup) GET(pattern string, object interface{}, params ...interface{}) *RouterGroup

GET registers a http handler to given route pattern and http method: GET.

func (*RouterGroup) Group Uses

func (g *RouterGroup) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup

Group creates and returns a sub-group of current router group.

func (*RouterGroup) HEAD Uses

func (g *RouterGroup) HEAD(pattern string, object interface{}, params ...interface{}) *RouterGroup

HEAD registers a http handler to given route pattern and http method: HEAD.

func (*RouterGroup) Hook Uses

func (g *RouterGroup) Hook(pattern string, hook string, handler HandlerFunc) *RouterGroup

Hook registers a hook to given route pattern.

func (*RouterGroup) Middleware Uses

func (g *RouterGroup) Middleware(handlers ...HandlerFunc) *RouterGroup

Middleware binds one or more middleware to the router group.

func (*RouterGroup) OPTIONS Uses

func (g *RouterGroup) OPTIONS(pattern string, object interface{}, params ...interface{}) *RouterGroup

OPTIONS registers a http handler to given route pattern and http method: OPTIONS.

func (*RouterGroup) PATCH Uses

func (g *RouterGroup) PATCH(pattern string, object interface{}, params ...interface{}) *RouterGroup

PATCH registers a http handler to given route pattern and http method: PATCH.

func (*RouterGroup) POST Uses

func (g *RouterGroup) POST(pattern string, object interface{}, params ...interface{}) *RouterGroup

POST registers a http handler to given route pattern and http method: POST.

func (*RouterGroup) PUT Uses

func (g *RouterGroup) PUT(pattern string, object interface{}, params ...interface{}) *RouterGroup

PUT registers a http handler to given route pattern and http method: PUT.

func (*RouterGroup) REST Uses

func (g *RouterGroup) REST(pattern string, object interface{}) *RouterGroup

REST registers a http handler to given route pattern according to REST rule.

func (*RouterGroup) TRACE Uses

func (g *RouterGroup) TRACE(pattern string, object interface{}, params ...interface{}) *RouterGroup

TRACE registers a http handler to given route pattern and http method: TRACE.

type RouterItem Uses

type RouterItem struct {
    Server           string // Server name.
    Address          string // Listening address.
    Domain           string // Bound domain.
    Type             int    // Router type.
    Middleware       string // Bound middleware.
    Method           string // Handler method name.
    Route            string // Route URI.
    Priority         int    // Just for reference.
    IsServiceHandler bool   // Is service handler.
    // contains filtered or unexported fields
}

Router item just for route dumps.

type Server Uses

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

Server wraps the http.Server and provides more feature.

func GetServer Uses

func GetServer(name ...interface{}) *Server

获取/创建一个默认配置的HTTP Server(默认监听端口是80) 单例模式,请保证name的唯一性

func (*Server) AddSearchPath Uses

func (s *Server) AddSearchPath(path string)

AddSearchPath add searching directory path for static file service.

func (*Server) AddStaticPath Uses

func (s *Server) AddStaticPath(prefix string, path string)

AddStaticPath sets the uri to static directory path mapping for static file service.

func (*Server) BindController Uses

func (s *Server) BindController(pattern string, controller Controller, method ...string)

绑定控制器,控制器需要实现 gmvc.Controller 接口, 这种方式绑定的控制器每一次请求都会初始化一个新的控制器对象进行处理,对应不同的请求会话, 第三个参数methods用以指定需要注册的方法,支持多个方法名称,多个方法以英文“,”号分隔,区分大小写.

func (*Server) BindControllerMethod Uses

func (s *Server) BindControllerMethod(pattern string, controller Controller, method string)

绑定路由到指定的方法执行, 第三个参数method仅支持一个方法注册,不支持多个,并且区分大小写。

func (*Server) BindControllerRest Uses

func (s *Server) BindControllerRest(pattern string, controller Controller)

绑定控制器(RESTFul),控制器需要实现gmvc.Controller接口 方法会识别HTTP方法,并做REST绑定处理,例如:Post方法会绑定到HTTP POST的方法请求处理,Delete方法会绑定到HTTP DELETE的方法请求处理 因此只会绑定HTTP Method对应的方法,其他方法不会自动注册绑定 这种方式绑定的控制器每一次请求都会初始化一个新的控制器对象进行处理,对应不同的请求会话

func (*Server) BindHandler Uses

func (s *Server) BindHandler(pattern string, handler HandlerFunc)

注意该方法是直接绑定函数的内存地址,执行的时候直接执行该方法,不会存在初始化新的控制器逻辑

func (*Server) BindHookHandler Uses

func (s *Server) BindHookHandler(pattern string, hook string, handler HandlerFunc)

绑定指定的hook回调函数, pattern参数同BindHandler,支持命名路由;hook参数的值由ghttp server设定,参数不区分大小写

func (*Server) BindHookHandlerByMap Uses

func (s *Server) BindHookHandlerByMap(pattern string, hookMap map[string]HandlerFunc)

通过map批量绑定回调函数

func (*Server) BindMiddleware Uses

func (s *Server) BindMiddleware(pattern string, handlers ...HandlerFunc)

BindMiddleware registers one or more global middleware to the server. Global middleware can be used standalone without service handler, which intercepts all dynamic requests before or after service handler. The parameter <pattern> specifies what route pattern the middleware intercepts, which is usually a "fuzzy" pattern like "/:name", "/*any" or "/{field}".

func (*Server) BindMiddlewareDefault Uses

func (s *Server) BindMiddlewareDefault(handlers ...HandlerFunc)

BindMiddlewareDefault registers one or more global middleware to the server using default pattern "/*". Global middleware can be used standalone without service handler, which intercepts all dynamic requests before or after service handler.

func (*Server) BindObject Uses

func (s *Server) BindObject(pattern string, object interface{}, method ...string)

绑定对象到URI请求处理中,会自动识别方法名称,并附加到对应的URI地址后面 第三个参数methods用以指定需要注册的方法,支持多个方法名称,多个方法以英文“,”号分隔,区分大小写

func (*Server) BindObjectMethod Uses

func (s *Server) BindObjectMethod(pattern string, object interface{}, method string)

绑定对象到URI请求处理中,会自动识别方法名称,并附加到对应的URI地址后面, 第三个参数method仅支持一个方法注册,不支持多个,并且区分大小写。

func (*Server) BindObjectRest Uses

func (s *Server) BindObjectRest(pattern string, object interface{})

绑定对象到URI请求处理中,会自动识别方法名称,并附加到对应的URI地址后面, 需要注意对象方法的定义必须按照 ghttp.HandlerFunc 来定义

func (*Server) BindStatusHandler Uses

func (s *Server) BindStatusHandler(status int, handler HandlerFunc)

绑定指定的状态码回调函数

func (*Server) BindStatusHandlerByMap Uses

func (s *Server) BindStatusHandlerByMap(handlerMap map[int]HandlerFunc)

通过map批量绑定状态码回调函数

func (*Server) Domain Uses

func (s *Server) Domain(domains string) *Domain

生成一个域名对象, 参数 domains 支持给定多个域名。

func (*Server) EnableAdmin Uses

func (s *Server) EnableAdmin(pattern ...string)

开启服务管理支持

func (*Server) EnableHTTPS Uses

func (s *Server) EnableHTTPS(certFile, keyFile string, tlsConfig ...*tls.Config)

EnableHTTPS enables HTTPS with given certification and key files for the server. The optional parameter <tlsConfig> specifies custom TLS configuration.

func (*Server) EnablePProf Uses

func (s *Server) EnablePProf(pattern ...string)

EnablePProf enables PProf feature for server.

func (*Server) GetCookieDomain Uses

func (s *Server) GetCookieDomain() string

func (*Server) GetCookieMaxAge Uses

func (s *Server) GetCookieMaxAge() time.Duration

func (*Server) GetCookiePath Uses

func (s *Server) GetCookiePath() string

func (*Server) GetIndexFiles Uses

func (s *Server) GetIndexFiles() []string

GetIndexFiles retrieves and returns the index files from server.

func (*Server) GetLogPath Uses

func (s *Server) GetLogPath() string

获取日志目录

func (*Server) GetName Uses

func (s *Server) GetName() string

GetName returns the name of the server.

func (*Server) GetRouterArray Uses

func (s *Server) GetRouterArray() []RouterItem

GetRouterArray retrieves and returns the router array. The key of the returned map is the domain of the server.

func (*Server) GetSessionIdName Uses

func (s *Server) GetSessionIdName() string

func (*Server) GetSessionMaxAge Uses

func (s *Server) GetSessionMaxAge() time.Duration

func (*Server) Group Uses

func (s *Server) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup

Group creates and returns a RouterGroup object.

func (*Server) Handler Uses

func (s *Server) Handler() http.Handler

Handler returns the request handler of the server.

func (*Server) IsAccessLogEnabled Uses

func (s *Server) IsAccessLogEnabled() bool

access log日志功能是否开启

func (*Server) IsErrorLogEnabled Uses

func (s *Server) IsErrorLogEnabled() bool

error log日志功能是否开启

func (*Server) Logger Uses

func (s *Server) Logger() *glog.Logger

Logger returns the logger of the server.

func (*Server) Plugin Uses

func (s *Server) Plugin(plugin ...Plugin)

Plugin adds plugin to server.

func (*Server) Run Uses

func (s *Server) Run()

Run starts server listening in blocking way. It's commonly used for single server situation.

func (*Server) ServeHTTP Uses

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

默认HTTP Server处理入口,http包底层默认使用了gorutine异步处理请求,所以这里不再异步执行

func (*Server) SetAccessLogEnabled Uses

func (s *Server) SetAccessLogEnabled(enabled bool)

设置是否开启access log日志功能

func (*Server) SetAddr Uses

func (s *Server) SetAddr(address string)

SetAddr sets the listening address for the server. The address is like ':80', '0.0.0.0:80', '127.0.0.1:80', '180.18.99.10:80', etc.

func (*Server) SetConfig Uses

func (s *Server) SetConfig(c ServerConfig) error

SetConfig sets the configuration for the server.

func (*Server) SetConfigWithMap Uses

func (s *Server) SetConfigWithMap(m map[string]interface{}) error

SetConfigWithMap sets the configuration for the server using map.

func (*Server) SetCookieDomain Uses

func (s *Server) SetCookieDomain(domain string)

func (*Server) SetCookieMaxAge Uses

func (s *Server) SetCookieMaxAge(ttl time.Duration)

func (*Server) SetCookiePath Uses

func (s *Server) SetCookiePath(path string)

func (*Server) SetDumpRouterMap Uses

func (s *Server) SetDumpRouterMap(enabled bool)

func (*Server) SetErrorLogEnabled Uses

func (s *Server) SetErrorLogEnabled(enabled bool)

设置是否开启error log日志功能

func (*Server) SetErrorStack Uses

func (s *Server) SetErrorStack(enabled bool)

设置是否开启error stack打印功能

func (*Server) SetFileServerEnabled Uses

func (s *Server) SetFileServerEnabled(enabled bool)

SetFileServerEnabled enables/disables the static file service. It's the main switch for the static file service. When static file service configuration functions like SetServerRoot, AddSearchPath and AddStaticPath are called, this configuration is automatically enabled.

func (*Server) SetFormParsingMemory Uses

func (s *Server) SetFormParsingMemory(maxMemory int64)

func (*Server) SetHTTPSAddr Uses

func (s *Server) SetHTTPSAddr(address string)

SetHTTPSAddr sets the HTTPS listening ports for the server.

func (*Server) SetHTTPSPort Uses

func (s *Server) SetHTTPSPort(port ...int)

SetHTTPSPort sets the HTTPS listening ports for the server. The listening ports can be multiple.

func (*Server) SetIdleTimeout Uses

func (s *Server) SetIdleTimeout(t time.Duration)

SetIdleTimeout sets the IdleTimeout for the server.

func (*Server) SetIndexFiles Uses

func (s *Server) SetIndexFiles(indexFiles []string)

SetIndexFiles sets the index files for server.

func (*Server) SetIndexFolder Uses

func (s *Server) SetIndexFolder(enabled bool)

SetIndexFolder enables/disables listing the sub-files if requesting a directory.

func (*Server) SetKeepAlive Uses

func (s *Server) SetKeepAlive(enabled bool)

SetKeepAlive sets the KeepAlive for the server.

func (*Server) SetLogPath Uses

func (s *Server) SetLogPath(path string)

设置日志目录,只有在设置了日志目录的情况下才会输出日志到日志文件中。

func (*Server) SetLogStdout Uses

func (s *Server) SetLogStdout(enabled bool)

设置日志内容是否输出到终端,默认情况下只有错误日志才会自动输出到终端。 如果需要输出请求日志到终端,默认情况下使用SetAccessLogEnabled方法开启请求日志特性即可。

func (*Server) SetMaxHeaderBytes Uses

func (s *Server) SetMaxHeaderBytes(b int)

SetMaxHeaderBytes sets the MaxHeaderBytes for the server.

func (*Server) SetNameToUriType Uses

func (s *Server) SetNameToUriType(t int)

func (*Server) SetPort Uses

func (s *Server) SetPort(port ...int)

SetPort sets the listening ports for the server. The listening ports can be multiple.

func (*Server) SetReadTimeout Uses

func (s *Server) SetReadTimeout(t time.Duration)

SetReadTimeout sets the ReadTimeout for the server.

func (*Server) SetRewrite Uses

func (s *Server) SetRewrite(uri string, rewrite string)

func (*Server) SetRewriteMap Uses

func (s *Server) SetRewriteMap(rewrites map[string]string)

func (*Server) SetRouteOverWrite Uses

func (s *Server) SetRouteOverWrite(enabled bool)

func (*Server) SetServerAgent Uses

func (s *Server) SetServerAgent(agent string)

SetServerAgent sets the ServerAgent for the server.

func (*Server) SetServerRoot Uses

func (s *Server) SetServerRoot(root string)

SetServerRoot sets the document root for static service.

func (*Server) SetSessionIdName Uses

func (s *Server) SetSessionIdName(name string)

func (*Server) SetSessionMaxAge Uses

func (s *Server) SetSessionMaxAge(ttl time.Duration)

func (*Server) SetSessionStorage Uses

func (s *Server) SetSessionStorage(storage gsession.Storage)

func (*Server) SetTLSConfig Uses

func (s *Server) SetTLSConfig(tlsConfig *tls.Config)

SetTLSConfig sets custom TLS configuration and enables HTTPS feature for the server.

func (*Server) SetView Uses

func (s *Server) SetView(view *gview.View)

SetView sets the View for the server.

func (*Server) SetWriteTimeout Uses

func (s *Server) SetWriteTimeout(t time.Duration)

SetWriteTimeout sets the WriteTimeout for the server.

func (*Server) Shutdown Uses

func (s *Server) Shutdown() error

关闭当前Web Server

func (*Server) Start Uses

func (s *Server) Start() error

作为守护协程异步执行(当同一进程中存在多个Web Server时,需要采用这种方式执行), 需要结合Wait方式一起使用.

func (*Server) Status Uses

func (s *Server) Status() int

获取当前服务器的状态

func (*Server) Use Uses

func (s *Server) Use(handlers ...HandlerFunc)

Use is alias of BindMiddlewareDefault. See BindMiddlewareDefault.

type ServerConfig Uses

type ServerConfig struct {
    Address           string            // Basic: Server listening address like ":port", multiple addresses joined using ','.
    HTTPSAddr         string            // Basic: HTTPS addresses, multiple addresses joined using char ','.
    HTTPSCertPath     string            // Basic: HTTPS certification file path.
    HTTPSKeyPath      string            // Basic: HTTPS key file path.
    TLSConfig         *tls.Config       // Basic: TLS configuration for use by ServeTLS and ListenAndServeTLS.
    Handler           http.Handler      // Basic: Request handler.
    ReadTimeout       time.Duration     // Basic: Maximum duration for reading the entire request, including the body.
    WriteTimeout      time.Duration     // Basic: Maximum duration before timing out writes of the response.
    IdleTimeout       time.Duration     // Basic: Maximum amount of time to wait for the next request when keep-alive is enabled.
    MaxHeaderBytes    int               // Basic: Maximum number of bytes the server will read parsing the request header's keys and values, including the request line.
    KeepAlive         bool              // Basic: Enable HTTP keep-alive.
    ServerAgent       string            // Basic: Server agent information.
    View              *gview.View       // Basic: View object for the server.
    Rewrites          map[string]string // Static: URI rewrite rules map.
    IndexFiles        []string          // Static: The index files for static folder.
    IndexFolder       bool              // Static: List sub-files when requesting folder; server responses HTTP status code 403 if false.
    ServerRoot        string            // Static: The root directory for static service.
    SearchPaths       []string          // Static: Additional searching directories for static service.
    StaticPaths       []staticPathItem  // Static: URI to directory mapping array.
    FileServerEnabled bool              // Static: Switch for static service.
    CookieMaxAge      time.Duration     // Cookie: Max TTL for cookie items.
    CookiePath        string            // Cookie: Cookie Path(also affects the default storage for session id).
    CookieDomain      string            // Cookie: Cookie Domain(also affects the default storage for session id).
    SessionMaxAge     time.Duration     // Session: Max TTL for session items.
    SessionIdName     string            // Session: Session id name.
    SessionPath       string            // Session: Session Storage directory path for storing session files.
    SessionStorage    gsession.Storage  // Session: Session Storage implementer.
    Logger            *glog.Logger      // Logging: Logger for server.
    LogPath           string            // Logging: Directory for storing logging files.
    LogStdout         bool              // Logging: Printing logging content to stdout.
    ErrorStack        bool              // Logging: Logging stack information when error.
    ErrorLogEnabled   bool              // Logging: Enable error logging files.
    ErrorLogPattern   string            // Logging: Error log file pattern like: error-{Ymd}.log
    AccessLogEnabled  bool              // Logging: Enable access logging files.
    AccessLogPattern  string            // Logging: Error log file pattern like: access-{Ymd}.log
    PProfEnabled      bool              // PProf: Enable PProf feature.
    PProfPattern      string            // PProf: PProf service pattern for router.
    FormParsingMemory int64             // Other: Max memory in bytes which can be used for parsing multimedia form.
    NameToUriType     int               // Other: Type for converting struct method name to URI when registering routes.
    RouteOverWrite    bool              // Other: Allow overwrite the route if duplicated.
    DumpRouterMap     bool              // Other: Whether automatically dump router map when server starts.
    Graceful          bool              // Other: Enable graceful reload feature for all servers of the process.
}

HTTP Server configuration.

func Config Uses

func Config() ServerConfig

Config returns the default ServerConfig object. Note that, do not define this default configuration to local variable, as there're some pointer attributes that may be shared in different servers.

func ConfigFromMap Uses

func ConfigFromMap(m map[string]interface{}) (ServerConfig, error)

ConfigFromMap creates and returns a ServerConfig object with given map.

type Session Uses

type Session = gsession.Session

type StaticFile Uses

type StaticFile struct {
    File  *gres.File // Resource file object.
    Path  string     // File path.
    IsDir bool       // Is directory.
}

StaticFile is the file struct for static file service.

type UploadFile Uses

type UploadFile struct {
    *multipart.FileHeader
}

UploadFile wraps the multipart uploading file with more and convenient features.

func (*UploadFile) Save Uses

func (f *UploadFile) Save(dirPath string, randomlyRename ...bool) (filename string, err error)

Save saves the single uploading file to directory path and returns the saved file name.

The parameter <dirPath> should be a directory path or it returns error.

The parameter <randomlyRename> specifies whether randomly renames the file name, which make sense if the <path> is a directory.

Note that it will overwrite the target file if there's already a same name file exist.

type UploadFiles Uses

type UploadFiles []*UploadFile

UploadFiles is array type for *UploadFile.

func (UploadFiles) Save Uses

func (fs UploadFiles) Save(dirPath string, randomlyRename ...bool) (filenames []string, err error)

Save saves all uploading files to specified directory path and returns the saved file names.

The parameter <dirPath> should be a directory path or it returns error.

The parameter <randomlyRename> specifies whether randomly renames all the file names.

type WebSocket Uses

type WebSocket struct {
    *websocket.Conn
}

Package ghttp imports 63 packages (graph) and is imported by 35 packages. Updated 2020-04-07. Refresh now. Tools for package owners.