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" // 元信息字段
 | ||
| )
 |