xginplus

package
v0.3.32 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2024 License: BSD-3-Clause-Clear Imports: 8 Imported by: 0

Documentation

Overview

Gin组件个人增强部分

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Convert

func Convert(f func(*Context) *Response, fc ...ContextOptionFunc) gin.HandlerFunc

结构转换,将controller返回的数据转换成gin框架所支持的输出形式 传入参数f,其格式为:func(*xginplus.Context) *xginplus.Response

f	处理该方法的函数标识
fc	针对此分组下的追加配置项

func ConvertMap

func ConvertMap(r *gin.RouterGroup, mp map[string]func(*Context) *Response, fc ...ContextOptionFunc)

直接推送路由信息到router表中 支持使用gin框架支持的路由通配符等,但是不建议使用太多,因为此处不支持使用后缀方法进行追加效验

r		gin的原生路由分组,用于插入配置的路由信息
mp		待推入的路由下标
mp.key	路由,使用:分割,第一个参数为请求方式,第二个参数为路由规则。
		目前支持get(默认)/post/options/head/patch/delete/put/any
		转化示例如:
			get:/index => r.GET("/index")
			get:/index/:abc => r.GET("/index/:abc")
			post:info/:name => r.POST("/info/:name")
mp.val	处理函数
fc		针对此分组下的追加配置项

func SetDefault

func SetDefault(opt ...OptionFunc)

设置默认配置项

opt	配置项选项,WithXXX选项

Types

type Config

type Config struct {
	SuccessData   func(c any) (int, any)                         // 成功数据结构返回
	SuccessPage   func(count int64, c any, ext gin.H) (int, any) // 成功的列表页返回的数据
	ErrorData     func(err error) (int, any)                     // 失败数据结构返回
	ErrorDataCode func(code int, err error) (int, any)           // 失败数据结构返回
	Jitter        bool                                           // 是否启用网络抖动过滤
}

插件配置项

type Context

type Context struct {
	Jitter     bool          // 是否启用网络抖动过滤
	JitterTime time.Duration // 缓存时间,默认1秒(此值会影响网络抖动的缓存时间)
	*gin.Context
}

封装 gin.Context 结构体,用于提供增强功能

func To

func To(c *gin.Context) *Context

将 gin 的 Context 结构体转化为本框架的 Context 结构体

func (*Context) Bind

func (c *Context) Bind(b any) error

获取请求中的参数

b	待获取的参数结构体信息

func (*Context) Download

func (c *Context) Download(inf *DS) *Response

下载文件

inf	待下载的文件结构信息

func (*Context) Error

func (c *Context) Error(err error) *Response

基础错误信息值返回

err	错误信息

func (*Context) ErrorC

func (c *Context) ErrorC(code int, err error) *Response

基础错误信息值返回

code	自定义错误码
err		错误字符串

func (*Context) ErrorCf

func (c *Context) ErrorCf(code int, format string, a ...any) *Response

字符串基础错误信息值返回,等同于 c.Error(fmt.Errorf(xxx,xxx...))

code	自定义错误码
format	格式化字符串的指定格式
a		待追入的参数

func (*Context) Errorf

func (c *Context) Errorf(format string, a ...any) *Response

字符串基础错误信息值返回,等同于 c.Error(fmt.Errorf(xxx,xxx...))

format	格式化字符串的指定格式
a		待追入的参数

func (*Context) Limit

func (c *Context) Limit() int

获取每页查询条数

func (*Context) Offset

func (c *Context) Offset() int

获取跳过条数

func (*Context) Page

func (c *Context) Page() int

获取当前页码

func (*Context) Success

func (c *Context) Success(data gin.H) *Response

返回成功数据

data	待返回的数据结构

func (*Context) SuccessAny

func (c *Context) SuccessAny(data any) *Response

返回成功数据

data	待返回的数据结构

func (*Context) SuccessEmpty

func (c *Context) SuccessEmpty() *Response

返回成功数据 空结构 等同于 c.Success(gin.H{})

type ContextOptionFunc

type ContextOptionFunc func(c *Context)

func WithContextJitter

func WithContextJitter(jit bool) ContextOptionFunc

设置当前接口启用/禁用抖动过滤

jit	是否启用抖动过滤

func WithContextJitterTime

func WithContextJitterTime(ts time.Duration) ContextOptionFunc

设置缓存时间(默认缓存1秒) 此设置值会影响网络抖动的时间间隔 原始配置:1s内同样的结果只处理一次 修改时长后,会变成 指定时长内同样的请求结果只会处理一次 PS: 此处的缓存命中方式涉及到:请求方式、请求路径、客户端IP、客户端UA、客户端ContentType、客户端发送的POST原始参数

ts	指定时长

type DS

type DS struct {
	UTF8BOM     bool   // 是否写入UTF-8的BOM头文件
	Name        string // 下载文件名
	Body        []byte // 下载内容流
	ContentType string // 文件类型,默认为application/octet-stream
}

下载描述结构体

type OptionFunc

type OptionFunc func(c *Config)

func WithErrorData

func WithErrorData(f func(err error) (int, any)) OptionFunc

错误数据格式化

f	处理错误数据的函数信息

func WithJitter

func WithJitter(jit bool) OptionFunc

设置全接口启用/禁用抖动过滤 网络抖动的含义为同一秒内重复的请求 此处的抖动过滤的方案为: 1. 设置第一个请求的请求锁 2. 等待第一个请求的结果(若此期间进来第二个请求,第二个请求将会等待) 3. 第一个请求结果出来后,返回结果,并将结果进行缓存 4. 第n个请求进来后,直接读取缓存并返回

jit	是否启用抖动过滤

func WithSuccessData

func WithSuccessData(f func(c any) (int, any)) OptionFunc

一般成功数据处理结构

f	一般成功的处理函数

func WithSuccessPage

func WithSuccessPage(f func(count int64, c any, ext gin.H) (int, any)) OptionFunc

分页成功数据处理结构

f	一般成功的处理函数

type Response

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

返回给前端的数据信息

func (*Response) GetCodeData

func (c *Response) GetCodeData() (int, any)

获取返回的Code代码和数据信息

func (*Response) GetData

func (c *Response) GetData() any

获取返回的数据信息

Directories

Path Synopsis
长连接相关依赖支持 继承外部 xginplus 组件
长连接相关依赖支持 继承外部 xginplus 组件

Jump to

Keyboard shortcuts

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