Documentation ¶
Overview ¶
Package ghttp 提供了强大的HTTP服务器及简洁的客户端实现。
Index ¶
- Constants
- Variables
- func MiddlewareHandlerResponse(r *X请求)
- func PProf服务端创建(监听端口 int, 作废参数 ...string)
- func X中间件函数_验证JSON格式请求体(r *X请求)
- func X中间件跨域函数(r *X请求)
- func X取所支持的HTTP方法() []string
- func X平滑关闭所有服务(上下文 context.Context) error
- func X平滑重启所有服务(上下文 context.Context, 新可执行文件路径 string) error
- func X生成请求参数(参数 interface{}, 不进行URL编码 ...bool) (请求参数 string)
- func X等待所有服务完成()
- type CORSOptions
- type Cookie
- func (c *Cookie) X删除cookie(名称, 域名, 路径 string)
- func (c *Cookie) X删除值(名称 string)
- func (c *Cookie) X取Map() map[string]string
- func (c *Cookie) X取SessionId() string
- func (c *Cookie) X取值(名称 string, 默认值 ...string) *泛型类.Var
- func (c *Cookie) X是否已过期(名称 string) bool
- func (c *Cookie) X设置SessionId到Cookie(id string)
- func (c *Cookie) X设置cookie(名称, 值, 域名, 路径 string, 最大存活时长 time.Duration, ...)
- func (c *Cookie) X设置httpcookie(httpCookie *http.Cookie)
- func (c *Cookie) X设置值(名称, 值 string)
- func (c *Cookie) X输出()
- type Cookie安全配置项
- type HandlerFunc
- type Hook名称
- type ResponseWriter
- func (w *ResponseWriter) Flush()
- func (w *ResponseWriter) Header() http.Header
- func (w *ResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
- func (w *ResponseWriter) RawWriter() http.ResponseWriter
- func (w *ResponseWriter) Write(data []byte) (int, error)
- func (w *ResponseWriter) WriteHeader(status int)
- type RouterItem
- type Session
- type WebSocket
- type X上传文件
- type X上传文件数组
- type X分组路由
- func (g *X分组路由) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由
- func (g *X分组路由) X取副本() *X分组路由
- func (g *X分组路由) X绑定(处理对象 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定CONNECT(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定DELETE(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定GET(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定HEAD(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc) *X分组路由
- func (g *X分组路由) X绑定Map(m map[string]interface{})
- func (g *X分组路由) X绑定OPTIONS(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定PATCH(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定POST(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定PUT(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{}) *X分组路由
- func (g *X分组路由) X绑定TRACE(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定中间件(处理函数 ...HandlerFunc) *X分组路由
- func (g *X分组路由) X绑定所有类型(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由
- func (g *X分组路由) X绑定所有类型Map(m map[string]interface{})
- type X响应
- func (r *X响应) ServeContent(name string, modTime time.Time, content io.ReadSeeker)
- func (r *X响应) X下载文件(路径 string, 文件名 ...string)
- func (r *X响应) X写响应缓冲区(内容 ...interface{})
- func (r *X响应) X写响应缓冲区JSON(内容 interface{})
- func (r *X响应) X写响应缓冲区JSONP(内容 interface{})
- func (r *X响应) X写响应缓冲区JSONP并退出(内容 interface{})
- func (r *X响应) X写响应缓冲区JSON并退出(内容 interface{})
- func (r *X响应) X写响应缓冲区XML(内容 interface{}, 根标记 ...string)
- func (r *X响应) X写响应缓冲区XML并退出(内容 interface{}, 根标记 ...string)
- func (r *X响应) X写响应缓冲区与HTTP状态码(状态码 int, 内容 ...interface{})
- func (r *X响应) X写响应缓冲区与HTTP状态码并退出(状态码 int, 内容 ...interface{})
- func (r *X响应) X写响应缓冲区并换行(内容 ...interface{})
- func (r *X响应) X写响应缓冲区并格式化(格式 string, 内容 ...interface{})
- func (r *X响应) X写响应缓冲区并格式化与换行(格式 string, 内容 ...interface{})
- func (r *X响应) X写响应缓冲区并退出(内容 ...interface{})
- func (r *X响应) X写响应缓冲区并退出与换行(内容 ...interface{})
- func (r *X响应) X写响应缓冲区并退出与格式化(格式 string, 内容 ...interface{})
- func (r *X响应) X写响应缓冲区并退出与格式化换行(格式 string, 内容 ...interface{})
- func (r *X响应) X写覆盖响应缓冲区(内容 ...interface{})
- func (r *X响应) X写覆盖响应缓冲区并退出(内容 ...interface{})
- func (r *X响应) X发送文件(文件路径 string, 是否展示目录文件列表 ...bool)
- func (r *X响应) X取缓冲区字节集() []byte
- func (r *X响应) X取缓冲区文本() string
- func (r *X响应) X取缓冲区长度() int
- func (r *X响应) X取跨域默认选项() CORSOptions
- func (r *X响应) X是否允许跨域(跨域选项 CORSOptions) bool
- func (r *X响应) X清空缓冲区()
- func (r *X响应) X解析文本模板(文本模板 string, 模板变量 ...模板类.Params) (string, error)
- func (r *X响应) X解析模板文件(模板文件路径 string, 模板变量 ...模板类.Params) (string, error)
- func (r *X响应) X解析默认模板文件(模板变量 ...模板类.Params) (string, error)
- func (r *X响应) X设置缓冲区字节集(字节集值 []byte)
- func (r *X响应) X跨域请求全允许()
- func (r *X响应) X跨域请求设置(跨域选项 CORSOptions)
- func (r *X响应) X输出到模板文件(模板文件路径 string, 模板变量 ...模板类.Params) error
- func (r *X响应) X输出到默认模板文件(模板变量 ...模板类.Params) error
- func (r *X响应) X输出文本模板(文本模板 string, 模板变量 ...模板类.Params) error
- func (r *X响应) X输出缓存区()
- func (r *X响应) X重定向(url地址 string, 重定向状态码 ...int)
- func (r *X响应) X重定向到来源页面(重定向状态码 ...int)
- type X域名路由
- func (d *X域名路由) PProf开启(路由地址 ...string)
- func (d *X域名路由) Use别名(处理函数 ...HandlerFunc)
- func (d *X域名路由) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由
- func (d *X域名路由) X绑定(路由规则 string, 处理函数 interface{})
- func (d *X域名路由) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc)
- func (d *X域名路由) X绑定HookMap(路由规则 string, HookMap map[Hook名称]HandlerFunc)
- func (d *X域名路由) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{})
- func (d *X域名路由) X绑定中间件(路由规则 string, 处理函数 ...HandlerFunc)
- func (d *X域名路由) X绑定对象(路由规则 string, 处理对象 interface{}, 方法名 ...string)
- func (d *X域名路由) X绑定对象方法(路由规则 string, 处理对象 interface{}, 方法 string)
- func (d *X域名路由) X绑定状态码中间件(状态码 int, 处理函数 HandlerFunc)
- func (d *X域名路由) X绑定状态码中间件Map(中间件Map map[int]HandlerFunc)
- func (d *X域名路由) X绑定默认中间件(处理函数 ...HandlerFunc)
- type X插件配置项
- type X服务
- func (s *X服务) Logger别名() *日志类.Logger
- func (s *X服务) PProf开启(路由地址 ...string)
- func (s *X服务) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (s *X服务) SetDumpRouterMap(enabled bool)
- func (s *X服务) SetEndpoints(endpoints []string)
- func (s *X服务) SetNameToUriType(t int)
- func (s *X服务) Use别名(处理函数 ...HandlerFunc)
- func (s *X服务) X关闭当前服务() error
- func (s *X服务) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由
- func (s *X服务) X创建域名路由(域名 string) *X域名路由
- func (s *X服务) X取CookieHttpOnly() bool
- func (s *X服务) X取CookieSameSite() http.SameSite
- func (s *X服务) X取Cookie域名() string
- func (s *X服务) X取Cookie安全() bool
- func (s *X服务) X取Cookie最大存活时长() time.Duration
- func (s *X服务) X取Cookie路径() string
- func (s *X服务) X取OpenApi对象() *goai.OpenApiV3
- func (s *X服务) X取SessionCookie存活时长() time.Duration
- func (s *X服务) X取SessionID名称() string
- func (s *X服务) X取Session最大存活时长() time.Duration
- func (s *X服务) X取已监听地址() string
- func (s *X服务) X取已监听端口() int
- func (s *X服务) X取所有监听已端口() []int
- func (s *X服务) X取日志存储目录() string
- func (s *X服务) X取服务名称() string
- func (s *X服务) X取服务状态() X服务状态
- func (s *X服务) X取注册发现对象() gsvc.Registrar
- func (s *X服务) X取请求处理器() func(w http.ResponseWriter, r *http.Request)
- func (s *X服务) X取路由数组() []RouterItem
- func (s *X服务) X取静态文件索引() []string
- func (s *X服务) X启动服务()
- func (s *X服务) X启用HTTPS(证书路径, 密钥路径 string, tls配置 ...*tls.Config)
- func (s *X服务) X平滑重启服务开启(管理页URI ...string)
- func (s *X服务) X开始监听() error
- func (s *X服务) X插件添加(插件 ...X插件配置项)
- func (s *X服务) X日志访客记录是否已开启() bool
- func (s *X服务) X日志错误记录是否已开启() bool
- func (s *X服务) X绑定(路由规则 string, 处理函数 interface{})
- func (s *X服务) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc)
- func (s *X服务) X绑定HookMap(路由规则 string, HookMap map[Hook名称]HandlerFunc)
- func (s *X服务) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{})
- func (s *X服务) X绑定全局中间件(路由规则 string, 处理函数 ...HandlerFunc)
- func (s *X服务) X绑定全局默认中间件(处理函数 ...HandlerFunc)
- func (s *X服务) X绑定对象(路由规则 string, 处理对象 interface{}, 方法名 ...string)
- func (s *X服务) X绑定对象方法(路由规则 string, 处理对象 interface{}, 方法 string)
- func (s *X服务) X绑定状态码中间件(状态码 int, 处理函数 HandlerFunc)
- func (s *X服务) X绑定状态码中间件Map(中间件Map map[int]HandlerFunc)
- func (s *X服务) X设置APIOpenApiUI路径(路径 string)
- func (s *X服务) X设置APISwaggerUI路径(路径 string)
- func (s *X服务) X设置Cookie域名(域名 string)
- func (s *X服务) X设置Cookie最大存活时长(时长 time.Duration)
- func (s *X服务) X设置Cookie路径(路径 string)
- func (s *X服务) X设置HTTPS监听地址(地址 string)
- func (s *X服务) X设置HTTPS监听端口(端口 ...int)
- func (s *X服务) X设置SessionCookie存活时长(最大时长 time.Duration)
- func (s *X服务) X设置SessionID名称(名称 string)
- func (s *X服务) X设置SessionID输出到Cookie(开启 bool)
- func (s *X服务) X设置Session存储对象(Session存储对象 session类.Storage)
- func (s *X服务) X设置Session最大存活时长(时长 time.Duration)
- func (s *X服务) X设置TLS配置(tls配置 *tls.Config)
- func (s *X服务) X设置写入超时(时长 time.Duration)
- func (s *X服务) X设置协议头最大长度(最大长度 int)
- func (s *X服务) X设置客户端请求最大长度(最大长度 int64)
- func (s *X服务) X设置开启长连接(开启 bool)
- func (s *X服务) X设置日志存储目录(目录 string) error
- func (s *X服务) X设置日志开启记录等级(等级 string)
- func (s *X服务) X设置日志开启访客记录(开启 bool)
- func (s *X服务) X设置日志开启输出到CMD(开启 bool)
- func (s *X服务) X设置日志开启错误堆栈记录(开启 bool)
- func (s *X服务) X设置日志开启错误记录(开启 bool)
- func (s *X服务) X设置日志记录器(日志记录器 *日志类.Logger)
- func (s *X服务) X设置服务名称(名称 string)
- func (s *X服务) X设置服务器代理标识(代理标识 string)
- func (s *X服务) X设置注册发现对象(注册发现对象 gsvc.Registrar)
- func (s *X服务) X设置监听地址(地址 string)
- func (s *X服务) X设置监听端口(端口 ...int)
- func (s *X服务) X设置自定义监听器(监听器 ...net.Listener) error
- func (s *X服务) X设置表单解析最大缓冲区长度(最大长度 int64)
- func (s *X服务) X设置请求处理器(h func(w http.ResponseWriter, r *http.Request))
- func (s *X服务) X设置读取超时(时长 time.Duration)
- func (s *X服务) X设置路由URI重写规则(URI string, 新URI string)
- func (s *X服务) X设置路由URI重写规则Map(重写规则Map map[string]string)
- func (s *X服务) X设置路由允许覆盖(开启 bool)
- func (s *X服务) X设置配置项(c X服务配置项) error
- func (s *X服务) X设置配置项Map(配置 map[string]interface{}) error
- func (s *X服务) X设置长连接超时(时长 time.Duration)
- func (s *X服务) X设置静态文件是否列出子文件(是否 bool)
- func (s *X服务) X设置静态文件是否开启(开启 bool)
- func (s *X服务) X设置静态文件根目录(根目录 string)
- func (s *X服务) X设置静态文件索引(索引 []string)
- func (s *X服务) X设置默认模板对象(模板对象 *模板类.View)
- func (s *X服务) X静态文件添加目录映射(旧路径 string, 新路径 string)
- func (s *X服务) X静态文件添加额外搜索目录(目录 string)
- type X服务状态
- type X服务配置项
- type X请求
- func (r *X请求) Context别名() context.Context
- func (r *X请求) GetMapStrStr别名(默认值 ...map[string]interface{}) map[string]string
- func (r *X请求) GetMap别名(默认值 ...map[string]interface{}) map[string]interface{}
- func (r *X请求) GetNeverDoneCtx() context.Context
- func (r *X请求) GetStruct别名(结构指针 interface{}, mapping ...map[string]string) error
- func (r *X请求) Get别名(名称 string, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) MakeBodyRepeatableRead(repeatableRead bool) []byte
- func (r *X请求) X升级为websocket请求() (*WebSocket, error)
- func (r *X请求) X取SessionId() string
- func (r *X请求) X取URL() string
- func (r *X请求) X取multipart表单对象() *multipart.Form
- func (r *X请求) X取multipart表单文件数组对象(名称 string) []*multipart.FileHeader
- func (r *X请求) X取上下文对象() context.Context
- func (r *X请求) X取上下文对象值(名称 interface{}, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) X取上传文件对象(名称 string) *X上传文件
- func (r *X请求) X取上传文件数组对象(名称 string) X上传文件数组
- func (r *X请求) X取主机名() string
- func (r *X请求) X取分页类(总数据量, 每页大小 int) *分页类.Page
- func (r *X请求) X取协议头值(名称 string) string
- func (r *X请求) X取参数(名称 string, 默认 ...interface{}) *泛型类.Var
- func (r *X请求) X取参数到Map(kvMap ...map[string]interface{}) map[string]interface{}
- func (r *X请求) X取参数到MapStrStr(kvMap ...map[string]interface{}) map[string]string
- func (r *X请求) X取参数到Map泛型类(kvMap ...map[string]interface{}) map[string]*泛型类.Var
- func (r *X请求) X取参数到结构体(结构体指针 interface{}, 名称映射 ...map[string]string) error
- func (r *X请求) X取响应对象及错误信息() interface{}
- func (r *X请求) X取客户端IP地址() string
- func (r *X请求) X取引用来源URL() string
- func (r *X请求) X取查询参数到Map(kvMap ...map[string]interface{}) map[string]interface{}
- func (r *X请求) X取查询参数到MapStrStr(kvMap ...map[string]interface{}) map[string]string
- func (r *X请求) X取查询参数到Map泛型类数组(kvMap ...map[string]interface{}) map[string]*泛型类.Var
- func (r *X请求) X取查询参数到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) X取查询参数到结构体(结构体指针 interface{}, mapping ...map[string]string) error
- func (r *X请求) X取模板对象() *模板类.View
- func (r *X请求) X取自定义参数到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) X取表单值到Map(kvMap ...map[string]interface{}) map[string]interface{}
- func (r *X请求) X取表单值到MapStrStr(kvMap ...map[string]interface{}) map[string]string
- func (r *X请求) X取表单值到Map泛型类(kvMap ...map[string]interface{}) map[string]*泛型类.Var
- func (r *X请求) X取表单值到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) X取表单值到结构(结构指针 interface{}, mapping ...map[string]string) error
- func (r *X请求) X取请求体到json类() (*json类.Json, error)
- func (r *X请求) X取请求体字节集() []byte
- func (r *X请求) X取请求体文本() string
- func (r *X请求) X取路由器Map副本() map[string]string
- func (r *X请求) X取路由器值到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var
- func (r *X请求) X取路由解析对象() *X路由解析
- func (r *X请求) X取远程IP地址() string
- func (r *X请求) X取错误信息() error
- func (r *X请求) X是否为AJAX请求() bool
- func (r *X请求) X是否为文件请求() bool
- func (r *X请求) X是否已退出() bool
- func (r *X请求) X绑定模板变量(名称 string, 值 interface{})
- func (r *X请求) X绑定模板变量Map(Map值 模板类.Params)
- func (r *X请求) X解析URL到结构(结构指针 interface{}) error
- func (r *X请求) X解析参数到结构(结构指针 interface{}) error
- func (r *X请求) X解析表单到结构(结构指针 interface{}) error
- func (r *X请求) X设置上下文对象(上下文 context.Context)
- func (r *X请求) X设置上下文对象值(名称 interface{}, 值 interface{})
- func (r *X请求) X设置查询参数(名称 string, 值 interface{})
- func (r *X请求) X设置模板对象(模板对象 *模板类.View)
- func (r *X请求) X设置自定义参数(名称 string, 值 interface{})
- func (r *X请求) X设置自定义参数Map(参数 map[string]interface{})
- func (r *X请求) X设置表单值(名称 string, 值 interface{})
- func (r *X请求) X设置错误信息(错误 error)
- func (r *X请求) X账号密码认证(账号, 密码 string, 可选提示 ...string) bool
- func (r *X请求) X退出Hook()
- func (r *X请求) X退出全部()
- func (r *X请求) X退出当前()
- func (r *X请求) X重载请求参数()
- type X路由
- type X路由处理函数
- type X路由处理器类型
- type X路由解析
- type X默认处理器响应
Constants ¶
const ( HeaderXUrlPath = "x-url-path" // 用于自定义路由处理器,在此情况下,URL.Path 不会发生变化。 HookBeforeServe Hook名称 = "HOOK_BEFORE_SERVE" // 在路由处理器/文件服务之前执行的钩子处理器。 HookAfterServe Hook名称 = "HOOK_AFTER_SERVE" // 在路由处理器/文件服务之后的钩子处理器。 HookBeforeOutput Hook名称 = "HOOK_BEFORE_OUTPUT" // 在响应输出前的钩子处理器 HookAfterOutput Hook名称 = "HOOK_AFTER_OUTPUT" // Hook处理器在响应输出之后。 ServerStatusStopped X服务状态 = 0 ServerStatusRunning X服务状态 = 1 DefaultServerName = "default" DefaultDomainName = "default" HandlerTypeHandler X路由处理器类型 = "handler" HandlerTypeObject X路由处理器类型 = "object" HandlerTypeMiddleware X路由处理器类型 = "middleware" HandlerTypeHook X路由处理器类型 = "hook" )
const ( UriTypeDefault = 0 // 转换方法名称到URI的类型,该类型将名称转换为小写并将单词使用字符'-'连接起来。 UriTypeFullName = 1 // MethodNamesToURI 是一个用于将方法名转换为URI的类型,但并不转换回方法名。 UriTypeAllLower = 2 // MethodNamesToURI 是一个将方法名转换为 URI 的类型,该类型会将名称转换为其小写形式。 UriTypeCamel = 3 // MethodNamesToURI 是一个用于将方法名称转换为 URI 的类型,该类型将名称转换为其驼峰式表示。 )
const ( // WsMsgText TextMessage 表示一个文本数据消息。 // 文本消息负载被解释为UTF-8编码的文本数据。 WsMsgText = websocket.TextMessage // WsMsgBinary BinaryMessage 表示一个二进制数据消息。 WsMsgBinary = websocket.BinaryMessage // WsMsgClose 关闭消息表示一个关闭控制消息。 // 可选的消息负载包含一个数字代码和文本内容。 // 使用 FormatCloseMessage 函数来格式化一个关闭消息的负载。 WsMsgClose = websocket.CloseMessage // WsMsgPing PingMessage 表示一个ping控制消息。 // 可选的消息负载是UTF-8编码的文本。 WsMsgPing = websocket.PingMessage // WsMsgPong 表示一个 pong 控制消息。 // 可选的消息负载是 UTF-8 编码的文本。 WsMsgPong = websocket.PongMessage )
const (
// FreePortAddress 表示服务器使用随机空闲端口进行监听。
X空闲端口地址 = ":0"
)
Variables ¶
var (
ERR请求体必须json格式 = 错误类.NewWithOption(错误类.Option{
Text: "the request body content should be JSON format",
Code: 错误码类.CodeInvalidRequest,
})
)
Functions ¶
func MiddlewareHandlerResponse ¶
func MiddlewareHandlerResponse(r *X请求)
MiddlewareHandlerResponse 是默认中间件处理处理器响应对象及其错误的接口。
Types ¶
type CORSOptions ¶
type CORSOptions struct { AllowDomain []string // 用于允许来自自定义域名的请求 AllowOrigin string // Access-Control-Allow-Origin:允许跨域请求的源,这是HTTP响应头的一部分,用于指示服务器允许哪些源发起跨域请求。在Go语言中设置该响应头可以实现跨域资源共享(CORS)。 AllowCredentials string // Access-Control-Allow-Credentials: 允许跨域请求时携带验证凭据(cookies, Authorization 头等) ExposeHeaders string // Access-Control-Expose-Headers: MaxAge int // Access-Control-Max-Age: // (该注释表示HTTP响应头中的Access-Control-Max-Age字段,用于指示预检请求(OPTIONS)的结果能够被缓存多久。) // 设置浏览器对跨域资源共享(CORS)中间结果的最大缓存时间(单位为秒),即预检请求的有效期。 // 当值设为非零时,在此期间内再次进行相同的跨域请求将不再发送预检请求,直接使用第一次预检请求的结果。 AllowMethods string // Access-Control-Allow-Methods:允许跨域请求的方法列表 AllowHeaders string // Access-Control-Allow-Headers: 允许跨域请求中携带的自定义请求头 }
CORSOptions 是CORS功能的选项。 参见 https://www.w3.org/TR/cors/ 。
type Cookie ¶
type Cookie struct {
// contains filtered or unexported fields
}
Cookie 用于 HTTP COOKIE 管理。
func X取cookie对象 ¶
GetCookie 函数通过给定的请求创建或检索一个 cookie 对象。 若已存在与给定请求相关的 cookie,则检索并返回该存在的 cookie 对象。 若不存在与给定请求相关的 cookie,则创建并返回一个新的 cookie 对象。
func (*Cookie) X删除cookie ¶
RemoveCookie 通过给定的域名和路径,从cookie中删除指定的键及其对应的值。 实际上,它会告知http客户端该cookie已过期,下次不要将其发送到服务器。
func (*Cookie) X删除值 ¶
Remove 函数通过使用默认的域名和路径,从cookie中删除指定的键及其对应的值。 实质上,它告知http客户端该cookie已过期,下次不要将其发送到服务器。
func (*Cookie) X设置SessionId到Cookie ¶
SetSessionId 将会话ID设置到cookie中。
func (*Cookie) X设置cookie ¶
func (c *Cookie) X设置cookie(名称, 值, 域名, 路径 string, 最大存活时长 time.Duration, 安全配置项 ...Cookie安全配置项)
SetCookie 用于给指定的域名、路径设置cookie项,并设置其过期时间。 可选参数 `options` 指定了额外的安全配置,通常为空。
func (*Cookie) X设置httpcookie ¶
SetHttpCookie 通过 *http.Cookie 设置 cookie。
type Cookie安全配置项 ¶
type Cookie安全配置项 struct { SameSite http.SameSite // cookie 的 SameSite 属性 Secure bool // cookie Secure 属性 HttpOnly bool // cookie HttpOnly 属性 }
CookieOptions 提供了用于 cookies 的安全配置选项
type HandlerFunc ¶
type HandlerFunc = func(r *X请求)
HandlerFunc 是请求处理函数。
func WrapF ¶
func WrapF(f http.HandlerFunc) HandlerFunc
WrapF 是一个辅助函数,用于封装 http.HandlerFunc,并返回一个 ghttp.HandlerFunc 类型的处理函数。
func WrapH ¶
func WrapH(h http.Handler) HandlerFunc
WrapH 是一个辅助函数,用于包装 http.Handler,并返回一个 ghttp.HandlerFunc 类型。
type ResponseWriter ¶
type ResponseWriter struct { Status int // HTTP status. // contains filtered or unexported fields }
ResponseWriter 是用于 HTTP 响应的自定义编写器。 2024-01-07备注, X基础响应器对象, 此处不汉化, liteide有bug,会导致部分字段没有一起重命名
func (*ResponseWriter) Header ¶
func (w *ResponseWriter) Header() http.Header
Header 实现了 http.ResponseWriter 接口中的 Header 方法。
func (*ResponseWriter) Hijack ¶
func (w *ResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
Hijack 实现了 http.Hijacker 接口中的 Hijack 函数。
func (*ResponseWriter) RawWriter ¶
func (w *ResponseWriter) RawWriter() http.ResponseWriter
RawWriter 返回底层的 ResponseWriter。
func (*ResponseWriter) Write ¶
func (w *ResponseWriter) Write(data []byte) (int, error)
Write 实现了 http.ResponseWriter 接口中的 Write 函数。
func (*ResponseWriter) WriteHeader ¶
func (w *ResponseWriter) WriteHeader(status int)
WriteHeader 实现了 http.ResponseWriter 接口中的 WriteHeader 方法。
type RouterItem ¶
type RouterItem struct { Handler *X路由处理函数 // The handler. X服务器名称 string // Server name. X监听地址 string // 监听地址。 Domain string // Bound domain. Type X路由处理器类型 // 路由处理器类型。 X中间件名称 string // Bound middleware. Method string // 处理器方法名称。 X路由URI string // Route URI. Priority int // 仅供参考 X是否为服务处理器 bool // 是否为服务处理器 }
RouterItem 仅用于路由转储。
type X上传文件 ¶
type X上传文件 struct { *multipart.FileHeader `json:"-"` // contains filtered or unexported fields }
UploadFile 通过提供更多的便捷功能,对使用multipart方式上传文件进行了封装。
func (X上传文件) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。
type X上传文件数组 ¶
type X上传文件数组 []*X上传文件
UploadFiles 是 *UploadFile 类型的数组。
func (X上传文件数组) X保存 ¶
Save 保存所有上传的文件到指定的目录路径,并返回已保存的文件名。
参数`dirPath`应为一个目录路径,否则将返回错误。
参数`randomlyRename`指定了是否随机重命名所有的文件名。 以下是详细的中文注释: ```go Save 函数的作用是将所有正在上传的文件保存到指定的目录路径下,并返回这些文件在保存后的文件名列表。
参数 `dirPath` 表示目标保存目录的路径,如果该路径不是一个有效的目录,则函数会返回错误信息。
参数 `randomlyRename` 是一个布尔值,用来指定是否对所有上传的文件进行随机重命名操作。如果设为 true,则在保存文件时将会生成随机文件名;否则,文件将以原有文件名进行保存。
type X分组路由 ¶
type X分组路由 struct {
// contains filtered or unexported fields
}
RouterGroup 是一个包裹了多个路由和中间件的分组。
func (*X分组路由) X绑定CONNECT ¶
CONNECT 注册一个 HTTP 处理器,用于给定路由模式和 HTTP 方法:CONNECT。
func (*X分组路由) X绑定Hook ¶
func (g *X分组路由) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc) *X分组路由
Hook 将钩子注册到给定的路由模式。
func (*X分组路由) X绑定OPTIONS ¶
OPTIONS 注册一个HTTP处理器,用于指定路由模式和HTTP方法:OPTIONS。
func (*X分组路由) X绑定RESTfulAPI对象 ¶
REST 根据REST规则注册一个HTTP处理器,以便给定路由模式。
func (*X分组路由) X绑定中间件 ¶
func (g *X分组路由) X绑定中间件(处理函数 ...HandlerFunc) *X分组路由
Middleware 将一个或多个中间件绑定到路由组。
func (*X分组路由) X绑定所有类型Map ¶
ALLMap 使用map为HTTP方法注册HTTP处理程序。
type X响应 ¶
type X响应 struct { *ResponseWriter // 基础的 ResponseWriter。 Server *X服务 // Parent server. Writer *ResponseWriter // ResponseWriter的别名。 Request *X请求 // 根据请求。 }
Response 是HTTP响应管理器。 请注意,它实现了带有缓冲功能的http.ResponseWriter接口。
func (*X响应) ServeContent ¶
ServeContent 函数通过提供的 ReadSeeker 中的内容回复请求。与 io.Copy 相比,ServeContent 的主要优点在于它能妥善处理 Range 请求,设置 MIME 类型,并正确处理 If-Match, If-Unmodified-Since, If-None-Match, If-Modified-Since 以及 If-Range 等请求。
参见 http.ServeContent
func (*X响应) X下载文件 ¶
ServeFileDownload 为响应提供文件下载服务。 用于直接引导客户端下载指定路径的文件,并可以重新给定下载的文件名称。 ServeFileDownload方法采用的是流式下载控制,对内存占用较少。 使用示例,我们把示例中的ServeFile方法改为ServeFileDownload方法:
func main() { s := g.Server() s.BindHandler("/", func(r *ghttp.Request) { r.Response.ServeFileDownload("test.txt") }) s.SetPort(8999) s.Run() }
func (*X响应) X写响应缓冲区JSON ¶
func (r *X响应) X写响应缓冲区JSON(内容 interface{})
WriteJson 将`content`以JSON格式写入响应中。
func (*X响应) X写响应缓冲区JSONP ¶
func (r *X响应) X写响应缓冲区JSONP(内容 interface{})
WriteJsonP 将`content`以JSONP格式写入响应中。
注意:对于JSONP格式,请求中应包含一个"callback"参数。
func (*X响应) X写响应缓冲区JSONP并退出 ¶
func (r *X响应) X写响应缓冲区JSONP并退出(内容 interface{})
WriteJsonPExit 将`content`以JSONP格式写入响应,并在成功时退出当前处理器的执行。 “Exit”特性通常用于替换处理器中return语句的使用,以便于简化代码。
注意,请求中应包含一个“callback”参数以适应JSONP格式。
func (*X响应) X写响应缓冲区JSON并退出 ¶
func (r *X响应) X写响应缓冲区JSON并退出(内容 interface{})
WriteJsonExit将`content`以JSON格式写入响应,并在成功时退出当前处理器的执行。 “Exit”特性通常用于为了方便起见,替换处理器中return语句的使用。
func (*X响应) X写响应缓冲区XML ¶
WriteXml 将`content`以XML格式写入响应。
func (*X响应) X写响应缓冲区XML并退出 ¶
WriteXmlExit将`content`以XML格式写入响应,并在成功时退出当前处理器的执行。 "Exit"特性通常用于为了方便起见,在处理器中替换return语句的使用。
func (*X响应) X写响应缓冲区与HTTP状态码 ¶
WriteStatus将HTTP状态码`status`和内容`content`写入响应中。 注意,这里没有设置Content-Type头信息。
func (*X响应) X写响应缓冲区与HTTP状态码并退出 ¶
WriteStatusExit 将HTTP状态码`status`和内容`content`写入响应,并在成功时退出当前处理器的执行。 "Exit"特性通常用于为了方便,替换处理器中return语句的使用。
func (*X响应) X写响应缓冲区并格式化 ¶
Writef 使用 fmt.Sprintf 方法写入响应内容。
func (*X响应) X写响应缓冲区并格式化与换行 ¶
Writefln 使用 fmt.Sprintf 格式化输出并将内容与换行符写入响应。
func (*X响应) X写响应缓冲区并退出 ¶
func (r *X响应) X写响应缓冲区并退出(内容 ...interface{})
WriteExit 将`content`写入响应缓冲区并退出当前处理器的执行。 “Exit”特性通常用于为了方便起见,在处理器中替换 return 语句的使用。
func (*X响应) X写响应缓冲区并退出与换行 ¶
func (r *X响应) X写响应缓冲区并退出与换行(内容 ...interface{})
WritelnExit 将`content`内容及换行符写入响应,并终止当前处理器的执行。 "Exit"特性通常用于为了方便起见,替代处理器中return语句的使用。
func (*X响应) X写响应缓冲区并退出与格式化 ¶
WritefExit 通过 fmt.Sprintf 写入响应,并退出当前处理器的执行。 "Exit" 特性通常用于为了方便,在处理器中替代 return 语句的使用。
func (*X响应) X写响应缓冲区并退出与格式化换行 ¶
WriteflnExit 通过 fmt.Sprintf 和换行符写出响应,并退出当前处理器的执行。 "Exit" 特性通常用于为了方便,而替换处理器中 return 语句的使用。
func (*X响应) X写覆盖响应缓冲区并退出 ¶
func (r *X响应) X写覆盖响应缓冲区并退出(内容 ...interface{})
WriteOverExit 用 `content` 覆盖响应缓冲区并退出当前处理器的执行。 "Exit" 特性通常用于为了方便起见,在处理器中替换 return 语句的使用。
func (*X响应) X发送文件 ¶
ServeFile 将文件发送至响应。 会自动识别文件格式,如果是目录或者文本内容将会直接展示文件内容。 如果path参数为目录,那么第二个参数allowIndex控制是否可以展示目录下的文件列表。
func (*X响应) X取跨域默认选项 ¶
func (r *X响应) X取跨域默认选项() CORSOptions
DefaultCORSOptions 返回默认的 CORS 选项, 这些选项允许任何跨域请求。
func (*X响应) X是否允许跨域 ¶
func (r *X响应) X是否允许跨域(跨域选项 CORSOptions) bool
CORSAllowedOrigin CORSAllowedOrigin函数检查当前请求的来源是否允许跨域。
func (*X响应) X跨域请求设置 ¶
func (r *X响应) X跨域请求设置(跨域选项 CORSOptions)
CORS 设置自定义 CORS 选项。 参见 https://www.w3.org/TR/cors/ 。
func (*X响应) X输出到默认模板文件 ¶
WriteTplDefault 解析并响应默认模板文件。 参数`params`用于指定模板解析所需的变量。
type X域名路由 ¶
type X域名路由 struct {
// contains filtered or unexported fields
}
Domain 用于为域名进行路由注册。
func (*X域名路由) Use别名 ¶
func (d *X域名路由) Use别名(处理函数 ...HandlerFunc)
Use 向域名添加中间件。 Use 是 BindMiddlewareDefault 的别名。 请参阅 BindMiddlewareDefault。
func (*X域名路由) X绑定Hook ¶
func (d *X域名路由) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc)
BindHookHandler 为指定模式绑定钩子处理器。
func (*X域名路由) X绑定HookMap ¶
func (d *X域名路由) X绑定HookMap(路由规则 string, HookMap map[Hook名称]HandlerFunc)
BindHookHandlerByMap 通过映射为特定模式绑定钩子处理器。
func (*X域名路由) X绑定RESTfulAPI对象 ¶
BindObjectRest 为指定模式绑定RESTful API。 RESTful设计方式的控制器,通常用于API服务。 在这种模式下,HTTP的Method将会映射到控制器对应的方法名称, 例如:POST方式将会映射到控制器的Post方法中(公开方法,首字母大写),DELETE方式将会映射到控制器的Delete方法中,以此类推。 其他非HTTP Method命名的方法,即使是定义的包公开方法,将不会自动注册,对于应用端不可见。 当然,如果控制器并未定义对应HTTP Method的方法,该Method请求下将会返回 HTTP Status 404。
func (*X域名路由) X绑定中间件 ¶
func (d *X域名路由) X绑定中间件(路由规则 string, 处理函数 ...HandlerFunc)
BindMiddleware 为指定模式绑定中间件。
func (*X域名路由) X绑定对象 ¶
BindObject 为指定的模式绑定对象。
BindObjectMethod和BindObject的区别: BindObjectMethod将对象中的指定方法与指定路由规则进行绑定,第三个method参数只能指定一个方法名称; BindObject注册时,所有的路由都是对象方法名称按照规则生成的,第三个methods参数可以指定多个注册的方法名称。
func (*X域名路由) X绑定对象方法 ¶
BindObjectMethod 将指定模式的方法绑定。
BindObjectMethod和BindObject的区别: BindObjectMethod将对象中的指定方法与指定路由规则进行绑定,第三个method参数只能指定一个方法名称; BindObject注册时,所有的路由都是对象方法名称按照规则生成的,第三个methods参数可以指定多个注册的方法名称。
func (*X域名路由) X绑定状态码中间件 ¶
func (d *X域名路由) X绑定状态码中间件(状态码 int, 处理函数 HandlerFunc)
BindStatusHandler 为指定模式绑定状态处理器。
func (*X域名路由) X绑定状态码中间件Map ¶
func (d *X域名路由) X绑定状态码中间件Map(中间件Map map[int]HandlerFunc)
BindStatusHandlerByMap 通过给定的模式绑定状态处理器。
func (*X域名路由) X绑定默认中间件 ¶
func (d *X域名路由) X绑定默认中间件(处理函数 ...HandlerFunc)
BindMiddlewareDefault 为指定模式绑定默认中间件。
type X插件配置项 ¶
type X插件配置项 interface { X名称() string // Name 返回插件的名称。 X作者() string // Author 返回插件的作者。 X版本() string // Version 返回插件的版本,如 "v1.0.0"。 X描述() string // 描述返回插件的描述。 Install(s *X服务) error // Install 在服务器启动之前安装插件。 Remove() error // Remove 在服务器关闭时移除插件。 }
Plugin 是服务器插件的接口。
type X服务 ¶
type X服务 struct {
// contains filtered or unexported fields
}
Server 包装了 http.Server,并提供了更多丰富的功能。
func X取服务对象 ¶
func X取服务对象(名称 ...interface{}) *X服务
GetServer 根据给定名称和默认配置创建并返回一个服务器实例。 注意,参数`name`对于不同服务器应保持唯一。如果给定的`name`已在服务器映射中存在, 则它将返回一个已存在的服务器实例。
func (*X服务) ServeHTTP ¶
func (s *X服务) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP 是处理 HTTP 请求的默认处理器。 由于它是由 http.Server 已经创建的新 goroutine 调用的,所以不应在此函数中创建新的处理请求的 goroutine。
此外,这个函数实现了 http.Handler 接口。
func (*X服务) SetDumpRouterMap ¶
SetDumpRouterMap 为服务器设置 DumpRouterMap。 如果启用了 DumpRouterMap,服务器启动时会自动导出路由映射表。
func (*X服务) SetNameToUriType ¶
SetNameToUriType 为服务器设置 NameToUriType。
func (*X服务) Use别名 ¶
func (s *X服务) Use别名(处理函数 ...HandlerFunc)
Use 是 BindMiddlewareDefault 的别名。 请参阅 BindMiddlewareDefault。
func (*X服务) X取CookieHttpOnly ¶
func (*X服务) X取CookieSameSite ¶
GetCookieSameSite 返回服务器的 CookieSameSite 值。
func (*X服务) X取Cookie安全 ¶
func (*X服务) X取Cookie最大存活时长 ¶
GetCookieMaxAge 返回服务器的 CookieMaxAge 值。
func (*X服务) X取OpenApi对象 ¶
GetOpenApi 返回当前服务器的OpenApi规范管理对象。
func (*X服务) X取SessionCookie存活时长 ¶
GetSessionCookieMaxAge 返回服务器的 SessionCookieMaxAge 值。
func (*X服务) X取SessionID名称 ¶
GetSessionIdName 返回服务器的 SessionIdName。
func (*X服务) X取Session最大存活时长 ¶
GetSessionMaxAge 返回服务器的 SessionMaxAge 值。
func (*X服务) X取请求处理器 ¶
func (s *X服务) X取请求处理器() func(w http.ResponseWriter, r *http.Request)
GetHandler 返回服务器的请求处理器。
func (*X服务) X绑定 ¶
BindHandler 将一个处理函数注册到服务器,该函数与给定的模式关联。
注意参数 `handler` 可以是以下类型: 1. func(*ghttp.Request) // 类型为接收*ghttp.Request参数的函数 2. func(context.Context, BizRequest)(BizResponse, error) // 类型为接收context.Context和BizRequest参数,并返回BizResponse和error的函数
func (*X服务) X绑定Hook ¶
func (s *X服务) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc)
BindHookHandler 为指定的钩子注册处理器。
func (*X服务) X绑定HookMap ¶
func (s *X服务) X绑定HookMap(路由规则 string, HookMap map[Hook名称]HandlerFunc)
BindHookHandlerByMap 为指定的钩子注册处理器。
func (*X服务) X绑定RESTfulAPI对象 ¶
BindObjectRest 以指定模式将符合REST API风格的对象注册到服务器。
func (*X服务) X绑定全局中间件 ¶
func (s *X服务) X绑定全局中间件(路由规则 string, 处理函数 ...HandlerFunc)
BindMiddleware 注册一个或多个全局中间件到服务器。 全局中间件可以在没有服务处理器的情况下独立使用,它会在服务处理器执行前或执行后拦截所有的动态请求。 参数 `pattern` 指定了中间件要拦截的路由模式,通常是一个“模糊”模式,如 "/:name"、"/*any" 或 "/{field}"。
func (*X服务) X绑定全局默认中间件 ¶
func (s *X服务) X绑定全局默认中间件(处理函数 ...HandlerFunc)
BindMiddlewareDefault 使用默认模式"/*"将一个或多个全局中间件注册到服务器。 全局中间件可以在没有服务处理器的情况下独立使用,它会在服务处理器处理所有动态请求之前或之后进行拦截。
func (*X服务) X绑定对象 ¶
BindObject 将对象注册到服务器路由上,给定特定的模式。
可选参数 `method` 用于指定要注册的方法,该方法支持多个方法名; 多个方法之间用字符 ',' 分隔,大小写敏感。
func (*X服务) X绑定对象方法 ¶
BindObjectMethod 将指定对象的方法注册到服务器路由中,使用给定的模式。
可选参数 `method` 用于指定要注册的方法,该参数不支持多个方法名,仅支持单个、大小写敏感的方法名。
func (*X服务) X绑定状态码中间件 ¶
func (s *X服务) X绑定状态码中间件(状态码 int, 处理函数 HandlerFunc)
BindStatusHandler 为给定的状态码注册处理器。
func (*X服务) X绑定状态码中间件Map ¶
func (s *X服务) X绑定状态码中间件Map(中间件Map map[int]HandlerFunc)
BindStatusHandlerByMap 通过映射注册给定状态码的处理器。
func (*X服务) X设置APIOpenApiUI路径 ¶
SetOpenApiPath 为服务器设置 OpenApiPath。
func (*X服务) X设置APISwaggerUI路径 ¶
SetSwaggerPath 用于设置服务器的 SwaggerPath。
func (*X服务) X设置Cookie最大存活时长 ¶
SetCookieMaxAge 设置服务器的 CookieMaxAge。
func (*X服务) X设置HTTPS监听端口 ¶
SetHTTPSPort 设置服务器的 HTTPS 监听端口。 可以设置多个监听端口,例如:SetHTTPSPort(443, 500)。
func (*X服务) X设置SessionCookie存活时长 ¶
SetSessionCookieMaxAge 为服务器设置 SessionCookieMaxAge。
func (*X服务) X设置SessionID名称 ¶
SetSessionIdName 为服务器设置 SessionIdName。
func (*X服务) X设置SessionID输出到Cookie ¶
SetSessionCookieOutput设置服务器的SetSessionCookieOutput。
func (*X服务) X设置Session存储对象 ¶
func (s *X服务) X设置Session存储对象(Session存储对象 session类.Storage)
SetSessionStorage 为服务器设置 SessionStorage。
func (*X服务) X设置Session最大存活时长 ¶
SetSessionMaxAge 设置服务器的 SessionMaxAge。
func (*X服务) X设置协议头最大长度 ¶
SetMaxHeaderBytes 设置服务器的 MaxHeaderBytes 值。
func (*X服务) X设置客户端请求最大长度 ¶
SetClientMaxBodySize 为服务器设置客户端最大请求体大小。
func (*X服务) X设置日志记录器 ¶
func (s *X服务) X设置日志记录器(日志记录器 *日志类.Logger)
SetLogger 设置日志记录器以承担日志记录职责。 注意,由于可能存在并发安全问题,因此不能在运行时设置。
func (*X服务) X设置监听地址 ¶
SetAddr 设置服务器的监听地址。 地址格式类似于 ':80'、'0.0.0.0:80'、'127.0.0.1:80'、'180.18.99.10:80' 等。
func (*X服务) X设置表单解析最大缓冲区长度 ¶
SetFormParsingMemory 用于设置服务器的表单解析内存。
func (*X服务) X设置请求处理器 ¶
func (s *X服务) X设置请求处理器(h func(w http.ResponseWriter, r *http.Request))
SetHandler 为服务器设置请求处理器。
func (*X服务) X设置路由URI重写规则 ¶
SetRewrite 为服务器设置静态URI的重写规则。
func (*X服务) X设置路由URI重写规则Map ¶
SetRewriteMap 为服务器设置重写映射。
func (*X服务) X设置静态文件是否列出子文件 ¶
SetIndexFolder 设置启用或禁用在请求目录时列出子文件。
func (*X服务) X设置静态文件是否开启 ¶
SetFileServerEnabled 用于启用/禁用静态文件服务。 这是静态文件服务的主要开关。当调用如 SetServerRoot、AddSearchPath 和 AddStaticPath 等静态文件服务配置函数时, 此配置会自动启用。
func (*X服务) X静态文件添加目录映射 ¶
AddStaticPath 设置静态文件服务的URI到静态目录路径映射。
type X服务配置项 ¶
type X服务配置项 struct { // 服务名称,用于服务注册与发现。 X服务名称 string `json:"name"` // Address 指定服务器监听地址,格式如 "端口" 或 ":端口", // 多个地址之间使用 ',' 连接。 X监听地址 string `json:"address"` // HTTPSAddr 指定HTTPS服务地址,多个地址之间使用逗号(,)连接。 HTTPS监听地址 string `json:"httpsAddr"` // Listeners 指定自定义监听器。 X自定义监听器 []net.Listener `json:"listeners"` // Endpoints 是服务注册的自定义端点,如果为空则使用 Address。 Endpoints []string `json:"endpoints"` // HTTPSCertPath 指定 HTTPS 服务的证书文件路径。 HTTPS证书路径 string `json:"httpsCertPath"` // HTTPSKeyPath 指定HTTPS服务的密钥文件路径。 HTTPS密钥路径 string `json:"httpsKeyPath"` // TLSConfig 提供一个可选的 TLS 配置,用于 ServeTLS 和 ListenAndServeTLS。请注意, // 此值将被 ServeTLS 和 ListenAndServeTLS 拷贝使用,因此不能通过诸如 tls.Config.SetSessionTicketKeys // 等方法修改配置。若要使用 SetSessionTicketKeys,请改用 Server.Serve 方法配合一个 TLS 监听器来实现。 TLS配置 *tls.Config `json:"tlsConfig"` // Handler HTTP请求的处理器。 Handler func(w http.ResponseWriter, r *http.Request) `json:"-"` // ReadTimeout 是读取整个请求(包括主体)的最大持续时间。 // // 由于 ReadTimeout 不允许处理程序为每个请求主体设置可接受的截止日期或上传速率, // 大多数用户可能会更倾向于使用 ReadHeaderTimeout。同时使用它们是有效的。 X读取超时 time.Duration `json:"readTimeout"` // WriteTimeout 是在超时前写入响应的最大持续时间。每当读取到新请求的头部时,该时间就会重置。类似于 ReadTimeout,它并不允许 Handlers 根据每个请求自行决定是否超时。 X写入超时 time.Duration `json:"writeTimeout"` // IdleTimeout 是在启用 keep-alive 时,等待下一个请求的最大时间间隔。如果 IdleTimeout 设为零,则使用 ReadTimeout 的值。如果两者都为零,则表示没有超时限制。 X长连接超时 time.Duration `json:"idleTimeout"` // MaxHeaderBytes 控制服务器在解析请求头(包括请求行)的键和值时, // 会读取的最大字节数。但请注意,它并不会限制请求体的大小。 // // 你可以在配置文件中使用类似 "1m"、"10m"、"500kb" 等字符串来配置这个参数。 // 默认情况下,其值为 10240 字节。 X最大协议头长度 int `json:"maxHeaderBytes"` // KeepAlive 启用 HTTP 保持连接(Keep-alive)功能。 X启用长连接 bool `json:"keepAlive"` // ServerAgent 指定服务器代理信息,该信息会被写入 // HTTP 响应头中作为 "Server"。 X服务器代理 string `json:"serverAgent"` // View 指定了服务器的默认模板视图对象。 X模板默认 *模板类.View `json:"view"` // Rewrites 指定了 URI 重写规则映射。 X路由URI重写规则Map map[string]string `json:"rewrites"` // IndexFiles 指定静态文件夹的索引文件。 X静态文件索引 []string `json:"indexFiles"` // IndexFolder 指定在请求文件夹时是否列出子文件。 // 如果该值为false,服务器将返回HTTP状态码403。 X静态文件是否列出子文件 bool `json:"indexFolder"` // ServerRoot 指定静态服务的根目录。 X静态文件根目录 string `json:"serverRoot"` // SearchPaths 指定静态服务的额外搜索目录。 X静态文件额外搜索目录 []string `json:"searchPaths"` // StaticPaths 指定了URI到目录映射的数组。 X静态文件目录映射 []静态文件配置项 `json:"staticPaths"` // FileServerEnabled 是静态服务的全局开关。 // 如果设置了任何静态路径,它将自动设置为启用状态。 X静态文件是否开启 bool `json:"fileServerEnabled"` // CookieMaxAge 指定 cookie 项的最大生存时间(TTL)。 Cookie最大存活时长 time.Duration `json:"cookieMaxAge"` // CookiePath 指定cookie路径。 // 同时,它也影响session id的默认存储位置。 Cookie路径 string `json:"cookiePath"` // CookieDomain 指定 cookie 域名。 // 同时,它也影响 session id 的默认存储方式。 Cookie域名 string `json:"cookieDomain"` // CookieSameSite 指定 cookie 的 SameSite 属性。 // 同时,它也影响会话 ID 的默认存储方式。 CookieSameSite string `json:"cookieSameSite"` // CookieSameSite 指定 cookie 的 Secure 属性。 // 同时,它也影响 session id 的默认存储方式。 Cookie安全 bool `json:"cookieSecure"` // CookieSameSite 指定 cookie 的 HttpOnly 属性。 // 同时,它也会影响 session id 的默认存储方式。 Cookie跨站访问控制 bool `json:"cookieHttpOnly"` // SessionIdName 指定会话 ID 名称。 SessionID名称 string `json:"sessionIdName"` // SessionMaxAge 指定会话项的最大生存时间(TTL)。 Session最大存活时长 time.Duration `json:"sessionMaxAge"` // SessionPath 指定用于存储会话文件的会话存储目录路径。 // 只有当会话存储类型为文件存储时,这个配置才有意义。 Session存储目录路径 string `json:"sessionPath"` // SessionStorage 指定会话存储。 Session存储 session类.Storage `json:"sessionStorage"` // SessionCookieMaxAge 指定会话 ID 的 cookie 存活时间(TTL)。 // 如果设置为 0,表示它将随浏览器会话一同结束时失效。 SessionCookie存活时长 time.Duration `json:"sessionCookieMaxAge"` // SessionCookieOutput 指定是否自动将会话ID输出到cookie中。 SessionID输出到Cookie bool `json:"sessionCookieOutput"` X日志记录器 *日志类.Logger `json:"logger"` // Logger 指定服务器使用的日志记录器。 X日志存储目录 string `json:"logPath"` // LogPath 指定存储日志文件的目录。 X日志记录等级 string `json:"logLevel"` // LogLevel 指定 logger 的日志记录级别。 X日志开启输出到CMD bool `json:"logStdout"` // LogStdout 指定是否将日志内容输出到标准输出(stdout)中。 X日志开启错误堆栈记录 bool `json:"errorStack"` // ErrorStack 指定在出现错误时是否记录堆栈信息。 X日志开启错误记录 bool `json:"errorLogEnabled"` // ErrorLogEnabled 开启错误日志功能,将错误内容记录到文件中。 X日志错误文件命名模式 string `json:"errorLogPattern"` // ErrorLogPattern 指定错误日志文件的命名模式,例如:error-{Ymd}.log X日志开启访客记录 bool `json:"accessLogEnabled"` // AccessLogEnabled 开启访问日志功能,将访问内容记录到文件中。 X日志访客文件命名模式 string `json:"accessLogPattern"` // AccessLogPattern 指定访问日志文件的命名模式,如:access-{Ymd}.log PProf开启 bool `json:"pprofEnabled"` // PProfEnabled 开启PProf功能。 PProf模式 string `json:"pprofPattern"` // PProfPattern 指定路由器的 PProf 服务模式。 APIOpenApiUI路径 string `json:"openapiPath"` // OpenApiPath 指定OpenApi规范文件的路径。 APISwaggerUI路径 string `json:"swaggerPath"` // SwaggerPath 指定Swagger UI的路径,用于注册路由。 // ClientMaxBodySize 指定客户端请求的最大正文大小限制,单位为字节。 // 你可以在配置文件中使用类似 "1m"、"10m"、"500kb" 等字符串进行配置。 // 默认值为 `8MB`。 X客户端请求最大长度 int64 `json:"clientMaxBodySize"` // FormParsingMemory 指定用于解析多媒体表单的最大内存缓冲区大小(以字节为单位)。 // 可以在配置文件中使用类似 "1m"、"10m"、"500kb" 等字符串进行配置。 // 默认值为 1MB。 X表单解析最大缓冲区长度 int64 `json:"formParsingMemory"` // NameToUriType 指定了在注册路由时,将结构体方法名转换为URI的类型。 NameToUriType int `json:"nameToUriType"` // RouteOverWrite 允许在出现重复路由时进行覆盖。 X路由允许覆盖 bool `json:"routeOverWrite"` // DumpRouterMap 指定在服务器启动时是否自动转储路由映射。 DumpRouterMap bool `json:"dumpRouterMap"` // Graceful 启用进程内所有服务器的优雅重启功能。 X平滑重启开启 bool `json:"graceful"` // GracefulTimeout 设置父进程的最大存活时间(秒)。 GracefulTimeout uint8 `json:"gracefulTimeout"` // GracefulShutdownTimeout 设置在停止服务器之前其最大存活时间(秒)。 GracefulShutdownTimeout uint8 `json:"gracefulShutdownTimeout"` }
ServerConfig 是 HTTP 服务器的配置管理器。
func X创建配置对象Map ¶
ConfigFromMap 根据给定的映射和默认配置对象创建并返回一个 ServerConfig 对象。
type X请求 ¶
type X请求 struct { *http.Request X服务 *X服务 // Server. Cookie *Cookie // Cookie. Session *session类.Session // Session. X响应 *X响应 // 此请求对应的响应。 X路由 *X路由 // Matched Router for this request. Note that it's not available in HOOK handler. X开始时间 int64 // 请求开始时间(毫秒) X结束时间 int64 // 请求结束时的时间(毫秒)。 X中间件管理器 *middleware // 中间件管理器。 StaticFile *staticFile // 静态文件对象,用于静态文件服务。 // contains filtered or unexported fields }
Request 是一个请求的上下文对象。
func X从上下文取请求对象 ¶
RequestFromCtx 从 context 中检索并返回 Request 对象。
func (*X请求) GetMapStrStr别名 ¶
GetMapStrStr 是 GetRequestMapStrStr 的别名和便捷函数。 请参阅 GetRequestMapStrStr。
func (*X请求) GetNeverDoneCtx ¶
GetNeverDoneCtx 创建并返回一个永不完成的上下文对象, 该对象禁止手动设置完成状态,以保证上下文可以传递到异步goroutine中, 因此不会受到HTTP请求结束的影响。
这个改动是为了适应开发者在处理单个HTTP请求时创建多个goroutine进行上下文传播的常见使用习惯。
func (*X请求) GetStruct别名 ¶
GetStruct 是 GetRequestStruct 的别名和便捷函数。 请参阅 GetRequestStruct。
func (*X请求) MakeBodyRepeatableRead ¶
MakeBodyRepeatableRead 标记请求体是否可以被重复读取。 同时,它还会返回当前请求体的内容。
func (*X请求) X升级为websocket请求 ¶
WebSocket将当前请求升级为websocket请求。 如果升级成功,返回一个新的WebSocket对象;如果失败,则返回错误信息。 注意,该请求必须是websocket请求,否则升级必定会失败。
func (*X请求) X取multipart表单对象 ¶
GetMultipartForm 解析并返回表单为多部分表单形式。
func (*X请求) X取multipart表单文件数组对象 ¶
func (r *X请求) X取multipart表单文件数组对象(名称 string) []*multipart.FileHeader
GetMultipartFiles 解析并返回 POST 请求中的文件数组。 注意,请求表单的类型应当为 multipart。
func (*X请求) X取上下文对象值 ¶
func (r *X请求) X取上下文对象值(名称 interface{}, 默认值 ...interface{}) *泛型类.Var
GetCtxVar 通过给定的键名检索并返回一个 Var。 可选参数 `def` 指定了如果给定 `key` 在上下文中不存在时,Var 的默认值。
func (*X请求) X取上传文件对象 ¶
GetUploadFile 通过指定表单名称获取并返回上传文件。 此函数用于检索单个上传文件对象,该对象是通过多部分表单内容类型上传的。
如果检索失败或没有提交给定名称的表单文件,则返回 nil。
注意,`name` 是客户端多部分表单中文件字段的名称。
func (*X请求) X取上传文件数组对象 ¶
GetUploadFiles 根据指定表单名称获取并返回多个上传文件。 此函数用于检索多个使用 multipart/form-data 类型上传的文件对象。
如果检索失败或没有接收到客户端通过给定名称上传的表单文件,将返回 nil。
注意,`name` 是客户端 multipart 表单中文件字段的名称。
func (*X请求) X取分页类 ¶
GetPage 根据给定的`totalSize`(总数据量)和`pageSize`(每页大小)创建并返回分页对象。 注意:为了简化和方便,来自客户端的页参数名始终定义为 gpage.DefaultPageName。
func (*X请求) X取参数 ¶
GetRequest 函数用于获取并返回客户端通过任意HTTP方法传递的名为`key`的参数以及作为interface{}类型的自定义参数。参数`def`用于指定当`key`不存在时的默认值。
GetRequest 是用于检索参数的最常用函数之一。
注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。
func (*X请求) X取参数到Map ¶
GetRequestMap 从客户端获取并返回所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法。参数`kvMap`指定了从客户端参数中检索的键,关联的值是如果客户端未传递相应键时的默认值。
GetRequestMap 是用于检索参数的最常用函数之一。
注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。
func (*X请求) X取参数到MapStrStr ¶
GetRequestMapStrStr 从客户端获取并返回所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法。 参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。返回类型为map[string]string。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。
func (*X请求) X取参数到Map泛型类 ¶
GetRequestMapStrVar 获取并返回客户端通过任何HTTP方法传递的所有参数,以及自定义参数, 并以map[string]*gvar.Var的形式返回。参数`kvMap`指定了从客户端参数中获取的键, 相关联的值是当客户端未传递时的默认值。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。
func (*X请求) X取参数到结构体 ¶
GetRequestStruct 从客户端获取所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法, 并将它们转换为给定的结构体对象。注意,参数`pointer`是指向结构体对象的指针。 可选参数`mapping`用于指定键到属性的映射关系。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。
func (*X请求) X取响应对象及错误信息 ¶
func (r *X请求) X取响应对象及错误信息() interface{}
GetHandlerResponse 获取并返回处理器响应对象及其错误信息。
func (*X请求) X取查询参数到Map ¶
GetQueryMap 从客户端通过 HTTP GET 方法传递的所有参数中获取并以 map 形式返回。参数 `kvMap` 指定了要从客户端参数中检索的键,关联的值是如果客户端未传递时的默认值。
注意,如果有多个同名参数,则按照 query > body 的优先级顺序获取并覆盖这些参数。 从GET方式传递过来的参数,包括Query String及Body参数解析。
func (*X请求) X取查询参数到MapStrStr ¶
GetQueryMapStrStr 从客户端通过HTTP GET方法获取并返回所有传递的参数,以 map[string]string 的形式。参数 `kvMap` 指定了要从客户端参数中检索的键, 关联的值是如果客户端未传递时的默认值。 从GET方式传递过来的参数,包括Query String及Body参数解析。
func (*X请求) X取查询参数到Map泛型类数组 ¶
GetQueryMapStrVar 从客户端通过HTTP GET方法获取并返回所有传递的参数,以map[string]*gvar.Var的形式。参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联值为默认值。 从GET方式传递过来的参数,包括Query String及Body参数解析。
func (*X请求) X取查询参数到泛型类 ¶
GetQuery 从查询字符串和请求体中获取并返回指定名称`key`的参数。如果`key`在查询中不存在且提供了`def`,则返回`def`;否则返回nil。
注意,如果有多个同名参数,将以优先级顺序获取并覆盖:query > body。 从GET方式传递过来的参数,包括Query String及Body参数解析。
func (*X请求) X取查询参数到结构体 ¶
GetQueryStruct 通过HTTP GET方法获取客户端传递的所有参数,并将它们转换为给定的结构体对象。注意,参数`pointer`是指向该结构体对象的指针。 可选参数`mapping`用于指定键到属性的映射关系。 从GET方式传递过来的参数,包括Query String及Body参数解析。
func (*X请求) X取自定义参数到泛型类 ¶
GetParam 函数用于获取自定义参数,通过给定的名称 `key`。 若 `key` 不存在,则返回 `def`。 若未提供 `def`,则返回 nil。
func (*X请求) X取表单值到Map ¶
GetFormMap 从客户端获取并返回所有表单参数,以map形式返回。 参数 `kvMap` 指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。
func (*X请求) X取表单值到MapStrStr ¶
GetFormMapStrStr 从客户端获取并返回所有以 map[string]string 形式传递的表单参数。 参数 `kvMap` 指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。
func (*X请求) X取表单值到Map泛型类 ¶
GetFormMapStrVar 从客户端获取并返回所有以map[string]*gvar.Var形式传递的表单参数。 参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。
func (*X请求) X取表单值到结构 ¶
GetFormStruct 从客户端获取所有传递的表单参数,并将其转换为给定的结构体对象。 注意,参数 `pointer` 是指向结构体对象的指针。 可选参数 `mapping` 用于指定键到属性的映射关系。
func (*X请求) X取请求体到json类 ¶
GetJson 将当前请求内容解析为JSON格式,并返回JSON对象。 注意:请求内容是从request BODY中读取,而不是从FORM的任何字段中读取。
func (*X请求) X取路由器Map副本 ¶
GetRouterMap 获取并返回路由器映射表的一个副本。
func (*X请求) X取路由器值到泛型类 ¶
GetRouter 根据给定的键名 `key` 获取并返回路由器值。 如果 `key` 不存在,则返回 `def`。
func (*X请求) X解析参数到结构 ¶
Parse 是最常用的函数,用于将请求参数转换为结构体或结构体切片。 同时,它也会根据结构体上的验证标签自动校验结构体或结构体切片中的每个元素。
参数 `pointer` 可以是以下类型:*struct/**struct/*[]struct/*[]*struct。
它支持单个和多个结构体的转换: 1. 单个结构体,POST 内容如:{"id":1, "name":"john"} 或 ?id=1&name=john 2. 多个结构体,POST 内容如:[{"id":1, "name":"john"}, {"id":, "name":"smith"}]
TODO: 通过减少在不同包中对同一变量重复使用 reflect 来提高性能。
func (*X请求) X设置上下文对象值 ¶
func (r *X请求) X设置上下文对象值(名称 interface{}, 值 interface{})
SetCtxVar 通过键值对设置自定义参数到上下文中。
func (*X请求) X设置自定义参数Map ¶
SetParamMap 用于设置自定义参数,采用键值对形式的映射。
type X路由 ¶
type X路由 struct { Uri string // URI. Method string // HTTP method Domain string // Bound domain. X正则路由规则 string // 解析后的用于路由匹配的正则表达式。 X路由参数名称 []string // 解析后的路由参数名称。 Priority int // 仅供参考 }
Router object.
type X路由处理函数 ¶
type X路由处理函数 struct { // 唯一处理器项标识符标记。 // 注意,处理器函数可能会以不同的处理器项身份注册多次, // 这些处理器项具有不同的处理器项标识符。 Id int X处理器名称 string // 处理器名称,在注册时会自动从运行时堆栈中获取。 Type X路由处理器类型 // 处理器类型:对象/处理器/中间件/钩子。 X处理器函数信息 handlerFuncInfo // 处理函数信息 X初始化回调函数 HandlerFunc // 初始化函数:当请求进入对象时调用(仅适用于对象注册类型)。 X关闭回调函数 HandlerFunc // Shutdown 函数在请求离开对象时调用(仅适用于对象注册类型)。 X中间件数组 []HandlerFunc // 绑定中间件数组。 Hook名称 Hook名称 // Hook类型名称,仅适用于Hook类型。 X路由 *X路由 // Router object. X注册来源 string // 注册源文件 `路径:行数`。 }
HandlerItem 是注册的路由处理程序, 包括中间件和钩子函数。
func (X路由处理函数) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。
Source Files ¶
- ghttp.go
- ghttp_func.go
- ghttp_middleware_cors.go
- ghttp_middleware_handler_response.go
- ghttp_middleware_json_body.go
- ghttp_middleware_tracing.go
- ghttp_request.go
- ghttp_request_auth.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_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_windows.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_openapi.go
- ghttp_server_plugin.go
- ghttp_server_pprof.go
- ghttp_server_registry.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_handler.go
- ghttp_server_service_object.go
- ghttp_server_session.go
- ghttp_server_status.go
- ghttp_server_swagger.go
- ghttp_server_util.go
- ghttp_server_websocket.go