ghttp

package
v1.8.4-0...-cbac34e Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2019 License: MIT Imports: 54 Imported by: 0

Documentation

Overview

Package ghttp provides powerful http server and simple client implements.

Index

Constants

View Source
const (
	SERVER_STATUS_STOPPED = 0                    // Server状态:停止
	SERVER_STATUS_RUNNING = 1                    // Server状态:运行
	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"
)
View Source
const (
	NAME_TO_URI_TYPE_DEFAULT  = 0 // 服务注册时对象和方法名称转换为URI时,全部转为小写,单词以'-'连接符号连接
	NAME_TO_URI_TYPE_FULLNAME = 1 // 不处理名称,以原有名称构建成URI
	NAME_TO_URI_TYPE_ALLLOWER = 2 // 仅转为小写,单词间不使用连接符号
	NAME_TO_URI_TYPE_CAMEL    = 3 // 采用驼峰命名方式

)
View Source
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
)

Variables

This section is empty.

Functions

func BuildParams

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

构建请求参数,参数支持任意数据类型,常见参数类型为string/map。 如果参数为map类型,参数值将会进行urlencode编码;可以通过 noUrlEncode:true 参数取消编码。

func ConnectBytes

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

func ConnectContent

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

func DeleteBytes

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

func DeleteContent

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

func GetBytes

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

func GetContent

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

func HeadBytes

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

func HeadContent

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

func IsExitError

func IsExitError(err interface{}) bool

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

func OptionsBytes

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

func OptionsContent

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

func PatchBytes

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

func PatchContent

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

func PostBytes

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

func PostContent

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

func PutBytes

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

func PutContent

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

func RequestBytes

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

func RequestContent

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

func RestartAllServer

func RestartAllServer(newExeFilePath ...string) error

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

func SetGraceful

func SetGraceful(enabled bool)

是否开启平滑重启特性

func ShutdownAllServer

func ShutdownAllServer() error

关闭所有的WebServer

func TraceBytes

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

func TraceContent

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

func Wait

func Wait()

阻塞等待所有Web Server停止,常用于多Web Server场景,以及需要将Web Server异步运行的场景 这是一个与进程相关的方法

Types

type CORSOptions

type CORSOptions struct {
	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
}

See https://www.w3.org/TR/cors/ . 服务端允许跨域请求选项

type Client

type Client struct {
	http.Client // 底层http client对象
	// contains filtered or unexported fields
}

http客户端

func NewClient

func NewClient() *Client

http客户端对象指针

func (*Client) BasicAuth

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

链式操作, See SetBasicAuth

func (*Client) BrowserMode

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

链式操作, See SetBrowserMode

func (*Client) Clone

func (c *Client) Clone() *Client

克隆当前客户端对象,复制属性。

func (*Client) Connect

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

func (*Client) ConnectBytes

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

func (*Client) ConnectContent

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

func (*Client) Delete

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

DELETE请求

func (*Client) DeleteBytes

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

func (*Client) DeleteContent

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

func (*Client) DoRequest

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

请求并返回response对象

func (*Client) Get

func (c *Client) Get(url string) (*ClientResponse, error)

GET请求

func (*Client) GetBytes

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

func (*Client) GetContent

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

func (*Client) Head

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

func (*Client) HeadBytes

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

func (*Client) HeadContent

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

func (*Client) Options

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

func (*Client) OptionsBytes

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

func (*Client) OptionsContent

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

func (*Client) Patch

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

func (*Client) PatchBytes

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

func (*Client) PatchContent

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

func (*Client) Post

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

POST请求提交数据,默认使用表单方式提交数据(绝大部分场景下也是如此)。 如果服务端对Content-Type有要求,可使用Client对象进行请求,单独设置相关属性。 支持文件上传,需要字段格式为:FieldName=@file:

func (*Client) PostBytes

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

func (*Client) PostContent

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

func (*Client) Put

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

PUT请求

func (*Client) PutBytes

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

func (*Client) PutContent

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

func (*Client) RequestBytes

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

请求并返回服务端结果(内部会自动读取服务端返回结果并关闭缓冲区指针)

func (*Client) RequestContent

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

func (*Client) Retry

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

链式操作, See SetRetry

func (*Client) SetBasicAuth

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

设置HTTP访问账号密码

func (*Client) SetBrowserMode

func (c *Client) SetBrowserMode(enabled bool)

是否模拟浏览器模式(自动保存提交COOKIE)

func (*Client) SetCookie

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

设置COOKIE

func (*Client) SetCookieMap

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

使用Map设置COOKIE

func (*Client) SetHeader

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

设置HTTP Header

func (*Client) SetHeaderRaw

func (c *Client) SetHeaderRaw(header string)

通过字符串设置HTTP Header

func (*Client) SetPrefix

func (c *Client) SetPrefix(prefix string)

设置请求的URL前缀

func (*Client) SetRetry

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

设置失败重试次数及间隔,失败仅针对网络请求失败情况。 重试间隔时间单位为秒。

func (*Client) SetTimeOut

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

设置请求过期时间

func (*Client) TimeOut

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

链式操作, See SetTimeOut

func (*Client) Trace

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

func (*Client) TraceBytes

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

func (*Client) TraceContent

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

type ClientResponse

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

客户端请求结果对象

func Connect

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

func Delete

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

func DoRequest

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

func Get

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

func Options

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

func Patch

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

func Post

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

func Put

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

func Trace

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

func (*ClientResponse) Close

func (r *ClientResponse) Close() error

关闭返回的HTTP链接

func (*ClientResponse) GetCookie

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

获得返回的指定COOKIE值

func (*ClientResponse) ReadAll

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

获取返回的数据(二进制).

func (*ClientResponse) ReadAllString

func (r *ClientResponse) ReadAllString() string

获取返回的数据(字符串).

type Controller

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

控制器接口

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

COOKIE对象,非并发安全。

func GetCookie

func GetCookie(r *Request) *Cookie

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

func (*Cookie) Contains

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

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

func (*Cookie) Get

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

查询cookie

func (*Cookie) GetSessionId

func (c *Cookie) GetSessionId() string

获得客户端提交的SessionId

func (*Cookie) Map

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

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

func (*Cookie) Output

func (c *Cookie) Output()

输出到客户端

func (*Cookie) Remove

func (c *Cookie) Remove(key string)

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

func (*Cookie) RemoveCookie

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

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

func (*Cookie) Set

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

设置cookie,使用默认参数

func (*Cookie) SetCookie

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

设置cookie,带详细cookie参数

func (*Cookie) SetSessionId

func (c *Cookie) SetSessionId(id string)

设置SessionId

type CookieItem

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

cookie项

type Domain

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

域名管理器对象

func (*Domain) AddMiddleware

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

注册中间件,绑定到全局路由规则("/*")上,中间件参数支持多个。

func (*Domain) BindController

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

控制器注册

func (*Domain) BindControllerMethod

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

控制器方法注册,methods参数区分大小写

func (*Domain) BindControllerRest

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

RESTful控制器注册

func (*Domain) BindHandler

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

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

func (*Domain) BindHookHandler

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

绑定指定的hook回调函数, hook参数的值由ghttp server设定,参数不区分大小写 目前hook支持:Init/Shut

func (*Domain) BindHookHandlerByMap

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

通过map批量绑定回调函数

func (*Domain) BindMiddleware

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

注册中间件,绑定到指定的路由规则上,中间件参数支持多个。

func (*Domain) BindObject

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

执行对象方法

func (*Domain) BindObjectMethod

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

执行对象方法注册,methods参数不区分大小写

func (*Domain) BindObjectRest

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

RESTful执行对象注册

func (*Domain) BindStatusHandler

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

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

func (*Domain) BindStatusHandlerByMap

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

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

func (*Domain) Group

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

获取分组路由对象(绑定域名)

type GroupItem

type GroupItem = []interface{}

分组路由批量绑定项

type HandlerFunc

type HandlerFunc = func(r *Request)

HTTP注册函数

type LogHandler

type LogHandler func(r *Request, error ...interface{})

自定义日志处理方法类型

type Middleware

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

中间件对象

func (*Middleware) Next

func (m *Middleware) Next()

执行下一个请求流程处理函数

type Request

type Request struct {
	*http.Request
	Id         int         // 请求ID(当前Server对象唯一)
	Server     *Server     // 请求关联的服务器对象
	Cookie     *Cookie     // 与当前请求绑定的Cookie对象(并发安全)
	Session    *Session    // 与当前请求绑定的Session对象(并发安全)
	Response   *Response   // 对应请求的返回数据操作对象
	Router     *Router     // 匹配到的路由对象
	EnterTime  int64       // 请求进入时间(微秒)
	LeaveTime  int64       // 请求完成时间(微秒)
	Middleware *Middleware // 中间件功能调用对象
	// contains filtered or unexported fields
}

请求对象

func (*Request) AddPost

func (r *Request) AddPost(key string, value string)

func (*Request) AddQuery

func (r *Request) AddQuery(key string, value string)

添加GET参数,构成[]string

func (*Request) AddRouterString

func (r *Request) AddRouterString(key, value string)

func (*Request) BasicAuth

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

设置HTTP基础账号密码认证,如果用户没有提交账号密码,那么提示用户输出信息。 验证成功之后返回true,否则返回false。

func (*Request) Error

func (r *Request) Error(value ...interface{})

打印error日志

func (*Request) Exit

func (r *Request) Exit()

仅退出当前逻辑执行函数, 如:服务函数、HOOK函数

func (*Request) ExitAll

func (r *Request) ExitAll()

退出当前请求执行,后续所有的服务逻辑流程(包括其他的HOOK)将不会执行

func (*Request) ExitHook

func (r *Request) ExitHook()

仅针对HOOK执行,默认情况下HOOK会按照优先级进行调用,当使用ExitHook后当前类型的后续HOOK将不会被调用

func (*Request) Get

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

获得指定名称的参数字符串(Router/GET/POST),同 GetRequestString 这是常用方法的简化别名

func (*Request) GetArray

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

func (*Request) GetClientIp

func (r *Request) GetClientIp() string

获取请求的客户端IP地址

func (*Request) GetFloat32

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

func (*Request) GetFloat64

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

func (*Request) GetFloats

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

func (*Request) GetHost

func (r *Request) GetHost() string

获取请求的服务端IP/域名

func (*Request) GetInt

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

func (*Request) GetInterfaces

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

func (*Request) GetInts

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

func (*Request) GetJson

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

获取原始json请求输入字符串,并解析为json对象

func (*Request) GetMap

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

func (*Request) GetParam

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

获取请求流程共享变量

func (*Request) GetPost

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

func (*Request) GetPostArray

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

func (*Request) GetPostBool

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

func (*Request) GetPostFloat32

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

func (*Request) GetPostFloat64

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

func (*Request) GetPostFloats

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

func (*Request) GetPostInt

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

func (*Request) GetPostInterfaces

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

func (*Request) GetPostInts

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

func (*Request) GetPostMap

func (r *Request) GetPostMap(def ...map[string]string) map[string]string

获取指定键名的关联数组,并且给定当指定键名不存在时的默认值 需要注意的是,如果其中一个字段为数组形式,那么只会返回第一个元素,如果需要获取全部的元素,请使用GetPostArray获取特定字段内容

func (*Request) GetPostString

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

func (*Request) GetPostStrings

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

func (*Request) GetPostToStruct

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

将所有的request参数映射到struct属性上,参数object应当为一个struct对象的指针, mapping为非必需参数,自定义参数与属性的映射关系

func (*Request) GetPostUint

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

func (*Request) GetPostVar

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

func (*Request) GetQuery

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

获得指定名称的get参数列表

func (*Request) GetQueryArray

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

func (*Request) GetQueryBool

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

func (*Request) GetQueryFloat32

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

func (*Request) GetQueryFloat64

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

func (*Request) GetQueryFloats

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

func (*Request) GetQueryInt

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

func (*Request) GetQueryInterfaces

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

func (*Request) GetQueryInts

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

func (*Request) GetQueryMap

func (r *Request) GetQueryMap(def ...map[string]string) map[string]string

获取指定键名的关联数组,并且给定当指定键名不存在时的默认值

func (*Request) GetQueryString

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

func (*Request) GetQueryStrings

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

func (*Request) GetQueryToStruct

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

将所有的get参数映射到struct属性上,参数object应当为一个struct对象的指针, mapping为非必需参数,自定义参数与属性的映射关系

func (*Request) GetQueryUint

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

func (*Request) GetQueryVar

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

func (*Request) GetRaw

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

获取原始请求输入二进制。

func (*Request) GetRawString

func (r *Request) GetRawString() string

获取原始请求输入字符串。

func (*Request) GetReferer

func (r *Request) GetReferer() string

获得请求来源URL地址

func (*Request) GetRequest

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

获得router、post或者get提交的参数,如果有同名参数,那么按照router->get->post优先级进行覆盖

func (*Request) GetRequestArray

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

func (*Request) GetRequestBool

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

func (*Request) GetRequestFloat32

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

func (*Request) GetRequestFloat64

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

func (*Request) GetRequestFloats

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

func (*Request) GetRequestInt

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

func (*Request) GetRequestInterfaces

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

func (*Request) GetRequestInts

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

func (*Request) GetRequestMap

func (r *Request) GetRequestMap(def ...map[string]string) map[string]string

获取指定键名的关联数组,并且给定当指定键名不存在时的默认值 需要注意的是,如果其中一个字段为数组形式,那么只会返回第一个元素,如果需要获取全部的元素,请使用GetRequestArray获取特定字段内容

func (*Request) GetRequestString

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

func (*Request) GetRequestStrings

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

func (*Request) GetRequestToStruct

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

将所有的request参数映射到struct属性上,参数object应当为一个struct对象的指针, mapping为非必需参数,自定义参数与属性的映射关系

func (*Request) GetRequestUint

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

func (*Request) GetRequestVar

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

func (*Request) GetRouterArray

func (r *Request) GetRouterArray(key string) []string

获得路由解析参数

func (*Request) GetRouterString

func (r *Request) GetRouterString(key string) string

获得路由解析参数

func (*Request) GetSessionId

func (r *Request) GetSessionId() string

从Cookie和Header中查询SESSIONID

func (*Request) GetString

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

func (*Request) GetStrings

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

func (*Request) GetToStruct

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

将所有的request参数映射到struct属性上,参数pointer应当为一个struct对象的指针, mapping为非必需参数,自定义参数与属性的映射关系

func (*Request) GetUint

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

func (*Request) GetUrl

func (r *Request) GetUrl() string

获得当前请求URL地址

func (*Request) GetVar

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

建议都用该参数替代参数获取

func (*Request) IsAjaxRequest

func (r *Request) IsAjaxRequest() bool

判断是否为AJAX请求

func (*Request) IsExited

func (r *Request) IsExited() bool

判断当前请求是否停止执行

func (*Request) IsFileRequest

func (r *Request) IsFileRequest() bool

判断是否为静态文件请求

func (*Request) MakeSessionId

func (r *Request) MakeSessionId() string

生成随机的SESSIONID

func (*Request) SetParam

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

设置请求流程共享变量

func (*Request) SetPost

func (r *Request) SetPost(key string, value string)

设置POST参数,仅在ghttp.Server内有效,**注意并发安全性**

func (*Request) SetQuery

func (r *Request) SetQuery(key string, value string)

设置GET参数,仅在ghttp.Server内有效,**注意并发安全性**

func (*Request) SetRouterString

func (r *Request) SetRouterString(key, value string)

func (*Request) WebSocket

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

获取Web Socket连接对象(如果是非WS请求会失败,注意检查返回的error结果)

type Response

type Response struct {
	ResponseWriter
	Server *Server         // 所属Web Server
	Writer *ResponseWriter // ResponseWriter的别名
	// contains filtered or unexported fields
}

服务端请求返回对象。 注意该对象并没有实现http.ResponseWriter接口,而是依靠ghttp.ResponseWriter实现。

func (*Response) Buffer

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

获取当前缓冲区中的数据

func (*Response) BufferLength

func (r *Response) BufferLength() int

获取当前缓冲区中的数据大小

func (*Response) CORS

func (r *Response) CORS(options CORSOptions)

See https://www.w3.org/TR/cors/ . 允许请求跨域访问.

func (*Response) CORSDefault

func (r *Response) CORSDefault()

允许请求跨域访问(使用默认配置).

func (*Response) ClearBuffer

func (r *Response) ClearBuffer()

清空缓冲区内容

func (*Response) DefaultCORSOptions

func (r *Response) DefaultCORSOptions() CORSOptions

默认的CORS配置

func (*Response) Output

func (r *Response) Output()

输出缓冲区数据到客户端.

func (*Response) ParseTpl

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

解析模板文件,并返回模板内容

func (*Response) ParseTplContent

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

解析并返回模板内容

func (*Response) RedirectBack

func (r *Response) RedirectBack()

返回location标识,引导客户端跳转到来源页面

func (*Response) RedirectTo

func (r *Response) RedirectTo(location string)

返回location标识,引导客户端跳转。 注意这里要先把设置的cookie输出,否则会被忽略。

func (*Response) ServeFile

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

静态文件处理

func (*Response) ServeFileDownload

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

静态文件下载处理

func (*Response) SetBuffer

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

手动设置缓冲区内容

func (*Response) Write

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

返回信息,任何变量自动转换为bytes

func (*Response) WriteJson

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

返回JSON

func (*Response) WriteJsonP

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

返回JSONP

func (*Response) WriteStatus

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

返回HTTP Code状态码

func (*Response) WriteTpl

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

展示模板,可以给定模板参数,及临时的自定义模板函数

func (*Response) WriteTplContent

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

展示模板内容,可以给定模板参数,及临时的自定义模板函数

func (*Response) WriteXml

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

返回XML

func (*Response) Writef

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

返回信息,支持自定义format格式

func (*Response) Writefln

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

返回信息,末尾增加换行标识符"\n"

func (*Response) Writeln

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

返回信息,末尾增加换行标识符"\n"

type ResponseWriter

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

自定义的ResponseWriter,用于写入流的控制

func (*ResponseWriter) OutputBuffer

func (w *ResponseWriter) OutputBuffer()

输出buffer数据到客户端.

func (*ResponseWriter) Write

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

覆盖父级的WriteHeader方法

func (*ResponseWriter) WriteHeader

func (w *ResponseWriter) WriteHeader(status int)

覆盖父级的WriteHeader方法, 这里只会记录Status做缓冲处理, 并不会立即输出到HEADER。

type Router

type Router struct {
	Uri      string   // 注册时的pattern - uri
	Method   string   // 注册时的pattern - method
	Domain   string   // 注册时的pattern - domain
	RegRule  string   // 路由规则解析后对应的正则表达式
	RegNames []string // 路由规则解析后对应的变量名称数组
	Priority int      // 优先级,用于链表排序,值越大优先级越高
}

路由对象

type RouterGroup

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

分组路由对象

func (*RouterGroup) ALL

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

绑定所有的HTTP Method请求方式

func (*RouterGroup) Bind

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

执行分组路由批量绑定

func (*RouterGroup) COMMON

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

绑定常用方法: GET/PUT/POST/DELETE

func (*RouterGroup) CONNECT

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

func (*RouterGroup) Clone

func (g *RouterGroup) Clone() *RouterGroup

func (*RouterGroup) DELETE

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

func (*RouterGroup) GET

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

func (*RouterGroup) Group

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

层级递归创建分组路由注册项

func (*RouterGroup) HEAD

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

func (*RouterGroup) Hook

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

func (*RouterGroup) Middleware

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

func (*RouterGroup) OPTIONS

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

func (*RouterGroup) PATCH

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

func (*RouterGroup) POST

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

func (*RouterGroup) PUT

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

func (*RouterGroup) REST

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

func (*RouterGroup) TRACE

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

type Server

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

Server结构体

func GetServer

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

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

func (*Server) AddMiddleware

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

注册中间件,绑定到全局路由规则("/*")上,中间件参数支持多个。

func (*Server) AddSearchPath

func (s *Server) AddSearchPath(path string)

添加静态文件搜索**目录**,必须给定目录的绝对路径

func (*Server) AddStaticPath

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

添加URI与静态**目录**的映射

func (*Server) BindController

func (s *Server) BindController(pattern string, c Controller, methods ...string)

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

func (*Server) BindControllerMethod

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

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

func (*Server) BindControllerRest

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

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

func (*Server) BindHandler

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

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

func (*Server) BindHookHandler

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

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

func (*Server) BindHookHandlerByMap

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

通过map批量绑定回调函数

func (*Server) BindMiddleware

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

注册中间件,绑定到指定的路由规则上,中间件参数支持多个。

func (*Server) BindObject

func (s *Server) BindObject(pattern string, obj interface{}, methods ...string)

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

func (*Server) BindObjectMethod

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

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

func (*Server) BindObjectRest

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

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

func (*Server) BindStatusHandler

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

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

func (*Server) BindStatusHandlerByMap

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

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

func (*Server) Domain

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

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

func (*Server) DumpRoutesMap

func (s *Server) DumpRoutesMap()

打印展示路由表

func (*Server) EnableAdmin

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

开启服务管理支持

func (*Server) EnableHTTPS

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

开启HTTPS支持,但是必须提供Cert和Key文件,tlsConfig为可选项

func (*Server) EnablePprof

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

开启pprof支持

func (*Server) GetCookieDomain

func (s *Server) GetCookieDomain() string

获取http server参数 - CookieDomain

func (*Server) GetCookieMaxAge

func (s *Server) GetCookieMaxAge() int64

获取http server参数 - CookieMaxAge

func (*Server) GetCookiePath

func (s *Server) GetCookiePath() string

获取http server参数 - CookiePath

func (*Server) GetLogHandler

func (s *Server) GetLogHandler() LogHandler

获取日志写入的回调函数

func (*Server) GetLogPath

func (s *Server) GetLogPath() string

获取日志目录

func (*Server) GetName

func (s *Server) GetName() string

获取WebServer名称

func (*Server) GetRouteMap

func (s *Server) GetRouteMap() string

获得路由表(格式化字符串)

func (*Server) GetSessionIdName

func (s *Server) GetSessionIdName() string

获取http server参数 - SessionIdName

func (*Server) GetSessionMaxAge

func (s *Server) GetSessionMaxAge() int64

获取http server参数 - SessionMaxAge

func (*Server) GetSessionStoragePath

func (s *Server) GetSessionStoragePath() string

获取http server参数 - SessionStoragePath

func (*Server) Group

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

获取分组路由对象

func (*Server) IsAccessLogEnabled

func (s *Server) IsAccessLogEnabled() bool

access log日志功能是否开启

func (*Server) IsErrorLogEnabled

func (s *Server) IsErrorLogEnabled() bool

error log日志功能是否开启

func (*Server) Run

func (s *Server) Run()

阻塞执行监听

func (*Server) SetAccessLogEnabled

func (s *Server) SetAccessLogEnabled(enabled bool)

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

func (*Server) SetAddr

func (s *Server) SetAddr(itemFunc string)

设置http server参数 - Addr

func (*Server) SetAllowIps

func (s *Server) SetAllowIps(ips []string)

func (*Server) SetConfig

func (s *Server) SetConfig(c ServerConfig)

http server setting设置 注意使用该方法进行http server配置时,需要配置所有的配置项,否则没有配置的属性将会默认变量为空

func (*Server) SetCookieDomain

func (s *Server) SetCookieDomain(domain string)

设置http server参数 - CookieDomain

func (*Server) SetCookieMaxAge

func (s *Server) SetCookieMaxAge(age int64)

设置http server参数 - CookieMaxAge

func (*Server) SetCookiePath

func (s *Server) SetCookiePath(path string)

设置http server参数 - CookiePath

func (*Server) SetDenyIps

func (s *Server) SetDenyIps(ips []string)

func (*Server) SetDenyRoutes

func (s *Server) SetDenyRoutes(routes []string)

func (*Server) SetDumpRouteMap

func (s *Server) SetDumpRouteMap(enabled bool)

是否在程序启动时打印路由表信息

func (*Server) SetErrorLogEnabled

func (s *Server) SetErrorLogEnabled(enabled bool)

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

func (*Server) SetFileServerEnabled

func (s *Server) SetFileServerEnabled(enabled bool)

是否开启/关闭静态文件服务,当关闭时仅提供动态接口服务,路由性能会得到一定提升

func (*Server) SetGzipContentTypes

func (s *Server) SetGzipContentTypes(types []string)

func (*Server) SetHTTPSAddr

func (s *Server) SetHTTPSAddr(itemFunc string)

设置http server参数 - HTTPS Addr

func (*Server) SetHTTPSPort

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

设置http server参数 - HTTPS Port

func (*Server) SetIdleTimeout

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

设置http server参数 - IdleTimeout

func (*Server) SetIndexFiles

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

设置http server参数 - IndexFiles,默认展示文件,如:index.html, index.htm

func (*Server) SetIndexFolder

func (s *Server) SetIndexFolder(enabled bool)

允许展示访问目录的文件列表

func (*Server) SetKeepAlive

func (s *Server) SetKeepAlive(enabled bool)

设置KeepAlive

func (*Server) SetLogHandler

func (s *Server) SetLogHandler(handler LogHandler)

设置日志写入的回调函数

func (*Server) SetLogPath

func (s *Server) SetLogPath(path string)

设置日志目录,只有在设置了日志目录的情况下才会输出日志到日志文件中。 日志文件路径格式为: 1. 请求日志: access/YYYY-MM-DD.log 2. 错误日志: error/YYYY-MM-DD.log

func (*Server) SetLogStdout

func (s *Server) SetLogStdout(enabled bool)

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

func (*Server) SetMaxHeaderBytes

func (s *Server) SetMaxHeaderBytes(b int)

设置http server参数 - MaxHeaderBytes

func (*Server) SetNameToUriType

func (s *Server) SetNameToUriType(t int)

服务注册时对象和方法名称转换为URI时的规则

func (*Server) SetPort

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

设置http server参数 - Port

func (*Server) SetReadTimeout

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

设置http server参数 - ReadTimeout

func (*Server) SetRewrite

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

设置URI重写规则

func (*Server) SetRewriteMap

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

设置URI重写规则(批量)

func (*Server) SetRouterCacheExpire

func (s *Server) SetRouterCacheExpire(expire int)

设置路由缓存过期时间(秒)

func (*Server) SetServerAgent

func (s *Server) SetServerAgent(agent string)

设置http server参数 - ServerAgent

func (*Server) SetServerRoot

func (s *Server) SetServerRoot(root string)

设置http server参数 - ServerRoot

func (*Server) SetSessionIdName

func (s *Server) SetSessionIdName(name string)

设置http server参数 - SessionIdName

func (*Server) SetSessionMaxAge

func (s *Server) SetSessionMaxAge(age int64)

设置http server参数 - SessionMaxAge

func (*Server) SetSessionStoragePath

func (s *Server) SetSessionStoragePath(path string)

设置http server参数 - SessionStoragePath

func (*Server) SetTLSConfig

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

设置TLS配置对象

func (*Server) SetView

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

设置模板引擎对象

func (*Server) SetWriteTimeout

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

设置http server参数 - WriteTimeout

func (*Server) Shutdown

func (s *Server) Shutdown() error

关闭当前Web Server

func (*Server) Start

func (s *Server) Start() error

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

func (*Server) Status

func (s *Server) Status() int

获取当前服务器的状态

func (*Server) UpdateSession

func (s *Server) UpdateSession(id string, data map[string]interface{})

UpdateSession updates the session with custom map.

type ServerConfig

type ServerConfig struct {
	Addr               string            // 监听IP和端口,监听本地所有IP使用":端口"(支持多个地址,使用","号分隔)
	HTTPSAddr          string            // HTTPS服务监听地址(支持多个地址,使用","号分隔)
	HTTPSCertPath      string            // HTTPS证书文件路径
	HTTPSKeyPath       string            // HTTPS签名文件路径
	Handler            http.Handler      // 默认的处理函数
	ReadTimeout        time.Duration     // 读取超时
	WriteTimeout       time.Duration     // 写入超时
	IdleTimeout        time.Duration     // 等待超时
	MaxHeaderBytes     int               // 最大的header长度
	TLSConfig          tls.Config        // HTTPS证书配置
	KeepAlive          bool              // 是否开启长连接
	ServerAgent        string            // Server Agent
	View               *gview.View       // 模板引擎对象
	Rewrites           map[string]string // URI Rewrite重写配置
	IndexFiles         []string          // Static: 默认访问的文件列表
	IndexFolder        bool              // Static: 如果访问目录是否显示目录列表
	ServerRoot         string            // Static: 服务器服务的本地目录根路径(检索优先级比StaticPaths低)
	SearchPaths        []string          // Static: 静态文件搜索目录(包含ServerRoot,按照优先级进行排序)
	StaticPaths        []staticPathItem  // Static: 静态文件目录映射(按照优先级进行排序)
	FileServerEnabled  bool              // Static: 是否允许静态文件服务(通过静态文件服务方法调用自动识别)
	CookieMaxAge       int64             // Cookie: 有效期(秒)
	CookiePath         string            // Cookie: 有效Path(注意同时也会影响SessionID)
	CookieDomain       string            // Cookie: 有效Domain(注意同时也会影响SessionID)
	SessionMaxAge      int64             // Session: 有效期(秒)
	SessionIdName      string            // Session: SessionId
	SessionStoragePath string            // Session: 存储路径
	DenyIps            []string          // Security: 不允许访问的ip列表,支持ip前缀过滤,如: 10 将不允许10开头的ip访问
	AllowIps           []string          // Security: 仅允许访问的ip列表,支持ip前缀过滤,如: 10 将仅允许10开头的ip访问
	DenyRoutes         []string          // Security: 不允许访问的路由规则列表
	LogPath            string            // Logging: 存放日志的目录路径(默认为空,表示不写文件)
	LogHandler         LogHandler        // Logging: 日志配置: 自定义日志处理回调方法(默认为空)
	LogStdout          bool              // Logging: 是否打印日志到终端(默认开启)
	ErrorLogEnabled    bool              // Logging: 是否开启error log(默认开启)
	AccessLogEnabled   bool              // Logging: 是否开启access log(默认关闭)
	NameToUriType      int               // Mess: 服务注册时对象和方法名称转换为URI时的规则
	GzipContentTypes   []string          // Mess: 允许进行gzip压缩的文件类型
	DumpRouteMap       bool              // Mess: 是否在程序启动时默认打印路由表信息
	RouterCacheExpire  int               // Mess: 路由检索缓存过期时间(秒)
}

HTTP Server 设置结构体,静态配置

func Config

func Config() ServerConfig

获取默认的http server设置

type Session

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

SESSION对象,并发安全

func GetSession

func GetSession(r *Request) *Session

获取或者生成一个session对象(延迟初始化)

func (*Session) Clear

func (s *Session) Clear()

清空session

func (*Session) Contains

func (s *Session) Contains(key string) bool

判断键名是否存在

func (*Session) Export

func (s *Session) Export() (data []byte, err error)

将session数据导出为[]byte数据(目前使用json进行序列化)

func (*Session) Get

func (s *Session) Get(key string, def ...interface{}) interface{}

获取SESSION变量

func (*Session) GetBool

func (s *Session) GetBool(key string, def ...interface{}) bool

func (*Session) GetBytes

func (s *Session) GetBytes(key string, def ...interface{}) []byte

func (*Session) GetDuration

func (s *Session) GetDuration(key string, def ...interface{}) time.Duration

func (*Session) GetFloat32

func (s *Session) GetFloat32(key string, def ...interface{}) float32

func (*Session) GetFloat64

func (s *Session) GetFloat64(key string, def ...interface{}) float64

func (*Session) GetFloats

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

func (*Session) GetGTime

func (s *Session) GetGTime(key string, format ...string) *gtime.Time

func (*Session) GetInt

func (s *Session) GetInt(key string, def ...interface{}) int

func (*Session) GetInt16

func (s *Session) GetInt16(key string, def ...interface{}) int16

func (*Session) GetInt32

func (s *Session) GetInt32(key string, def ...interface{}) int32

func (*Session) GetInt64

func (s *Session) GetInt64(key string, def ...interface{}) int64

func (*Session) GetInt8

func (s *Session) GetInt8(key string, def ...interface{}) int8

func (*Session) GetInterfaces

func (s *Session) GetInterfaces(key string, def ...interface{}) []interface{}

func (*Session) GetInts

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

func (*Session) GetMap

func (s *Session) GetMap(key string, tags ...string) map[string]interface{}

func (*Session) GetMapDeep

func (s *Session) GetMapDeep(key string, tags ...string) map[string]interface{}

func (*Session) GetMaps

func (s *Session) GetMaps(key string, tags ...string) []map[string]interface{}

func (*Session) GetMapsDeep

func (s *Session) GetMapsDeep(key string, tags ...string) []map[string]interface{}

func (*Session) GetString

func (s *Session) GetString(key string, def ...interface{}) string

func (*Session) GetStrings

func (s *Session) GetStrings(key string, def ...interface{}) []string

func (*Session) GetStruct

func (s *Session) GetStruct(key string, pointer interface{}, mapping ...map[string]string) error

func (*Session) GetStructDeep

func (s *Session) GetStructDeep(key string, pointer interface{}, mapping ...map[string]string) error

func (*Session) GetStructs

func (s *Session) GetStructs(key string, pointer interface{}, mapping ...map[string]string) error

func (*Session) GetStructsDeep

func (s *Session) GetStructsDeep(key string, pointer interface{}, mapping ...map[string]string) error

func (*Session) GetTime

func (s *Session) GetTime(key string, format ...string) time.Time

func (*Session) GetUint

func (s *Session) GetUint(key string, def ...interface{}) uint

func (*Session) GetUint16

func (s *Session) GetUint16(key string, def ...interface{}) uint16

func (*Session) GetUint32

func (s *Session) GetUint32(key string, def ...interface{}) uint32

func (*Session) GetUint64

func (s *Session) GetUint64(key string, def ...interface{}) uint64

func (*Session) GetUint8

func (s *Session) GetUint8(key string, def ...interface{}) uint8

func (*Session) GetVar

func (s *Session) GetVar(key string, def ...interface{}) *gvar.Var

获取SESSION,建议都用该方法获取参数

func (*Session) Id

func (s *Session) Id() string

获取/创建SessionId

func (*Session) IsDirty

func (s *Session) IsDirty() bool

判断session是否有修改(包括新创建)

func (*Session) Map

func (s *Session) Map() map[string]interface{}

获取当前session所有数据,注意是值拷贝

func (*Session) Remove

func (s *Session) Remove(key string)

删除指定session键值对

func (*Session) Restore

func (s *Session) Restore(data []byte) (err error)

从[]byte中恢复session数据(目前使用json进行序列化)

func (*Session) Set

func (s *Session) Set(key string, value interface{})

设置session

func (*Session) Sets

func (s *Session) Sets(m map[string]interface{})

批量设置

func (*Session) Size

func (s *Session) Size() int

获得session map大小

func (*Session) UpdateExpire

func (s *Session) UpdateExpire()

更新过期时间(如果用在守护进程中长期使用,需要手动调用进行更新,防止超时被清除)

type WebSocket

type WebSocket struct {
	*websocket.Conn
}

Jump to

Keyboard shortcuts

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