Gin功能列表

126 阅读16分钟

文章首发于个人博客

gin版本v1.10.0

包函数

方法含义说明
BasicAuth创建一个HTTP基本认证(Basic HTTP Authorization)的中间件底层调用BasicAuthForRealm
BasicAuthForProxy创建一个HTTP代理基本认证(Basic HTTP Proxy - Authorization)的中间件
BasicAuthForRealm创建一个HTTP基本认证(Basic HTTP Authorization)的中间件
Bind创建一个用于将请求中的数据绑定到指定的接口对象上的中间件
CreateTestContext创建一个干净的Engine实例和一个与之关联的上下文对象用于测试
CreateTestContextOnly在已有的Engine实例基础上创建一个独立的上下文用于测试
CustomRecovery根据自定义的处理函数创建一个恢复中间件底层调用CustomRecoveryWithWriter
CustomRecoveryWithWriter创建一个自定义的恢复中间件
Default返回一个默认的Engine实例默认含LoggerRecovery两个中间件
Dir返回一个http.FileSystem接口的实现,该实现可被http.FileServer使用
DisableBindValidation关闭默认的验证器
DisableConsoleColor禁用控制台的颜色输出
EnableJsonDecoderDisallowUnknownFields开启JSON解码器的DisallowUnknownFields功能即遇到未知字段时就报错
EnableJsonDecoderUseNumber开启JSON解码器的UseNumber功能即将数字解码为json.Number类型,而不是float64,以在需要时精确地转换为整数或浮点数,从而避免精度丢失的问题
ErrorLogger创建一个能够处理任意类型的错误的中间件底层调用ErrorLoggerT
ErrorLoggerT创建一个能够处理指定类型的错误的中间件
ForceConsoleColor强制在控制台输出带有颜色的内容
IsDebugging判断当前框架是否处于调试模式
Logger使用默认配置来创建一个日志中间件底层调用LoggerWithConfig
LoggerWithConfig根据传入的配置来创建一个日志中间件
LoggerWithFormatter根据指定的格式来创建一个日志中间件底层调用LoggerWithConfig
LoggerWithWriter根据指定的输出目标创建一个日志中间件底层调用LoggerWithConfig
Mode返回当前Gin框架的运行模式debugreleasetest三种模式
New返回一个全新的、没有任何中间件的Engine实例
Recovery使用默认配置创建一个恢复中间件底层调用RecoveryWithWriter
RecoveryWithWriter根据指定输出目标创建一个恢复中间件底层调用CustomRecoveryWithWriter
SetMode设置gin框架的运行模式
WrapF将标准的http.HandlerFunc类型的处理函数包装成Gin框架的中间件
WrapH将标准的http.Handler类型的对象包装成Gin框架的中间件

IRouter接口

IRouter定义了所有的路由处理接口,包括单个路由和分组路由的处理接口。

方法含义说明
Any注册一个能匹配所有HTTP方法的路由
DELETE注册一个DELETE方法的路由
GET注册一个GET方法的路由
Group创建一个路由组,可以将所有具有共同中间件或相同路径前缀的路由添加到这个组中
HEAD注册一个HEAD方法的路由
Handle根据给定的路径和HTTP方法注册一个新的请求处理函数和中间件
Match注册一个能匹配指定HTTP方法的路由通常用于多个方法
OPTIONS注册一个OPTIONS方法的路由
PATCH注册一个PATCH方法的路由
POST注册一个POST方法的路由
PUT注册一个PUT方法的路由
Static从指定的文件系统根目录提供静态文件服务底层调用StaticFS
StaticFS从自定义的http.FileSystem接口实现提供静态文件服务
StaticFile注册一个单独的路由,以提供本地文件系统中的单个文件的服务favicon.ico
StaticFileFS从自定义的http.FileSystem接口实现提供单个文件的服务
Use为路由组添加中间件

RouterGroup

RouterGroup实现了IRouter接口。

方法含义说明
BasePath返回路由组的基础路径

Engine

Engine是框架的实例(基于RouterGroup),包含了路由多路复用器、中间件和配置设置。

方法含义说明
Delims用于设置模板的左右分隔符
HandleContext用于重新处理一个已被重写的上下文可能会陷入循环处理的情况,慎用
Handler
LoadHTMLFiles加载一个HTML文件切片,并将加载结果与HTML渲染器关联起来
LoadHTMLGlob通过glob模式来识别并加载HTML文件,然后将加载结果与HTML渲染器关联起来
NoMethod设置当Engine.HandleMethodNotAllowed=true时被调用的处理函数当出现方法不允许的情况时,这些处理函数会被调用,从而可以返回自定义的错误信息、页面或执行其他逻辑
NoRoute为未匹配到路由的情况添加处理函数
Routes返回一个已注册路由的切片
Run根据指定的网络地址启动http服务
RunFd根据指定的文件描述符启动http服务底层调用RunListener
RunListener根据已有的net.Listener接口启动http服务
RunTLS根据指定的网络地址、证书等启动https服务
RunUnix根据指定的Unix套接字文件启动http服务
SecureJsonPrefix用于设置c.SecureJSON方法中所使用的安全JSON前缀在调用c.SecureJSON返回JSON数组时生效
ServeHTTP
SetFuncMap用于设置template.FuncMap所使用的函数映射
SetHTMLTemplate用于将一个模板与HTML渲染器关联起来
SetTrustedProxies用于设置一个受信任的网络源列表
With使用所提供的选项创建并返回一个新的Engine实例

Context

方法含义说明
Abort中断请求的后续处理链,但不影响当前正在执行的处理
AbortWithError中断请求的后续处理链,并将错误信息记录到c.Errors切片中内部调用AbortWithStatusError
AbortWithStatus中断请求的后续处理链,并在响应头中返回指定的HTTP状态码内部调用StatusAbort
AbortWithStatusJSON中断请求的后续处理链,并在响应头中返回指定的HTTP状态码,响应体中返回指定的JSON内部调用AbortJSON
AddParam将参数添加到Gin的上下文对象中;另一个重要作用是为了端到端测试
AsciiJSON将一个结构体序列化为JSON格式(其中的Unicode字符转换为ASCII字符)响应
Bind根据请求的方法和Content-Type头信息自动选择合适的绑定引擎,将请求体中的数据解析并绑定到指定的结构体指针中内部调用MustBindWith
BindHeader使用binding.Header绑定请求的数据内部调用MustBindWith
BindJSON使用binding.JSON绑定请求的数据内部调用MustBindWith
BindQuery使用binding.Query绑定请求的数据内部调用MustBindWith
BindTOML使用binding.TOML绑定请求的数据内部调用MustBindWith
BindUri将请求的URI(统一资源标识符)中的参数绑定到传入的结构体指针指向的结构体上内部调用ShouldBindUri
BindWith使用指定的绑定引擎将请求的数据绑定到传入的结构体指针指向的结构体上已弃用,建议使用MustBindWithShouldBindWith
BindXML使用binding.XML绑定请求的数据内部调用MustBindWith
BindYAML使用binding.YAML绑定请求的数据内部调用MustBindWith
ClientIP通过一种尽力而为的算法来获取发起请求的真实客户端IP地址
ContentType返回请求中Content-Type请求头的值
Cookie从请求中获取指定名称的Cookie返回的Cookie值是经过反编码处理的,且同名的Cookie只会返回其中一个
Copy返回当前上下文的一个副本需要将上下文传递给一个新的goroutine时必须使用
Data将指定的数据写入响应的主体流中,同时更新响应的状态码内部调用Render
DataFromReader将指定的io.Reader中的数据写入到响应的主体流中,同时更新响应的状态码内部调用Render
Deadline返回该上下文的截止时间
DefaultPostFormPOST请求的application/x-www-form-urlencoded格式表单或multipart/form-data格式表单中获取指定键对应的值,若不存在则使用默认值内部使用GetPostForm
DefaultQuery从请求的URL查询字符串中获取指定键对应的值,若不存在则使用默认值内部使用GetQuery
Done返回一个只读通道,当上下文被取消(比如调用c.CancelFunc)或者超时(使用c.WithTimeout等方法)时,该通道会被关闭。可以通过监听这个通道来感知上下文的状态变化,从而做出相应的处理
Err用于获取上下文被取消或超时时的错误信息
Error将错误信息附加到当前的上下文(Context)中的错误列表里,以便后续统一处理传入nil错误会导致panic
File将指定的文件以高效的方式写入响应的主体流中
FileAttachment将指定的文件以高效的方式写入响应的主体流中,并设置响应头中的Content-Disposition字段
FileFromFS从指定的http.FileSystem中读取文件,并将文件内容以高效的方式写入响应的主体流中
FormFilePOST请求的表单数据(通常是multipart/form-data格式)中获取指定表单键对应的第一个文件
FullPath返回当前请求所匹配到的路由的完整路径
Get从上下文中获取指定键对应的值,同时返回该键是否存在
GetBool从上下文中获取指定键对应的值,并将其转换为bool类型返回内部调用Get
GetDuration从上下文中获取指定键对应的值,并将其转换为duration类型返回内部调用Get
GetFloat64从上下文中获取指定键对应的值,并将其转换为float64类型返回内部调用Get
GetHeader从请求头中获取指定键对应的值
GetInt从上下文中获取指定键对应的值,并将其转换为int类型返回内部调用Get
GetInt64从上下文中获取指定键对应的值,并将其转换为int64类型返回内部调用Get
GetPostFormPOST请求的application/x-www-form-urlencoded格式表单或multipart/form-data格式表单中获取指定键对应的值内部调用GetPostFormArray
GetPostFormArrayPOST请求的application/x-www-form-urlencoded格式表单或multipart/form-data格式表单中获取指定键对应的所有值,并以字符串切片的形式返回;同时返回该键是否至少存在一个与之对应的值
GetPostFormMapPOST请求的表单数据里获取指定键对应的map类型的值,并返回该键是否存在
GetQuery从请求的URL查询字符串中获取指定键对应的值,并返回该键是否存在内部调用GetQueryArray
GetQueryArray从请求的URL查询字符串中获取指定键对应的所有值,并以字符串切片的形式返回;同时返回该键是否至少存在一个与之对应的值
GetQueryMap从请求的URL查询字符串里获取指定键对应的map类型的值,并返回该键是否存在
GetRawData获取请求体中的原始数据流数据
GetString从上下文中获取指定键对应的值,并将其转换为string类型返回内部调用Get
GetStringMap从上下文中获取指定键对应的值,并将其转换为map[string]any类型返回内部调用Get
GetStringMapString从上下文中获取指定键对应的值,并将其转换为map[string]string类型返回内部调用Get
GetStringMapStringSlice从上下文中获取指定键对应的值,并将其转换为map[string][]string类型返回内部调用Get
GetStringSlice从上下文中获取指定键对应的值,并将其转换为[]string类型返回内部调用Get
GetTime从上下文中获取指定键对应的值,并将其转换为time.Time类型返回内部调用Get
GetUint从上下文中获取指定键对应的值,并将其转换为uint类型返回内部调用Get
GetUint64从上下文中获取指定键对应的值,并将其转换为uint64类型返回内部调用Get
HTML渲染指定文件名的HTTP模板,同时更新响应状态码
Handler返回主处理器,即最后一个处理函数
HandlerName返回主处理器的名称名称会包含包名
HandlerNames返回当前上下文中所有已注册处理器的名称列表
Header设置响应头信息,若值为空字符串则删除对应项
IndentedJSON将给定的结构体序列化为格式化后的JSON(带有缩进和换行符)写入响应体比较消耗资源和带宽
IsAborted判断当前的上下文是否已经被中止
IsWebsocket判断客户端发送的请求是否是WebSocket握手
JSON将给定的结构体序列化为JSON写入响应体响应的Content-Typeapplication/json
JSONP将给定的结构体序列化为JSON格式,并在响应体中添加填充以实现从与客户端不同域名的服务器请求数据响应的Content-Typeapplication/javascript
MultipartForm获取multipart/form-data类型的表单请求的解析结果,包含了表单中的所有字段和上传的文件信息
MustBindWith使用指定的绑定引擎将请求的数据绑定到传入的结构体指针上内部调用ShouldBindWith
MustGet从上下文中获取指定键对应的值,若不存在则触发panic内部调用Get
Negotiate根据客户端请求头中Accept字段指定的可接受格式,调用不同的渲染器生成合适的响应内容内部用到了NegotiateFormat
NegotiateFormat从客户端请求头的Accept字段里,结合服务器所支持的格式,协商出一个可接受的响应格式并返回
Next用于中间件中,让当前处理流程继续执行后续的中间件和最终的处理函数,当后续的处理完成后,控制权会返回到调用Next方法的位置,继续执行该中间件剩余的代码专为中间件设计,不应在普通的路由处理函数中使用
ParamURL路径中提取指定参数的值
PostFormPOST请求的application/x-www-form-urlencoded格式表单或multipart/form-data格式表单中获取指定键对应的值内部调用GetPostForm
PostFormArrayPOST请求的application/x-www-form-urlencoded格式表单或multipart/form-data格式表单中获取指定键对应的所有值内部调用GetPostFormArray
PostFormMapPOST请求的表单数据中获取指定表单键所对应的map[string]string类型的值内部调用GetPostFormMap
ProtoBuf将给定的结构体序列化为ProtoBuf写入响应体
PureJSON将给定的结构体序列化为JSON写入响应体,但会直接保留原始的特殊HTML字符
Query从请求的URL查询字符串中获取指定键对应的值,若不存在返回空字符串内部调用GetQuery
QueryArray从请求的URL查询字符串中获取指定键对应的所有值,并以字符串切片的形式返回内部调用GetQueryArray
QueryMap从请求的URL查询字符串中获取指定键对应的map[string]string内部调用GetQuery
Redirect将客户端的请求重定向到指定的位置
RemoteIP从请求的Request.RemoteAddr字段中解析出客户端的IP地址
Render设置响应头信息,然后调用传入的渲染器的Render方法来将数据渲染到响应体中
SSEvent向响应的主体流中写入一个服务器发送事件SSE单向通信,即只能服务器向客户端推送数据
SaveUploadedFile将客户端通过表单上传的文件保存到服务器指定的目标路径
SecureJSON将给定的结构体序列化为JSON写入响应体,若数据为数组则在前面添加安全前缀默认前缀为while(1),
Set在当前的上下文中存储一个新的键值对常用于在不同中间件和处理函数之间方便地共享数据
SetAccepted设置请求头中的Accept字段的数据
SetCookie在响应头中添加Set-Cookie字段,从而在客户端浏览器中设置Cookie
SetSameSite设置CookieSameSite属性
ShouldBind依据请求的方法和Content-Type头,自动挑选合适的绑定引擎,把请求体中的数据绑定到指定的结构体指针上绑定失败不会自动设置响应状态码或终止请求处理。内部调用ShouldBindWith
ShouldBindBodyWith使用指定的绑定引擎将请求中的数据绑定到传入的结构体指针上,但会将请求体的数据存储在上下文中
ShouldBindBodyWithJSON使用binding.JSON绑定引擎将请求中的数据绑定到传入的结构体指针上,并将请求体的数据存储在上下文中内部调用ShouldBindBodyWith
ShouldBindBodyWithTOML使用binding.TOML绑定引擎将请求中的数据绑定到传入的结构体指针上,并将请求体的数据存储在上下文中内部调用ShouldBindBodyWith
ShouldBindBodyWithXML使用binding.XML绑定引擎将请求中的数据绑定到传入的结构体指针上,并将请求体的数据存储在上下文中内部调用ShouldBindBodyWith
ShouldBindBodyWithYAML使用binding.YAML绑定引擎将请求中的数据绑定到传入的结构体指针上,并将请求体的数据存储在上下文中内部调用ShouldBindBodyWith
ShouldBindHeader使用binding.Header绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
ShouldBindJSON使用binding.JSON绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
ShouldBindQuery使用binding.Query绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
ShouldBindTOML使用binding.TOML绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
ShouldBindUri使用指定的绑定引擎将请求的URI中的参数绑定到传入的结构体指针所指向的结构体实例上
ShouldBindWith使用指定的绑定引擎将请求中的数据绑定到传入的结构体指针上
ShouldBindXML使用binding.XML绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
ShouldBindYAML使用binding.YAML绑定引擎将请求中的数据绑定到传入的结构体指针上内部调用ShouldBindWith
Status设置响应的状态码
Stream用于发送流式响应
String将给定的字符串写入响应体中
TOML将给定的结构体序列化为TOML写入响应体
Value从当前的Context中获取与指定键关联的值内部调用Get
XML将给定的结构体序列化为XML写入响应体
YAML将给定的结构体序列化为YAML写入响应体