Documentation ¶
Index ¶
- func ListenAndServe(Addr string, gs *GHttpServe)
- func ListenAndServeTLS(gs *GHttpServe, Addr, certFilePath, keyFilePath string, ...)
- type Context
- func (c *Context) ClientIP() string
- func (c *Context) ContentType() string
- func (c *Context) Cookie(name string) (string, error)
- func (c *Context) Distribution(url string, fusing Fusing)
- func (c *Context) DistributionTLS(url string, tLSConfig *TLSConfig, fusing Fusing)
- func (c *Context) Distributions(addr string, transport *Transport, fusing Fusing)
- func (c *Context) GetRawData() ([]byte, error)
- func (c *Context) HeaderGet(key string) string
- func (c *Context) HeaderSet(key, value string)
- func (c *Context) IsWebsocket() bool
- func (c *Context) Param(key string) string
- func (c *Context) Params() map[string]string
- func (c *Context) ReceiveForm() (map[string]interface{}, error)
- func (c *Context) ReceiveJSON(model interface{}) error
- func (c *Context) ReceiveMsgPack(model interface{}) error
- func (c *Context) ReceiveMultipartForm() (*tune.MultipartForm, error)
- func (c *Context) ReceiveProtoBuf(pm proto.Message) error
- func (c *Context) ReceiveXML(model interface{}) error
- func (c *Context) ReceiveYaml(model interface{}) error
- func (c *Context) Redirect(statusCode int, addr string) error
- func (c *Context) Request() *http.Request
- func (c *Context) ResponseFile(statusCode int, filename, filepath string) error
- func (c *Context) ResponseJSON(statusCode int, model interface{}) error
- func (c *Context) ResponseMsgPack(statusCode int, model interface{}) error
- func (c *Context) ResponseProtoBuf(statusCode int, pm proto.Message) error
- func (c *Context) ResponseText(statusCode int, text string) error
- func (c *Context) ResponseXML(statusCode int, model interface{}) error
- func (c *Context) ResponseYaml(statusCode int, model interface{}) error
- func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
- func (c *Context) SetSameSite(sameSite http.SameSite)
- func (c *Context) Status(code int)
- func (c *Context) Value(key string) string
- func (c *Context) Values() map[string]string
- type Extend
- type Filter
- type Fusing
- type GHttpRouter
- func (ghr *GHttpRouter) Connect(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Connects(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Delete(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Deletes(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Get(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Gets(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Head(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Heads(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Option(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Options(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Patch(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Patches(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Post(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Posts(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Proxies(pattern string, proxy *Proxy, extend *Extend, filters ...Filter)
- func (ghr *GHttpRouter) Put(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Puts(pattern string, extend *Extend, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Trace(pattern string, handler Handler, filters ...Filter)
- func (ghr *GHttpRouter) Traces(pattern string, extend *Extend, handler Handler, filters ...Filter)
- type GHttpServe
- type Handler
- type Limit
- type Proxy
- type TLSConfig
- type Target
- type Transport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ListenAndServe ¶
func ListenAndServe(Addr string, gs *GHttpServe)
ListenAndServe 启动监听
Addr 期望监听的端口号,如“:8080”
func ListenAndServeTLS ¶
func ListenAndServeTLS(gs *GHttpServe, Addr, certFilePath, keyFilePath string, insecureSkipVerify bool, caCertFilePaths ...string)
ListenAndServeTLS 启动监听
Addr 期望监听的端口号,如“:8080”
必须提供包含证书和与服务器匹配的私钥的文件。如果证书是由证书颁发机构签署的,则certFile应该是服务器证书、任何中间体和CA证书的连接。
Types ¶
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context grope 请求处理上下文
func (*Context) Cookie ¶
Cookie returns the named cookie provided in the request or ErrNoCookie if not found. And return the named cookie is unescaped. If multiple cookies match the given name, only one cookie will be returned.
func (*Context) Distribution ¶
Distribution 请求转发
addr是期望的转发路径,一般可指定为"http://ip:port"、"https://ip:port"、"http://url.com"
func (*Context) DistributionTLS ¶
DistributionTLS 请求转发
addr是期望的转发路径,一般可指定为"http://ip:port"、"https://ip:port"、"http://url.com"
tLSConfig http tls 请求配置
func (*Context) Distributions ¶
Distributions 请求转发
addr是期望的转发路径,一般可指定为"http://ip:port"、"https://ip:port"、"http://url.com"
transport 支持HTTP和HTTPS的传输配置
func (*Context) IsWebsocket ¶
IsWebsocket 如果请求头指示客户端正在发起websocket握手,则IsWebsocket返回true
func (*Context) ReceiveForm ¶
ReceiveForm 接收一个"application/x-www-form-urlencoded"请求
func (*Context) ReceiveJSON ¶
ReceiveJSON 接收一个"application/json"请求
func (*Context) ReceiveMsgPack ¶
ReceiveMsgPack 接收一个"application/x-msgpack"请求
func (*Context) ReceiveMultipartForm ¶
func (c *Context) ReceiveMultipartForm() (*tune.MultipartForm, error)
ReceiveMultipartForm 接收一个"multipart/form-data"请求
func (*Context) ReceiveProtoBuf ¶
ReceiveProtoBuf 接收一个"application/x-protobuf"请求
func (*Context) ReceiveXML ¶
ReceiveXML 接收一个"application/xml"请求
func (*Context) ReceiveYaml ¶
ReceiveYaml 接收一个"application/x-yaml"请求
func (*Context) ResponseFile ¶
ResponseFile 返回一个"application/octet-stream"
statusCode eg:http.StatusOK
func (*Context) ResponseMsgPack ¶
ResponseMsgPack 返回一个"application/x-msgpack"
statusCode eg:http.StatusOK
func (*Context) ResponseProtoBuf ¶
ResponseProtoBuf 返回一个"application/x-protobuf"
statusCode eg:http.StatusOK
func (*Context) SetCookie ¶
func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
SetCookie adds a Set-Cookie header to the ResponseWriter's headers. The provided cookie must have a valid Name. Invalid cookies may be silently dropped.
func (*Context) SetSameSite ¶
SetSameSite with cookie
type GHttpRouter ¶
type GHttpRouter struct {
// contains filtered or unexported fields
}
GHttpRouter Http服务路由结构
func (*GHttpRouter) Connect ¶
func (ghr *GHttpRouter) Connect(pattern string, handler Handler, filters ...Filter)
Connect 发起一个 Connect 请求接收项目
CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Connects ¶
func (ghr *GHttpRouter) Connects(pattern string, extend *Extend, handler Handler, filters ...Filter)
Connects 发起一个 Connect 请求接收项目
CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Delete ¶
func (ghr *GHttpRouter) Delete(pattern string, handler Handler, filters ...Filter)
Delete 发起一个 Delete 请求接收项目
DELETE请求用于请求服务器删除所请求URI(统一资源标识符,Uniform Resource Identifier)所标识的资源。 DELETE请求后指定资源会被删除,DELETE方法也是幂等的。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Deletes ¶
func (ghr *GHttpRouter) Deletes(pattern string, extend *Extend, handler Handler, filters ...Filter)
Deletes 发起一个 Delete 请求接收项目
DELETE请求用于请求服务器删除所请求URI(统一资源标识符,Uniform Resource Identifier)所标识的资源。 DELETE请求后指定资源会被删除,DELETE方法也是幂等的。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Get ¶
func (ghr *GHttpRouter) Get(pattern string, handler Handler, filters ...Filter)
Get 发起一个 Get 请求接收项目
GET请求会显示请求指定的资源。一般来说GET方法应该只用于数据的读取,而不应当用于会产生副作用的非幂等的操作中。 GET会方法请求指定的页面信息,并返回响应主体,GET被认为是不安全的方法,因为GET方法会被网络蜘蛛等任意的访问。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Gets ¶
func (ghr *GHttpRouter) Gets(pattern string, extend *Extend, handler Handler, filters ...Filter)
Gets 发起一个 Get 请求接收项目
GET请求会显示请求指定的资源。一般来说GET方法应该只用于数据的读取,而不应当用于会产生副作用的非幂等的操作中。 GET会方法请求指定的页面信息,并返回响应主体,GET被认为是不安全的方法,因为GET方法会被网络蜘蛛等任意的访问。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Head ¶
func (ghr *GHttpRouter) Head(pattern string, handler Handler, filters ...Filter)
Head 发起一个 Head 请求接收项目
HEAD方法与GET方法一样,都是向服务器发出指定资源的请求。 但是,服务器在响应HEAD请求时不会回传资源的内容部分,即:响应主体。 这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。HEAD方法常被用于客户端查看服务器的性能。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Heads ¶
func (ghr *GHttpRouter) Heads(pattern string, extend *Extend, handler Handler, filters ...Filter)
Heads 发起一个 Head 请求接收项目
HEAD方法与GET方法一样,都是向服务器发出指定资源的请求。 但是,服务器在响应HEAD请求时不会回传资源的内容部分,即:响应主体。 这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。HEAD方法常被用于客户端查看服务器的性能。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Option ¶
func (ghr *GHttpRouter) Option(pattern string, handler Handler, filters ...Filter)
Option 发起一个 Options 请求接收项目
OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的所有HTTP请求方法,该方法会用’*’来代替资源名称,向服务器发送OPTIONS请求,可以测试服务器功能是否正常。 JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Options ¶
func (ghr *GHttpRouter) Options(pattern string, extend *Extend, handler Handler, filters ...Filter)
Options 发起一个 Options 请求接收项目
OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的所有HTTP请求方法,该方法会用’*’来代替资源名称,向服务器发送OPTIONS请求,可以测试服务器功能是否正常。 JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Patch ¶
func (ghr *GHttpRouter) Patch(pattern string, handler Handler, filters ...Filter)
Patch 发起一个 Patch 请求接收项目
PATCH方法出现的较晚,它在2010年的RFC 5789标准中被定义。PATCH请求与PUT请求类似,同样用于资源的更新。二者有以下两点不同: PATCH一般用于资源的部分更新,而PUT一般用于资源的整体更新。 当资源不存在时,PATCH会创建一个新的资源,而PUT只会对已在资源进行更新。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Patches ¶
func (ghr *GHttpRouter) Patches(pattern string, extend *Extend, handler Handler, filters ...Filter)
Patches 发起一个 Patch 请求接收项目
PATCH方法出现的较晚,它在2010年的RFC 5789标准中被定义。PATCH请求与PUT请求类似,同样用于资源的更新。二者有以下两点不同: PATCH一般用于资源的部分更新,而PUT一般用于资源的整体更新。 当资源不存在时,PATCH会创建一个新的资源,而PUT只会对已在资源进行更新。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Post ¶
func (ghr *GHttpRouter) Post(pattern string, handler Handler, filters ...Filter)
Post 发起一个 Post 请求接收项目
POST请求会 向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。 POST方法是非幂等的方法,因为这个请求可能会创建新的资源或/和修改现有资源。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Posts ¶
func (ghr *GHttpRouter) Posts(pattern string, extend *Extend, handler Handler, filters ...Filter)
Posts 发起一个 Post 请求接收项目
POST请求会 向指定资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。 POST方法是非幂等的方法,因为这个请求可能会创建新的资源或/和修改现有资源。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Proxies ¶
func (ghr *GHttpRouter) Proxies(pattern string, proxy *Proxy, extend *Extend, filters ...Filter)
Proxies 发起一个 Proxy 请求接收项目
PROXY 代理http请求相关 ¶
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Put ¶
func (ghr *GHttpRouter) Put(pattern string, handler Handler, filters ...Filter)
Put 发起一个 Put 请求接收项目
PUT请求会身向指定资源位置上传其最新内容,PUT方法是幂等的方法。通过该方法客户端可以将指定资源的最新数据传送给服务器取代指定的资源的内容。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Puts ¶
func (ghr *GHttpRouter) Puts(pattern string, extend *Extend, handler Handler, filters ...Filter)
Puts 发起一个 Put 请求接收项目
PUT请求会身向指定资源位置上传其最新内容,PUT方法是幂等的方法。通过该方法客户端可以将指定资源的最新数据传送给服务器取代指定的资源的内容。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Trace ¶
func (ghr *GHttpRouter) Trace(pattern string, handler Handler, filters ...Filter)
Trace 发起一个 Trace 请求接收项目
TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
func (*GHttpRouter) Traces ¶
func (ghr *GHttpRouter) Traces(pattern string, extend *Extend, handler Handler, filters ...Filter)
Traces 发起一个 Trace 请求接收项目
TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。
pattern 项目路径,如“/demo/:id/:name”,与路由根路径相结合,最终会通过类似“http://127.0.0.1:8080/test/demo/1/g”方式进行访问
model 期望接收的结构,如“&Test{}”,最终在Handler方法中得以调用
handler 待实现接收请求方法
filters 待实现拦截器/过滤器方法数组
type GHttpServe ¶
type GHttpServe struct {
// contains filtered or unexported fields
}
GHttpServe Http服务
func (*GHttpServe) Group ¶
func (ghs *GHttpServe) Group(pattern string, filters ...Filter) *GHttpRouter
Group 设置路由根路径
pattern 路由根路径,如“/test”
filters 待实现拦截器/过滤器方法数组
func (*GHttpServe) ServeHTTP ¶
func (ghs *GHttpServe) ServeHTTP(w http.ResponseWriter, r *http.Request)
type Limit ¶
type Limit struct { LimitMillisecond int64 // 请求限定的时间段(毫秒) LimitCount int // 请求限定的时间段内允许的请求次数 LimitIntervalMillisecond int64 // 请求允许的最小间隔时间(毫秒),0表示不限 // contains filtered or unexported fields }
Limit 限流策略
type TLSConfig ¶
type TLSConfig struct { // 服务端根证书,用于我方验证对方证书合法性 CACrtFilePath string // 服务端签发的子证书,用于对方验证我方证书合法性 CertFilePath string // 客户端私钥,用于对方验证我方证书合法性 KeyFilePath string // 是否验证服务端证书,即双向认证 InsecureSkipVerify bool }
TLSConfig http tls 请求配置
type Target ¶
type Target struct { Host string // eg:localhost Port string // eg:8080 Pattern string // eg:“/demo/id/name” Weight int // 负载权重,如果负载模型选择权重模型则有效 }
Target 代理目标结构
type Transport ¶
type Transport struct { // 等待连接完成的超时时间,默认30s Timeout time.Duration // 指定网络连接的活动实践间隔,默认30s KeepAlive time.Duration // 控制最大空闲(保持活动)连接数。0表示没有限制,默认100 MaxIdleConns int // 一个空闲(保持活动)连接在关闭之前保持空闲的最大时间量。0表示没有限制,默认90s IdleConnTimeout time.Duration // 指定等待TLS握手的最大时间量。0表示没有限制,默认10s TLSHandshakeTimeout time.Duration // 指定在完全写入请求标头之后等待服务器的第一个响应头的时间量(如果请求具有“Expect: 100-continue”头信息)。 // 零意味着没有超时,并且会立即发送正文,而无需等待服务器的批准。 // 此时间不包括发送请求标头的时间。 默认1s ExpectContinueTimeout time.Duration // 指定每个主机的最大空闲(保持活动)连接,默认100 MaxIdleConnsPerHost int // http tls 请求配置 TLSConfig *TLSConfig }
Transport 支持HTTP和HTTPS的传输配置