http类

package
v0.0.0-...-2910145 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: MIT Imports: 83 Imported by: 0

Documentation

Rendered for windows/amd64

Overview

Package ghttp 提供了强大的HTTP服务器及简洁的客户端实现。

Index

Constants

View Source
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"
)
View Source
const (
	UriTypeDefault  = 0 // 转换方法名称到URI的类型,该类型将名称转换为小写并将单词使用字符'-'连接起来。
	UriTypeFullName = 1 // MethodNamesToURI 是一个用于将方法名转换为URI的类型,但并不转换回方法名。
	UriTypeAllLower = 2 // MethodNamesToURI 是一个将方法名转换为 URI 的类型,该类型会将名称转换为其小写形式。
	UriTypeCamel    = 3 // MethodNamesToURI 是一个用于将方法名称转换为 URI 的类型,该类型将名称转换为其驼峰式表示。
)
View Source
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
)
View Source
const (
	// FreePortAddress 表示服务器使用随机空闲端口进行监听。
	X空闲端口地址 = ":0"
)

Variables

View Source
var (
	ERR请求体必须json格式 = 错误类.NewWithOption(错误类.Option{
		Text: "the request body content should be JSON format",
		Code: 错误码类.CodeInvalidRequest,
	})
)

Functions

func MiddlewareHandlerResponse

func MiddlewareHandlerResponse(r *X请求)

MiddlewareHandlerResponse 是默认中间件处理处理器响应对象及其错误的接口。

func PProf服务端创建

func PProf服务端创建(监听端口 int, 作废参数 ...string)

StartPProfServer 启动并运行一个新的 pprof 服务端。

func X中间件函数_验证JSON格式请求体

func X中间件函数_验证JSON格式请求体(r *X请求)

MiddlewareJsonBody 验证并返回请求体是否为 JSON 格式。

func X中间件跨域函数

func X中间件跨域函数(r *X请求)

MiddlewareCORS 是一个用于 CORS(跨源资源共享)的中间件处理器,采用默认选项。

func X取所支持的HTTP方法

func X取所支持的HTTP方法() []string

SupportedMethods 返回所有支持的HTTP方法。

func X平滑关闭所有服务

func X平滑关闭所有服务(上下文 context.Context) error

ShutdownAllServer 将当前进程中的所有服务器优雅地关闭。

func X平滑重启所有服务

func X平滑重启所有服务(上下文 context.Context, 新可执行文件路径 string) error

RestartAllServer 将优雅地重启进程中的所有服务器。 可选参数 `newExeFilePath` 指定了用于创建新进程的二进制文件。

func X生成请求参数

func X生成请求参数(参数 interface{}, 不进行URL编码 ...bool) (请求参数 string)

BuildParams 为 http 客户端构建请求字符串。`params` 参数可以是以下类型: string/[]byte/map/struct/*struct。

可选参数 `noUrlEncode` 指定是否忽略对数据的 URL 编码。

func X等待所有服务完成

func X等待所有服务完成()

Wait 阻塞等待所有服务器完成。 在多服务器场景中,它通常被使用。

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 struct {
	// contains filtered or unexported fields
}

Cookie 用于 HTTP COOKIE 管理。

func X取cookie对象

func X取cookie对象(r *X请求) *Cookie

GetCookie 函数通过给定的请求创建或检索一个 cookie 对象。 若已存在与给定请求相关的 cookie,则检索并返回该存在的 cookie 对象。 若不存在与给定请求相关的 cookie,则创建并返回一个新的 cookie 对象。

func (*Cookie) X删除cookie

func (c *Cookie) X删除cookie(名称, 域名, 路径 string)

RemoveCookie 通过给定的域名和路径,从cookie中删除指定的键及其对应的值。 实际上,它会告知http客户端该cookie已过期,下次不要将其发送到服务器。

func (*Cookie) X删除值

func (c *Cookie) X删除值(名称 string)

Remove 函数通过使用默认的域名和路径,从cookie中删除指定的键及其对应的值。 实质上,它告知http客户端该cookie已过期,下次不要将其发送到服务器。

func (*Cookie) X取Map

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

Map 将 cookie 项以 map[string]string 的形式返回。

func (*Cookie) X取SessionId

func (c *Cookie) X取SessionId() string

GetSessionId 从cookie中获取并返回会话id。

func (*Cookie) X取值

func (c *Cookie) X取值(名称 string, 默认值 ...string) *泛型类.Var

Get 方法用于获取并返回指定键的值。 如果指定的键不存在且提供了默认值 `def`,则返回 `def`。

func (*Cookie) X是否已过期

func (c *Cookie) X是否已过期(名称 string) bool

Contains 检查给定的键是否存在且在 cookie 中未过期。

func (*Cookie) X设置SessionId到Cookie

func (c *Cookie) X设置SessionId到Cookie(id string)

SetSessionId 将会话ID设置到cookie中。

func (*Cookie) X设置cookie

func (c *Cookie) X设置cookie(名称, 值, 域名, 路径 string, 最大存活时长 time.Duration, 安全配置项 ...Cookie安全配置项)

SetCookie 用于给指定的域名、路径设置cookie项,并设置其过期时间。 可选参数 `options` 指定了额外的安全配置,通常为空。

func (*Cookie) X设置httpcookie

func (c *Cookie) X设置httpcookie(httpCookie *http.Cookie)

SetHttpCookie 通过 *http.Cookie 设置 cookie。

func (*Cookie) X设置值

func (c *Cookie) X设置值(名称, 值 string)

Set 使用默认的域名、路径和过期时间设置cookie项。

func (*Cookie) X输出

func (c *Cookie) X输出()

Flush 将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 Hook名称

type Hook名称 string

HookName 是路由钩子名称的枚举类型。

type ResponseWriter

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

ResponseWriter 是用于 HTTP 响应的自定义编写器。 2024-01-07备注, X基础响应器对象, 此处不汉化, liteide有bug,会导致部分字段没有一起重命名

func (*ResponseWriter) Flush

func (w *ResponseWriter) Flush()

Flush 将缓冲区内容输出到客户端并清空缓冲区。

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 Session

type Session = session类.Session

Session 实际上是 gsession.Session 的别名, 并且它是与单个请求绑定的。

type WebSocket

type WebSocket struct {
	*websocket.Conn
}

WebSocket 对底层的websocket连接进行封装 并提供了便捷的功能函数。

type X上传文件

type X上传文件 struct {
	*multipart.FileHeader `json:"-"`
	// contains filtered or unexported fields
}

UploadFile 通过提供更多的便捷功能,对使用multipart方式上传文件进行了封装。

func (X上传文件) MarshalJSON

func (f X上传文件) MarshalJSON() ([]byte, error)

MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。

func (*X上传文件) X保存

func (f *X上传文件) X保存(目录路径 string, 随机重命名 ...bool) (文件名 string, 错误 error)

Save 保存单个上传的文件到指定目录路径,并返回已保存的文件名。

参数`dirPath`应为一个目录路径,否则将返回错误。

注意:如果目标位置已经存在同名文件,则会直接覆盖该文件。

type X上传文件数组

type X上传文件数组 []*X上传文件

UploadFiles 是 *UploadFile 类型的数组。

func (X上传文件数组) X保存

func (fs X上传文件数组) X保存(目录路径 string, 随机重命名 ...bool) (文件名数组 []string, 错误 error)

Save 保存所有上传的文件到指定的目录路径,并返回已保存的文件名。

参数`dirPath`应为一个目录路径,否则将返回错误。

参数`randomlyRename`指定了是否随机重命名所有的文件名。 以下是详细的中文注释: ```go Save 函数的作用是将所有正在上传的文件保存到指定的目录路径下,并返回这些文件在保存后的文件名列表。

参数 `dirPath` 表示目标保存目录的路径,如果该路径不是一个有效的目录,则函数会返回错误信息。

参数 `randomlyRename` 是一个布尔值,用来指定是否对所有上传的文件进行随机重命名操作。如果设为 true,则在保存文件时将会生成随机文件名;否则,文件将以原有文件名进行保存。

type X分组路由

type X分组路由 struct {
	// contains filtered or unexported fields
}

RouterGroup 是一个包裹了多个路由和中间件的分组。

func (*X分组路由) X创建分组路由

func (g *X分组路由) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由

Group 创建并返回当前路由组的一个子组。

func (*X分组路由) X取副本

func (g *X分组路由) X取副本() *X分组路由

Clone 返回一个新的路由组,它是当前组的克隆副本。

func (*X分组路由) X绑定

func (g *X分组路由) X绑定(处理对象 ...interface{}) *X分组路由

Bind 为一个路由组提供批量注册路由的功能。

func (*X分组路由) X绑定CONNECT

func (g *X分组路由) X绑定CONNECT(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

CONNECT 注册一个 HTTP 处理器,用于给定路由模式和 HTTP 方法:CONNECT。

func (*X分组路由) X绑定DELETE

func (g *X分组路由) X绑定DELETE(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

DELETE 注册一个 HTTP 处理器,根据给定的路由模式和 HTTP 方法(DELETE)进行处理。

func (*X分组路由) X绑定GET

func (g *X分组路由) X绑定GET(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

GET 注册一个 HTTP 处理器,用于给定的路由模式和 HTTP 方法:GET。

func (*X分组路由) X绑定HEAD

func (g *X分组路由) X绑定HEAD(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

HEAD 注册一个 HTTP 处理器,用于指定路由模式和 HTTP 方法:HEAD。

func (*X分组路由) X绑定Hook

func (g *X分组路由) X绑定Hook(路由规则 string, 触发时机 Hook名称, 处理函数 HandlerFunc) *X分组路由

Hook 将钩子注册到给定的路由模式。

func (*X分组路由) X绑定Map

func (g *X分组路由) X绑定Map(m map[string]interface{})

Map 通过使用映射表注册HTTP方法对应的HTTP处理器。

func (*X分组路由) X绑定OPTIONS

func (g *X分组路由) X绑定OPTIONS(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

OPTIONS 注册一个HTTP处理器,用于指定路由模式和HTTP方法:OPTIONS。

func (*X分组路由) X绑定PATCH

func (g *X分组路由) X绑定PATCH(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

PATCH 注册一个 HTTP 处理器,用于给定的路由模式和 HTTP 方法:PATCH。

func (*X分组路由) X绑定POST

func (g *X分组路由) X绑定POST(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

POST 注册一个 HTTP 处理器,用于给定路由模式和 HTTP 方法:POST。

func (*X分组路由) X绑定PUT

func (g *X分组路由) X绑定PUT(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

PUT 注册一个 HTTP 处理器,用于给定路由模式和 HTTP 方法:PUT。

func (*X分组路由) X绑定RESTfulAPI对象

func (g *X分组路由) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{}) *X分组路由

REST 根据REST规则注册一个HTTP处理器,以便给定路由模式。

func (*X分组路由) X绑定TRACE

func (g *X分组路由) X绑定TRACE(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

TRACE 注册一个 HTTP 处理器,用于提供路由模式和 HTTP 方法:TRACE。

func (*X分组路由) X绑定中间件

func (g *X分组路由) X绑定中间件(处理函数 ...HandlerFunc) *X分组路由

Middleware 将一个或多个中间件绑定到路由组。

func (*X分组路由) X绑定所有类型

func (g *X分组路由) X绑定所有类型(路由规则 string, 处理函数 interface{}, 额外参数 ...interface{}) *X分组路由

ALL 注册一个HTTP处理器,通过给定路由模式和所有HTTP方法。

func (*X分组路由) X绑定所有类型Map

func (g *X分组路由) X绑定所有类型Map(m map[string]interface{})

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

func (r *X响应) ServeContent(name string, modTime time.Time, content io.ReadSeeker)

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下载文件

func (r *X响应) X下载文件(路径 string, 文件名 ...string)

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写响应缓冲区

func (r *X响应) X写响应缓冲区(内容 ...interface{})

Write将`content`写入响应缓冲区。

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

func (r *X响应) X写响应缓冲区XML(内容 interface{}, 根标记 ...string)

WriteXml 将`content`以XML格式写入响应。

func (*X响应) X写响应缓冲区XML并退出

func (r *X响应) X写响应缓冲区XML并退出(内容 interface{}, 根标记 ...string)

WriteXmlExit将`content`以XML格式写入响应,并在成功时退出当前处理器的执行。 "Exit"特性通常用于为了方便起见,在处理器中替换return语句的使用。

func (*X响应) X写响应缓冲区与HTTP状态码

func (r *X响应) X写响应缓冲区与HTTP状态码(状态码 int, 内容 ...interface{})

WriteStatus将HTTP状态码`status`和内容`content`写入响应中。 注意,这里没有设置Content-Type头信息。

func (*X响应) X写响应缓冲区与HTTP状态码并退出

func (r *X响应) X写响应缓冲区与HTTP状态码并退出(状态码 int, 内容 ...interface{})

WriteStatusExit 将HTTP状态码`status`和内容`content`写入响应,并在成功时退出当前处理器的执行。 "Exit"特性通常用于为了方便,替换处理器中return语句的使用。

func (*X响应) X写响应缓冲区并换行

func (r *X响应) X写响应缓冲区并换行(内容 ...interface{})

Writeln将`content`内容和换行符一起写入响应。

func (*X响应) X写响应缓冲区并格式化

func (r *X响应) X写响应缓冲区并格式化(格式 string, 内容 ...interface{})

Writef 使用 fmt.Sprintf 方法写入响应内容。

func (*X响应) X写响应缓冲区并格式化与换行

func (r *X响应) X写响应缓冲区并格式化与换行(格式 string, 内容 ...interface{})

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写响应缓冲区并退出与格式化

func (r *X响应) X写响应缓冲区并退出与格式化(格式 string, 内容 ...interface{})

WritefExit 通过 fmt.Sprintf 写入响应,并退出当前处理器的执行。 "Exit" 特性通常用于为了方便,在处理器中替代 return 语句的使用。

func (*X响应) X写响应缓冲区并退出与格式化换行

func (r *X响应) X写响应缓冲区并退出与格式化换行(格式 string, 内容 ...interface{})

WriteflnExit 通过 fmt.Sprintf 和换行符写出响应,并退出当前处理器的执行。 "Exit" 特性通常用于为了方便,而替换处理器中 return 语句的使用。

func (*X响应) X写覆盖响应缓冲区

func (r *X响应) X写覆盖响应缓冲区(内容 ...interface{})

WriteOver 将`content`覆盖写入响应缓冲区。

func (*X响应) X写覆盖响应缓冲区并退出

func (r *X响应) X写覆盖响应缓冲区并退出(内容 ...interface{})

WriteOverExit 用 `content` 覆盖响应缓冲区并退出当前处理器的执行。 "Exit" 特性通常用于为了方便起见,在处理器中替换 return 语句的使用。

func (*X响应) X发送文件

func (r *X响应) X发送文件(文件路径 string, 是否展示目录文件列表 ...bool)

ServeFile 将文件发送至响应。 会自动识别文件格式,如果是目录或者文本内容将会直接展示文件内容。 如果path参数为目录,那么第二个参数allowIndex控制是否可以展示目录下的文件列表。

func (*X响应) X取缓冲区字节集

func (r *X响应) X取缓冲区字节集() []byte

Buffer返回缓冲区中的内容作为[]byte。

func (*X响应) X取缓冲区文本

func (r *X响应) X取缓冲区文本() string

BufferString 返回缓冲区中的内容作为字符串。

func (*X响应) X取缓冲区长度

func (r *X响应) X取缓冲区长度() int

BufferLength 返回缓冲区内容的长度。

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清空缓冲区()

清空缓冲区 ClearBuffer 用于清空响应缓冲区。

func (*X响应) X解析文本模板

func (r *X响应) X解析文本模板(文本模板 string, 模板变量 ...模板类.Params) (string, error)

ParseTplContent 函数用于解析给定的模板文件 `file`,并使用给定的模板参数 `params` 进行解析, 然后返回解析后的模板内容。

func (*X响应) X解析模板文件

func (r *X响应) X解析模板文件(模板文件路径 string, 模板变量 ...模板类.Params) (string, error)

ParseTpl 将给定的模板文件 `tpl` 与给定的模板变量 `params` 进行解析, 并返回解析后的模板内容。

func (*X响应) X解析默认模板文件

func (r *X响应) X解析默认模板文件(模板变量 ...模板类.Params) (string, error)

ParseTplDefault 使用参数解析默认模板文件。

func (*X响应) X设置缓冲区字节集

func (r *X响应) X设置缓冲区字节集(字节集值 []byte)

SetBuffer 将`data`覆盖写入缓冲区。

func (*X响应) X跨域请求全允许

func (r *X响应) X跨域请求全允许()

CORSDefault 使用默认CORS选项设置CORS, 这将允许任何跨域请求。

func (*X响应) X跨域请求设置

func (r *X响应) X跨域请求设置(跨域选项 CORSOptions)

CORS 设置自定义 CORS 选项。 参见 https://www.w3.org/TR/cors/

func (*X响应) X输出到模板文件

func (r *X响应) X输出到模板文件(模板文件路径 string, 模板变量 ...模板类.Params) error

WriteTpl 解析并响应给定的模板文件。 参数 `params` 指定了用于解析的模板变量。

func (*X响应) X输出到默认模板文件

func (r *X响应) X输出到默认模板文件(模板变量 ...模板类.Params) error

WriteTplDefault 解析并响应默认模板文件。 参数`params`用于指定模板解析所需的变量。

func (*X响应) X输出文本模板

func (r *X响应) X输出文本模板(文本模板 string, 模板变量 ...模板类.Params) error

WriteTplContent 解析并响应模板内容。 参数 `params` 指定了用于解析的模板变量。

func (*X响应) X输出缓存区

func (r *X响应) X输出缓存区()

Flush 将缓冲区内容输出到客户端并清空缓冲区。

func (*X响应) X重定向

func (r *X响应) X重定向(url地址 string, 重定向状态码 ...int)

RedirectTo 重定向客户端到另一个位置。 可选参数 `code` 指定了用于重定向的 HTTP 状态码, 通常可以是 301 或 302,默认为 302。

func (*X响应) X重定向到来源页面

func (r *X响应) X重定向到来源页面(重定向状态码 ...int)

RedirectBack 重定向客户端返回到referer页面。 可选参数 `code` 指定用于重定向的http状态码,通常可以是301或302,默认为302。

type X域名路由

type X域名路由 struct {
	// contains filtered or unexported fields
}

Domain 用于为域名进行路由注册。

func (*X域名路由) PProf开启

func (d *X域名路由) PProf开启(路由地址 ...string)

EnablePProf 启用指定域名服务器的 PProf 功能。

func (*X域名路由) Use别名

func (d *X域名路由) Use别名(处理函数 ...HandlerFunc)

Use 向域名添加中间件。 Use 是 BindMiddlewareDefault 的别名。 请参阅 BindMiddlewareDefault。

func (*X域名路由) X创建分组路由

func (d *X域名路由) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由

Group 创建并返回一个 RouterGroup 对象,该对象与指定的域名绑定。

func (*X域名路由) X绑定

func (d *X域名路由) X绑定(路由规则 string, 处理函数 interface{})

BindHandler 为指定模式绑定处理器。

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对象

func (d *X域名路由) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{})

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绑定对象

func (d *X域名路由) X绑定对象(路由规则 string, 处理对象 interface{}, 方法名 ...string)

BindObject 为指定的模式绑定对象。

BindObjectMethod和BindObject的区别: BindObjectMethod将对象中的指定方法与指定路由规则进行绑定,第三个method参数只能指定一个方法名称; BindObject注册时,所有的路由都是对象方法名称按照规则生成的,第三个methods参数可以指定多个注册的方法名称。

func (*X域名路由) X绑定对象方法

func (d *X域名路由) X绑定对象方法(路由规则 string, 处理对象 interface{}, 方法 string)

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服务) Logger别名

func (s *X服务) Logger别名() *日志类.Logger

Logger 是 GetLogger 的别名。

func (*X服务) PProf开启

func (s *X服务) PProf开启(路由地址 ...string)

EnablePProf 启用服务器的 PProf 功能。

func (*X服务) ServeHTTP

func (s *X服务) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP 是处理 HTTP 请求的默认处理器。 由于它是由 http.Server 已经创建的新 goroutine 调用的,所以不应在此函数中创建新的处理请求的 goroutine。

此外,这个函数实现了 http.Handler 接口。

func (*X服务) SetDumpRouterMap

func (s *X服务) SetDumpRouterMap(enabled bool)

SetDumpRouterMap 为服务器设置 DumpRouterMap。 如果启用了 DumpRouterMap,服务器启动时会自动导出路由映射表。

func (*X服务) SetEndpoints

func (s *X服务) SetEndpoints(endpoints []string)

SetEndpoints 设置服务器的端点。

func (*X服务) SetNameToUriType

func (s *X服务) SetNameToUriType(t int)

SetNameToUriType 为服务器设置 NameToUriType。

func (*X服务) Use别名

func (s *X服务) Use别名(处理函数 ...HandlerFunc)

Use 是 BindMiddlewareDefault 的别名。 请参阅 BindMiddlewareDefault。

func (*X服务) X关闭当前服务

func (s *X服务) X关闭当前服务() error

Shutdown 关闭当前服务器。

func (*X服务) X创建分组路由

func (s *X服务) X创建分组路由(分组前缀 string, 分组函数 ...func(分组路由 *X分组路由)) *X分组路由

Group 创建并返回一个 RouterGroup 对象。

func (*X服务) X创建域名路由

func (s *X服务) X创建域名路由(域名 string) *X域名路由

Domain 创建并返回一个域名管理对象,用于管理一个或多个域名。

func (*X服务) X取CookieHttpOnly

func (s *X服务) X取CookieHttpOnly() bool

func (*X服务) X取CookieSameSite

func (s *X服务) X取CookieSameSite() http.SameSite

GetCookieSameSite 返回服务器的 CookieSameSite 值。

func (*X服务) X取Cookie域名

func (s *X服务) X取Cookie域名() string

GetCookieDomain 返回服务器的 CookieDomain。

func (*X服务) X取Cookie安全

func (s *X服务) X取Cookie安全() bool

func (*X服务) X取Cookie最大存活时长

func (s *X服务) X取Cookie最大存活时长() time.Duration

GetCookieMaxAge 返回服务器的 CookieMaxAge 值。

func (*X服务) X取Cookie路径

func (s *X服务) X取Cookie路径() string

GetCookiePath 返回服务器的 CookiePath。

func (*X服务) X取OpenApi对象

func (s *X服务) X取OpenApi对象() *goai.OpenApiV3

GetOpenApi 返回当前服务器的OpenApi规范管理对象。

func (*X服务) X取SessionCookie存活时长

func (s *X服务) X取SessionCookie存活时长() time.Duration

GetSessionCookieMaxAge 返回服务器的 SessionCookieMaxAge 值。

func (*X服务) X取SessionID名称

func (s *X服务) X取SessionID名称() string

GetSessionIdName 返回服务器的 SessionIdName。

func (*X服务) X取Session最大存活时长

func (s *X服务) X取Session最大存活时长() time.Duration

GetSessionMaxAge 返回服务器的 SessionMaxAge 值。

func (*X服务) X取已监听地址

func (s *X服务) X取已监听地址() string

GetListenedAddress 获取并返回当前服务器监听的地址字符串。

func (*X服务) X取已监听端口

func (s *X服务) X取已监听端口() int

GetListenedPort 获取并返回当前服务器正在监听的一个端口。

func (*X服务) X取所有监听已端口

func (s *X服务) X取所有监听已端口() []int

GetListenedPorts 获取并返回当前服务器正在监听的所有端口。

func (*X服务) X取日志存储目录

func (s *X服务) X取日志存储目录() string

GetLogPath 返回日志路径。

func (*X服务) X取服务名称

func (s *X服务) X取服务名称() string

GetName 返回服务器的名称。

func (*X服务) X取服务状态

func (s *X服务) X取服务状态() X服务状态

Status 获取并返回服务器状态。

func (*X服务) X取注册发现对象

func (s *X服务) X取注册发现对象() gsvc.Registrar

GetRegistrar 返回服务器的注册器。

func (*X服务) X取请求处理器

func (s *X服务) X取请求处理器() func(w http.ResponseWriter, r *http.Request)

GetHandler 返回服务器的请求处理器。

func (*X服务) X取路由数组

func (s *X服务) X取路由数组() []RouterItem

GetRoutes 获取并返回路由数组。

func (*X服务) X取静态文件索引

func (s *X服务) X取静态文件索引() []string

GetIndexFiles 从服务器获取并返回索引文件。

func (*X服务) X启动服务

func (s *X服务) X启动服务()

Run 启动服务器并以阻塞方式监听。 该方法通常用于单服务器场景。

func (*X服务) X启用HTTPS

func (s *X服务) X启用HTTPS(证书路径, 密钥路径 string, tls配置 ...*tls.Config)

EnableHTTPS 通过给定的证书和密钥文件为服务器启用HTTPS。 可选参数 `tlsConfig` 指定了自定义的TLS配置。

func (*X服务) X平滑重启服务开启

func (s *X服务) X平滑重启服务开启(管理页URI ...string)

EnableAdmin 启用进程的管理功能。 可选参数 `pattern` 指定管理页面的 URI。

func (*X服务) X开始监听

func (s *X服务) X开始监听() error

Start 开始监听配置好的端口。 该函数不会阻塞进程,你可以使用函数 Wait 来阻塞进程。

func (*X服务) X插件添加

func (s *X服务) X插件添加(插件 ...X插件配置项)

Plugin 向服务器添加插件。

func (*X服务) X日志访客记录是否已开启

func (s *X服务) X日志访客记录是否已开启() bool

IsAccessLogEnabled 检查访问日志是否已启用。

func (*X服务) X日志错误记录是否已开启

func (s *X服务) X日志错误记录是否已开启() bool

IsErrorLogEnabled 检查错误日志是否已启用。

func (*X服务) X绑定

func (s *X服务) X绑定(路由规则 string, 处理函数 interface{})

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对象

func (s *X服务) X绑定RESTfulAPI对象(路由规则 string, 处理对象 interface{})

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绑定对象

func (s *X服务) X绑定对象(路由规则 string, 处理对象 interface{}, 方法名 ...string)

BindObject 将对象注册到服务器路由上,给定特定的模式。

可选参数 `method` 用于指定要注册的方法,该方法支持多个方法名; 多个方法之间用字符 ',' 分隔,大小写敏感。

func (*X服务) X绑定对象方法

func (s *X服务) X绑定对象方法(路由规则 string, 处理对象 interface{}, 方法 string)

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路径

func (s *X服务) X设置APIOpenApiUI路径(路径 string)

SetOpenApiPath 为服务器设置 OpenApiPath。

func (*X服务) X设置APISwaggerUI路径

func (s *X服务) X设置APISwaggerUI路径(路径 string)

SetSwaggerPath 用于设置服务器的 SwaggerPath。

func (*X服务) X设置Cookie域名

func (s *X服务) X设置Cookie域名(域名 string)

SetCookieDomain 为服务器设置 CookieDomain。

func (*X服务) X设置Cookie最大存活时长

func (s *X服务) X设置Cookie最大存活时长(时长 time.Duration)

SetCookieMaxAge 设置服务器的 CookieMaxAge。

func (*X服务) X设置Cookie路径

func (s *X服务) X设置Cookie路径(路径 string)

SetCookiePath 为服务器设置 CookiePath。

func (*X服务) X设置HTTPS监听地址

func (s *X服务) X设置HTTPS监听地址(地址 string)

SetHTTPSAddr 设置服务器的 HTTPS 监听端口。

func (*X服务) X设置HTTPS监听端口

func (s *X服务) X设置HTTPS监听端口(端口 ...int)

SetHTTPSPort 设置服务器的 HTTPS 监听端口。 可以设置多个监听端口,例如:SetHTTPSPort(443, 500)。

func (*X服务) X设置SessionCookie存活时长

func (s *X服务) X设置SessionCookie存活时长(最大时长 time.Duration)

SetSessionCookieMaxAge 为服务器设置 SessionCookieMaxAge。

func (*X服务) X设置SessionID名称

func (s *X服务) X设置SessionID名称(名称 string)

SetSessionIdName 为服务器设置 SessionIdName。

func (*X服务) X设置SessionID输出到Cookie

func (s *X服务) X设置SessionID输出到Cookie(开启 bool)

SetSessionCookieOutput设置服务器的SetSessionCookieOutput。

func (*X服务) X设置Session存储对象

func (s *X服务) X设置Session存储对象(Session存储对象 session类.Storage)

SetSessionStorage 为服务器设置 SessionStorage。

func (*X服务) X设置Session最大存活时长

func (s *X服务) X设置Session最大存活时长(时长 time.Duration)

SetSessionMaxAge 设置服务器的 SessionMaxAge。

func (*X服务) X设置TLS配置

func (s *X服务) X设置TLS配置(tls配置 *tls.Config)

SetTLSConfig 设置自定义 TLS 配置,并为服务器启用 HTTPS 功能。

func (*X服务) X设置写入超时

func (s *X服务) X设置写入超时(时长 time.Duration)

SetWriteTimeout 为服务器设置写入超时时间。

func (*X服务) X设置协议头最大长度

func (s *X服务) X设置协议头最大长度(最大长度 int)

SetMaxHeaderBytes 设置服务器的 MaxHeaderBytes 值。

func (*X服务) X设置客户端请求最大长度

func (s *X服务) X设置客户端请求最大长度(最大长度 int64)

SetClientMaxBodySize 为服务器设置客户端最大请求体大小。

func (*X服务) X设置开启长连接

func (s *X服务) X设置开启长连接(开启 bool)

SetKeepAlive 设置服务器的 KeepAlive 参数。

func (*X服务) X设置日志存储目录

func (s *X服务) X设置日志存储目录(目录 string) error

SetLogPath 设置服务器的日志路径。 只有当设置了日志路径时,才会将日志内容记录到文件中。

func (*X服务) X设置日志开启记录等级

func (s *X服务) X设置日志开启记录等级(等级 string)

SetLogLevel 通过级别字符串设置日志等级。

func (*X服务) X设置日志开启访客记录

func (s *X服务) X设置日志开启访客记录(开启 bool)

SetAccessLogEnabled 开启/关闭访问日志功能。

func (*X服务) X设置日志开启输出到CMD

func (s *X服务) X设置日志开启输出到CMD(开启 bool)

SetLogStdout 设置是否将日志内容输出到 stdout。

func (*X服务) X设置日志开启错误堆栈记录

func (s *X服务) X设置日志开启错误堆栈记录(开启 bool)

SetErrorStack 开启或关闭错误堆栈功能。

func (*X服务) X设置日志开启错误记录

func (s *X服务) X设置日志开启错误记录(开启 bool)

SetErrorLogEnabled 用于启用/禁用错误日志。

func (*X服务) X设置日志记录器

func (s *X服务) X设置日志记录器(日志记录器 *日志类.Logger)

SetLogger 设置日志记录器以承担日志记录职责。 注意,由于可能存在并发安全问题,因此不能在运行时设置。

func (*X服务) X设置服务名称

func (s *X服务) X设置服务名称(名称 string)

SetName 为服务器设置名称。

func (*X服务) X设置服务器代理标识

func (s *X服务) X设置服务器代理标识(代理标识 string)

SetServerAgent 设置服务器的 ServerAgent。

func (*X服务) X设置注册发现对象

func (s *X服务) X设置注册发现对象(注册发现对象 gsvc.Registrar)

SetRegistrar 设置服务器的 Registrar。

func (*X服务) X设置监听地址

func (s *X服务) X设置监听地址(地址 string)

SetAddr 设置服务器的监听地址。 地址格式类似于 ':80'、'0.0.0.0:80'、'127.0.0.1:80'、'180.18.99.10:80' 等。

func (*X服务) X设置监听端口

func (s *X服务) X设置监听端口(端口 ...int)

SetPort 设置服务器监听端口。 监听端口可以设置多个,例如:SetPort(80, 8080)。

func (*X服务) X设置自定义监听器

func (s *X服务) X设置自定义监听器(监听器 ...net.Listener) error

SetListener 为服务器设置自定义监听器。

func (*X服务) X设置表单解析最大缓冲区长度

func (s *X服务) X设置表单解析最大缓冲区长度(最大长度 int64)

SetFormParsingMemory 用于设置服务器的表单解析内存。

func (*X服务) X设置请求处理器

func (s *X服务) X设置请求处理器(h func(w http.ResponseWriter, r *http.Request))

SetHandler 为服务器设置请求处理器。

func (*X服务) X设置读取超时

func (s *X服务) X设置读取超时(时长 time.Duration)

SetReadTimeout 设置服务器的读取超时时间。

func (*X服务) X设置路由URI重写规则

func (s *X服务) X设置路由URI重写规则(URI string, 新URI string)

SetRewrite 为服务器设置静态URI的重写规则。

func (*X服务) X设置路由URI重写规则Map

func (s *X服务) X设置路由URI重写规则Map(重写规则Map map[string]string)

SetRewriteMap 为服务器设置重写映射。

func (*X服务) X设置路由允许覆盖

func (s *X服务) X设置路由允许覆盖(开启 bool)

SetRouteOverWrite 为服务器设置 RouteOverWrite。

func (*X服务) X设置配置项

func (s *X服务) X设置配置项(c X服务配置项) error

SetConfig 设置服务器的配置。

func (*X服务) X设置配置项Map

func (s *X服务) X设置配置项Map(配置 map[string]interface{}) error

SetConfigWithMap 使用map设置服务器的配置

func (*X服务) X设置长连接超时

func (s *X服务) X设置长连接超时(时长 time.Duration)

SetIdleTimeout 为服务器设置空闲超时时间。

func (*X服务) X设置静态文件是否列出子文件

func (s *X服务) X设置静态文件是否列出子文件(是否 bool)

SetIndexFolder 设置启用或禁用在请求目录时列出子文件。

func (*X服务) X设置静态文件是否开启

func (s *X服务) X设置静态文件是否开启(开启 bool)

SetFileServerEnabled 用于启用/禁用静态文件服务。 这是静态文件服务的主要开关。当调用如 SetServerRoot、AddSearchPath 和 AddStaticPath 等静态文件服务配置函数时, 此配置会自动启用。

func (*X服务) X设置静态文件根目录

func (s *X服务) X设置静态文件根目录(根目录 string)

SetServerRoot 设置静态服务的文档根目录。

func (*X服务) X设置静态文件索引

func (s *X服务) X设置静态文件索引(索引 []string)

SetIndexFiles 设置服务器的索引文件。

func (*X服务) X设置默认模板对象

func (s *X服务) X设置默认模板对象(模板对象 *模板类.View)

SetView 设置服务器的视图。

func (*X服务) X静态文件添加目录映射

func (s *X服务) X静态文件添加目录映射(旧路径 string, 新路径 string)

AddStaticPath 设置静态文件服务的URI到静态目录路径映射。

func (*X服务) X静态文件添加额外搜索目录

func (s *X服务) X静态文件添加额外搜索目录(目录 string)

AddSearchPath 添加静态文件服务的搜索目录路径。

type X服务状态

type X服务状态 = int

ServerStatus 是服务器状态枚举类型。

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

func X创建配置对象Map(配置 map[string]interface{}) (X服务配置项, error)

ConfigFromMap 根据给定的映射和默认配置对象创建并返回一个 ServerConfig 对象。

func X创建默认配置项

func X创建默认配置项() X服务配置项

NewConfig 创建并返回一个具有默认配置的 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从上下文取请求对象

func X从上下文取请求对象(上下文 context.Context) *X请求

RequestFromCtx 从 context 中检索并返回 Request 对象。

func (*X请求) Context别名

func (r *X请求) Context别名() context.Context

Context 是 GetCtx 函数的别名。 此函数覆盖了 http.Request.Context 函数的功能。 请参阅 GetCtx。

func (*X请求) GetMapStrStr别名

func (r *X请求) GetMapStrStr别名(默认值 ...map[string]interface{}) map[string]string

GetMapStrStr 是 GetRequestMapStrStr 的别名和便捷函数。 请参阅 GetRequestMapStrStr。

func (*X请求) GetMap别名

func (r *X请求) GetMap别名(默认值 ...map[string]interface{}) map[string]interface{}

GetMap 是一个别名,也是一个方便获取请求映射的函数。 请参阅 GetRequestMap。

func (*X请求) GetNeverDoneCtx

func (r *X请求) GetNeverDoneCtx() context.Context

GetNeverDoneCtx 创建并返回一个永不完成的上下文对象, 该对象禁止手动设置完成状态,以保证上下文可以传递到异步goroutine中, 因此不会受到HTTP请求结束的影响。

这个改动是为了适应开发者在处理单个HTTP请求时创建多个goroutine进行上下文传播的常见使用习惯。

func (*X请求) GetStruct别名

func (r *X请求) GetStruct别名(结构指针 interface{}, mapping ...map[string]string) error

GetStruct 是 GetRequestStruct 的别名和便捷函数。 请参阅 GetRequestStruct。

func (*X请求) Get别名

func (r *X请求) Get别名(名称 string, 默认值 ...interface{}) *泛型类.Var

Get 是 GetRequest 的别名,它是用于获取参数的最常用函数之一。 请参阅 r.GetRequest。

func (*X请求) MakeBodyRepeatableRead

func (r *X请求) MakeBodyRepeatableRead(repeatableRead bool) []byte

MakeBodyRepeatableRead 标记请求体是否可以被重复读取。 同时,它还会返回当前请求体的内容。

func (*X请求) X升级为websocket请求

func (r *X请求) X升级为websocket请求() (*WebSocket, error)

WebSocket将当前请求升级为websocket请求。 如果升级成功,返回一个新的WebSocket对象;如果失败,则返回错误信息。 注意,该请求必须是websocket请求,否则升级必定会失败。

func (*X请求) X取SessionId

func (r *X请求) X取SessionId() string

GetSessionId 从cookie或header中检索并返回会话ID。

func (*X请求) X取URL

func (r *X请求) X取URL() string

GetUrl 返回当前请求的URL。

func (*X请求) X取multipart表单对象

func (r *X请求) X取multipart表单对象() *multipart.Form

GetMultipartForm 解析并返回表单为多部分表单形式。

func (*X请求) X取multipart表单文件数组对象

func (r *X请求) X取multipart表单文件数组对象(名称 string) []*multipart.FileHeader

GetMultipartFiles 解析并返回 POST 请求中的文件数组。 注意,请求表单的类型应当为 multipart。

func (*X请求) X取上下文对象

func (r *X请求) X取上下文对象() context.Context

GetCtx 从请求中检索并返回其上下文。 它是函数 Context 的别名,为了与函数 SetCtx 保持关联性。

func (*X请求) X取上下文对象值

func (r *X请求) X取上下文对象值(名称 interface{}, 默认值 ...interface{}) *泛型类.Var

GetCtxVar 通过给定的键名检索并返回一个 Var。 可选参数 `def` 指定了如果给定 `key` 在上下文中不存在时,Var 的默认值。

func (*X请求) X取上传文件对象

func (r *X请求) X取上传文件对象(名称 string) *X上传文件

GetUploadFile 通过指定表单名称获取并返回上传文件。 此函数用于检索单个上传文件对象,该对象是通过多部分表单内容类型上传的。

如果检索失败或没有提交给定名称的表单文件,则返回 nil。

注意,`name` 是客户端多部分表单中文件字段的名称。

func (*X请求) X取上传文件数组对象

func (r *X请求) X取上传文件数组对象(名称 string) X上传文件数组

GetUploadFiles 根据指定表单名称获取并返回多个上传文件。 此函数用于检索多个使用 multipart/form-data 类型上传的文件对象。

如果检索失败或没有接收到客户端通过给定名称上传的表单文件,将返回 nil。

注意,`name` 是客户端 multipart 表单中文件字段的名称。

func (*X请求) X取主机名

func (r *X请求) X取主机名() string

GetHost 返回当前请求的主机名,该主机名可能是域名或不带端口号的IP地址。

func (*X请求) X取分页类

func (r *X请求) X取分页类(总数据量, 每页大小 int) *分页类.Page

GetPage 根据给定的`totalSize`(总数据量)和`pageSize`(每页大小)创建并返回分页对象。 注意:为了简化和方便,来自客户端的页参数名始终定义为 gpage.DefaultPageName。

func (*X请求) X取协议头值

func (r *X请求) X取协议头值(名称 string) string

GetHeader根据给定的`key`检索并返回头部值。

func (*X请求) X取参数

func (r *X请求) X取参数(名称 string, 默认 ...interface{}) *泛型类.Var

GetRequest 函数用于获取并返回客户端通过任意HTTP方法传递的名为`key`的参数以及作为interface{}类型的自定义参数。参数`def`用于指定当`key`不存在时的默认值。

GetRequest 是用于检索参数的最常用函数之一。

注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。

func (*X请求) X取参数到Map

func (r *X请求) X取参数到Map(kvMap ...map[string]interface{}) map[string]interface{}

GetRequestMap 从客户端获取并返回所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法。参数`kvMap`指定了从客户端参数中检索的键,关联的值是如果客户端未传递相应键时的默认值。

GetRequestMap 是用于检索参数的最常用函数之一。

注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。

func (*X请求) X取参数到MapStrStr

func (r *X请求) X取参数到MapStrStr(kvMap ...map[string]interface{}) map[string]string

GetRequestMapStrStr 从客户端获取并返回所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法。 参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。返回类型为map[string]string。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。

func (*X请求) X取参数到Map泛型类

func (r *X请求) X取参数到Map泛型类(kvMap ...map[string]interface{}) map[string]*泛型类.Var

GetRequestMapStrVar 获取并返回客户端通过任何HTTP方法传递的所有参数,以及自定义参数, 并以map[string]*gvar.Var的形式返回。参数`kvMap`指定了从客户端参数中获取的键, 相关联的值是当客户端未传递时的默认值。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。

func (*X请求) X取参数到结构体

func (r *X请求) X取参数到结构体(结构体指针 interface{}, 名称映射 ...map[string]string) error

GetRequestStruct 从客户端获取所有传递的参数以及自定义参数,无论客户端使用何种HTTP方法, 并将它们转换为给定的结构体对象。注意,参数`pointer`是指向结构体对象的指针。 可选参数`mapping`用于指定键到属性的映射关系。 注意,可获取客户端提交的所有参数,不区分提交方式。如果有多个同名参数,按照以下优先级顺序获取并覆盖:路由参数 < 查询参数 < 请求体参数 < 表单参数 < 自定义参数。

func (*X请求) X取响应对象及错误信息

func (r *X请求) X取响应对象及错误信息() interface{}

GetHandlerResponse 获取并返回处理器响应对象及其错误信息。

func (*X请求) X取客户端IP地址

func (r *X请求) X取客户端IP地址() string

GetClientIp 返回该请求的客户端IP地址,不包含端口号。 注意:此IP地址可能已被客户端头部信息修改。

func (*X请求) X取引用来源URL

func (r *X请求) X取引用来源URL() string

GetReferer 返回该请求的引用来源。

func (*X请求) X取查询参数到Map

func (r *X请求) X取查询参数到Map(kvMap ...map[string]interface{}) map[string]interface{}

GetQueryMap 从客户端通过 HTTP GET 方法传递的所有参数中获取并以 map 形式返回。参数 `kvMap` 指定了要从客户端参数中检索的键,关联的值是如果客户端未传递时的默认值。

注意,如果有多个同名参数,则按照 query > body 的优先级顺序获取并覆盖这些参数。 从GET方式传递过来的参数,包括Query String及Body参数解析。

func (*X请求) X取查询参数到MapStrStr

func (r *X请求) X取查询参数到MapStrStr(kvMap ...map[string]interface{}) map[string]string

GetQueryMapStrStr 从客户端通过HTTP GET方法获取并返回所有传递的参数,以 map[string]string 的形式。参数 `kvMap` 指定了要从客户端参数中检索的键, 关联的值是如果客户端未传递时的默认值。 从GET方式传递过来的参数,包括Query String及Body参数解析。

func (*X请求) X取查询参数到Map泛型类数组

func (r *X请求) X取查询参数到Map泛型类数组(kvMap ...map[string]interface{}) map[string]*泛型类.Var

GetQueryMapStrVar 从客户端通过HTTP GET方法获取并返回所有传递的参数,以map[string]*gvar.Var的形式。参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联值为默认值。 从GET方式传递过来的参数,包括Query String及Body参数解析。

func (*X请求) X取查询参数到泛型类

func (r *X请求) X取查询参数到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var

GetQuery 从查询字符串和请求体中获取并返回指定名称`key`的参数。如果`key`在查询中不存在且提供了`def`,则返回`def`;否则返回nil。

注意,如果有多个同名参数,将以优先级顺序获取并覆盖:query > body。 从GET方式传递过来的参数,包括Query String及Body参数解析。

func (*X请求) X取查询参数到结构体

func (r *X请求) X取查询参数到结构体(结构体指针 interface{}, mapping ...map[string]string) error

GetQueryStruct 通过HTTP GET方法获取客户端传递的所有参数,并将它们转换为给定的结构体对象。注意,参数`pointer`是指向该结构体对象的指针。 可选参数`mapping`用于指定键到属性的映射关系。 从GET方式传递过来的参数,包括Query String及Body参数解析。

func (*X请求) X取模板对象

func (r *X请求) X取模板对象() *模板类.View

GetView 返回当前请求的模板视图引擎对象。

func (*X请求) X取自定义参数到泛型类

func (r *X请求) X取自定义参数到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var

GetParam 函数用于获取自定义参数,通过给定的名称 `key`。 若 `key` 不存在,则返回 `def`。 若未提供 `def`,则返回 nil。

func (*X请求) X取表单值到Map

func (r *X请求) X取表单值到Map(kvMap ...map[string]interface{}) map[string]interface{}

GetFormMap 从客户端获取并返回所有表单参数,以map形式返回。 参数 `kvMap` 指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。

func (*X请求) X取表单值到MapStrStr

func (r *X请求) X取表单值到MapStrStr(kvMap ...map[string]interface{}) map[string]string

GetFormMapStrStr 从客户端获取并返回所有以 map[string]string 形式传递的表单参数。 参数 `kvMap` 指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。

func (*X请求) X取表单值到Map泛型类

func (r *X请求) X取表单值到Map泛型类(kvMap ...map[string]interface{}) map[string]*泛型类.Var

GetFormMapStrVar 从客户端获取并返回所有以map[string]*gvar.Var形式传递的表单参数。 参数`kvMap`指定了从客户端参数中检索的键,如果客户端未传递,则关联的值是默认值。

func (*X请求) X取表单值到泛型类

func (r *X请求) X取表单值到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var

GetForm 从表单中检索并返回参数 `key`。 如果 `key` 在表单中不存在,且提供了 `def`,则返回 `def`,否则返回 nil。

func (*X请求) X取表单值到结构

func (r *X请求) X取表单值到结构(结构指针 interface{}, mapping ...map[string]string) error

GetFormStruct 从客户端获取所有传递的表单参数,并将其转换为给定的结构体对象。 注意,参数 `pointer` 是指向结构体对象的指针。 可选参数 `mapping` 用于指定键到属性的映射关系。

func (*X请求) X取请求体到json类

func (r *X请求) X取请求体到json类() (*json类.Json, error)

GetJson 将当前请求内容解析为JSON格式,并返回JSON对象。 注意:请求内容是从request BODY中读取,而不是从FORM的任何字段中读取。

func (*X请求) X取请求体字节集

func (r *X请求) X取请求体字节集() []byte

GetBody 用于检索并返回请求正文内容作为字节。 它可以被多次调用,获取相同正文内容。

func (*X请求) X取请求体文本

func (r *X请求) X取请求体文本() string

GetBodyString 用于获取并返回请求体内容作为字符串。 它可以被多次调用,以获取相同的请求体内容。

func (*X请求) X取路由器Map副本

func (r *X请求) X取路由器Map副本() map[string]string

GetRouterMap 获取并返回路由器映射表的一个副本。

func (*X请求) X取路由器值到泛型类

func (r *X请求) X取路由器值到泛型类(名称 string, 默认值 ...interface{}) *泛型类.Var

GetRouter 根据给定的键名 `key` 获取并返回路由器值。 如果 `key` 不存在,则返回 `def`。

func (*X请求) X取路由解析对象

func (r *X请求) X取路由解析对象() *X路由解析

GetServeHandler 获取并返回用户自定义的用于处理当前请求的处理器。

func (*X请求) X取远程IP地址

func (r *X请求) X取远程IP地址() string

GetRemoteIp 从 RemoteAddr 返回 IP 地址。

func (*X请求) X取错误信息

func (r *X请求) X取错误信息() error

GetError 返回在请求过程中发生的错误。 如果没有错误,它将返回 nil。

func (*X请求) X是否为AJAX请求

func (r *X请求) X是否为AJAX请求() bool

IsAjaxRequest 检查并返回当前请求是否为 AJAX 请求。

func (*X请求) X是否为文件请求

func (r *X请求) X是否为文件请求() bool

IsFileRequest 检查并返回当前请求是否正在提供文件服务。

func (*X请求) X是否已退出

func (r *X请求) X是否已退出() bool

IsExited 检查并返回当前请求是否已退出。

func (*X请求) X绑定模板变量

func (r *X请求) X绑定模板变量(名称 string, 值 interface{})

Assign 将模板变量绑定到当前请求。

func (*X请求) X绑定模板变量Map

func (r *X请求) X绑定模板变量Map(Map值 模板类.Params)

Assigns 将多个模板变量绑定到当前请求。

func (*X请求) X解析URL到结构

func (r *X请求) X解析URL到结构(结构指针 interface{}) error

ParseQuery 类似于函数 Parse,但它只解析查询参数。

func (*X请求) X解析参数到结构

func (r *X请求) X解析参数到结构(结构指针 interface{}) error

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{}) error

ParseForm执行类似于函数Parse的功能,但只解析表单参数或主体内容。

func (*X请求) X设置上下文对象

func (r *X请求) X设置上下文对象(上下文 context.Context)

SetCtx 为当前请求设置自定义上下文。

func (*X请求) X设置上下文对象值

func (r *X请求) X设置上下文对象值(名称 interface{}, 值 interface{})

SetCtxVar 通过键值对设置自定义参数到上下文中。

func (*X请求) X设置查询参数

func (r *X请求) X设置查询参数(名称 string, 值 interface{})

SetQuery 用于设置自定义查询值,通过键值对的方式。

func (*X请求) X设置模板对象

func (r *X请求) X设置模板对象(模板对象 *模板类.View)

SetView 设置模板视图引擎对象,用于当前请求。

func (*X请求) X设置自定义参数

func (r *X请求) X设置自定义参数(名称 string, 值 interface{})

SetParam 设置自定义参数,使用键值对。

func (*X请求) X设置自定义参数Map

func (r *X请求) X设置自定义参数Map(参数 map[string]interface{})

SetParamMap 用于设置自定义参数,采用键值对形式的映射。

func (*X请求) X设置表单值

func (r *X请求) X设置表单值(名称 string, 值 interface{})

SetForm 设置自定义表单值,通过键值对的方式。

func (*X请求) X设置错误信息

func (r *X请求) X设置错误信息(错误 error)

SetError为当前请求设置自定义错误。

func (*X请求) X账号密码认证

func (r *X请求) X账号密码认证(账号, 密码 string, 可选提示 ...string) bool

BasicAuth 通过给定的用户名和密码启用http基本认证功能, 并请求客户端进行身份验证。如果认证成功则返回 true,否则(认证失败)返回 false。

func (*X请求) X退出Hook

func (r *X请求) X退出Hook()

ExitHook 结束当前及后续 HTTP HOOK 处理器的执行。

func (*X请求) X退出全部

func (r *X请求) X退出全部()

ExitAll 退出当前及后续HTTP处理器的执行。

func (*X请求) X退出当前

func (r *X请求) X退出当前()

Exit 中断当前HTTP处理器的执行。

func (*X请求) X重载请求参数

func (r *X请求) X重载请求参数()

ReloadParam 用于修改请求参数。 有时,我们希望通过中间件来修改请求参数,但直接修改 Request.Body 是无效的, 所以它会清除 Request 中已解析标志,以使参数重新解析。

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

func (item X路由处理函数) MarshalJSON() ([]byte, error)

MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。

type X路由处理器类型

type X路由处理器类型 string

HandlerType 是路由处理器的枚举类型。

type X路由解析

type X路由解析 struct {
	Handler *X路由处理函数          // 处理器信息。
	X路由值    map[string]string // Router values 从 URL.Path 解析得到。
}

HandlerItemParsed是从URL.Path中解析出的项目。

func (X路由解析) MarshalJSON

func (item X路由解析) MarshalJSON() ([]byte, error)

MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。

type X默认处理器响应

type X默认处理器响应 struct {
	Code    int         `json:"code"    dc:"Error code"`
	Message string      `json:"message" dc:"Error message"`
	Data    interface{} `json:"data"    dc:"Result data for certain request according API definition"`
}

DefaultHandlerResponse 是 HandlerResponse 接口的默认实现。

Directories

Path Synopsis
internal
response
Package response 提供了对 http.response 的封装。
Package response 提供了对 http.response 的封装。
swaggerui
Package swaggerui 提供了通过资源管理器打包的 Swagger UI 静态文件。
Package swaggerui 提供了通过资源管理器打包的 Swagger UI 静态文件。

Jump to

Keyboard shortcuts

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