70 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package router ...
 | 
						||
//
 | 
						||
// Description : router ...
 | 
						||
//
 | 
						||
// Author : go_developer@163.com<白茶清欢>
 | 
						||
//
 | 
						||
// Date : 2024-07-20 22:57
 | 
						||
package router
 | 
						||
 | 
						||
import (
 | 
						||
	"reflect"
 | 
						||
)
 | 
						||
 | 
						||
const (
 | 
						||
	PrefixFuncName         = "RouterPrefix"     // 路由前缀函数名称
 | 
						||
	MiddlewareFuncName     = "RouterMiddleware" // 路由中间件函数名称
 | 
						||
	GinContextType         = "*gin.Context"     // gin context 类型名称
 | 
						||
	CustomContextType      = "*define.Context"  // custom context 类型名称
 | 
						||
	ErrorType              = "error"            // error类型
 | 
						||
	ErrorInterfaceFuncName = "Error"            // error接口需要实现的方法名称
 | 
						||
)
 | 
						||
 | 
						||
const (
 | 
						||
	TagNamePath         = "path"          // 接口的请求路径
 | 
						||
	TagNameMethod       = "method"        // 接口的请求方法
 | 
						||
	TagNameUriTag       = "tag"           // 接口的tag
 | 
						||
	TagNameDesc         = "desc"          // 接口的描述
 | 
						||
	TagNameOutputStrict = "output_strict" // 接口数据是否为严格模式 : 严格模式, 响应数据必须是结构体/map,非严格模式返回任意值
 | 
						||
	TagNameBinding      = "binding"       // gin 内置的验证规则tag
 | 
						||
	TagNameValidate     = "validate"      // validator v10 默认的验证规则tag
 | 
						||
	TagNameErrMsg       = "err"           // 验证失败错误信息tag
 | 
						||
)
 | 
						||
 | 
						||
// UriConfig 接口配置
 | 
						||
//
 | 
						||
// Author : go_developer@163.com<白茶清欢>
 | 
						||
//
 | 
						||
// Date : 15:41 2024/7/21
 | 
						||
type UriConfig struct {
 | 
						||
	Path           string         `json:"path"`           // 接口路由, 必须配置
 | 
						||
	RequestMethod  string         `json:"request_method"` // 接口请求方法, 必须配置
 | 
						||
	TagList        []string       `json:"tag_list"`       // 接口分组
 | 
						||
	Desc           string         `json:"desc"`           // 接口描述
 | 
						||
	OutputStrict   bool           `json:"output_strict"`  // 接口是否为严格模式 : 不配置,可返回任意类型, 配置, 必须返回结构体或者map
 | 
						||
	CtxType        string         `json:"ctx_type"`       // ctx参数类型
 | 
						||
	FormDataType   reflect.Type   `json:"-"`              // 表单数据类型
 | 
						||
	ResultDataType reflect.Type   `json:"-"`              // 返回值数据类型
 | 
						||
	ApiStructValue reflect.Value  `json:"-"`              // 逻辑函数所属结构体取值
 | 
						||
	ApiLogicFunc   reflect.Method `json:"-"`              // 自定义的接口逻辑
 | 
						||
}
 | 
						||
 | 
						||
// UriParam 接口参数配置
 | 
						||
//
 | 
						||
// Author : go_developer@163.com<白茶清欢>
 | 
						||
//
 | 
						||
// Date : 15:40 2025/1/27
 | 
						||
type UriParam struct {
 | 
						||
	Field           string `json:"field"`             // 结构体字段
 | 
						||
	Name            string `json:"name"`              // 参数名称
 | 
						||
	Type            string `json:"type"`              // 参数类型
 | 
						||
	Validate        string `json:"validate"`          // 验证规则: validator/v10 库
 | 
						||
	ErrorMsg        string `json:"error_msg"`         // 验证失败的错误信息
 | 
						||
	DisableAutoType bool   `json:"disable_auto_type"` // 禁用自动类型转换
 | 
						||
	Sort            string `json:"sort"`              // 参数读取顺序: 默认 POST : body > query > path GET : query > path > body
 | 
						||
}
 | 
						||
 | 
						||
const (
 | 
						||
	FieldNameMeta = "Meta" // 元信息字段
 | 
						||
)
 |