2024-07-20 23:39:25 +08:00
|
|
|
|
// Package router ...
|
|
|
|
|
//
|
|
|
|
|
// Description : router ...
|
|
|
|
|
//
|
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
|
//
|
|
|
|
|
// Date : 2024-07-20 22:57
|
|
|
|
|
package router
|
|
|
|
|
|
2024-07-21 18:49:44 +08:00
|
|
|
|
import "reflect"
|
|
|
|
|
|
2024-07-20 23:39:25 +08:00
|
|
|
|
const (
|
2025-02-07 17:19:25 +08:00
|
|
|
|
PrefixFuncName = "RouterPrefix" // 路由前缀函数名称
|
|
|
|
|
MiddlewareFuncName = "RouterMiddleware" // 路由中间件函数名称
|
|
|
|
|
GinContextType = "*gin.Context" // gin context 类型名称
|
|
|
|
|
ErrorType = "error" // error类型
|
|
|
|
|
ErrorInterfaceFuncName = "Error" // error接口需要实现的方法名称
|
2024-07-20 23:39:25 +08:00
|
|
|
|
)
|
2024-07-21 16:51:02 +08:00
|
|
|
|
|
|
|
|
|
const (
|
2025-02-07 17:19:25 +08:00
|
|
|
|
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
|
2024-07-21 16:51:02 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// UriConfig 接口配置
|
|
|
|
|
//
|
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
|
//
|
|
|
|
|
// Date : 15:41 2024/7/21
|
|
|
|
|
type UriConfig struct {
|
2025-02-07 16:57:15 +08:00
|
|
|
|
Path string `json:"path"` // 接口路由, 必须配置
|
|
|
|
|
RequestMethod string `json:"request_method"` // 接口请求方法, 必须配置
|
|
|
|
|
TagList []string `json:"tag_list"` // 接口分组
|
|
|
|
|
Desc string `json:"desc"` // 接口描述
|
2025-02-07 17:19:25 +08:00
|
|
|
|
OutputStrict bool `json:"output_strict"` // 接口是否为严格模式 : 不配置,可返回任意类型, 配置, 必须返回结构体或者map
|
2025-02-07 16:57:15 +08:00
|
|
|
|
FormDataType reflect.Type `json:"-"` // 表单数据类型
|
2025-02-14 22:30:56 +08:00
|
|
|
|
ResultDataType reflect.Type `json:"-"` // 返回值数据类型
|
2025-02-07 16:57:15 +08:00
|
|
|
|
ApiStructValue reflect.Value `json:"-"` // 逻辑函数所属结构体取值
|
|
|
|
|
ApiLogicFunc reflect.Method `json:"-"` // 自定义的接口逻辑
|
2024-07-21 16:51:02 +08:00
|
|
|
|
}
|
2025-01-27 19:46:34 +08:00
|
|
|
|
|
|
|
|
|
// UriParam 接口参数配置
|
|
|
|
|
//
|
|
|
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
|
|
|
//
|
|
|
|
|
// Date : 15:40 2025/1/27
|
|
|
|
|
type UriParam struct {
|
2025-02-07 16:10:33 +08:00
|
|
|
|
Field string `json:"field"` // 结构体字段
|
2025-01-27 19:46:34 +08:00
|
|
|
|
Name string `json:"name"` // 参数名称
|
|
|
|
|
Type string `json:"type"` // 参数类型
|
2025-02-07 16:10:33 +08:00
|
|
|
|
Validate string `json:"validate"` // 验证规则: validator/v10 库
|
|
|
|
|
ErrorMsg string `json:"error_msg"` // 验证失败的错误信息
|
2025-01-27 19:46:34 +08:00
|
|
|
|
DisableAutoType bool `json:"disable_auto_type"` // 禁用自动类型转换
|
|
|
|
|
Sort string `json:"sort"` // 参数读取顺序: 默认 POST : body > query > path GET : query > path > body
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
FieldNameMeta = "Meta" // 元信息字段
|
|
|
|
|
)
|