[feat] 新增 RouteParam 接口
This commit is contained in:
parent
a3eaa24141
commit
64555b3678
5
errno.go
5
errno.go
@ -44,6 +44,9 @@ var (
|
||||
ErrFileUpload = &Errno{Code: 10009, Msg: "文件上传错误"}
|
||||
ErrFileNotFound = &Errno{Code: 10010, Msg: "文件不存在"}
|
||||
ErrConfigureNotFound = &Errno{Code: 10011, Msg: "配置不存在"}
|
||||
ErrConfigureInvalid = &Errno{Code: 10012, Msg: "配置参数无效"}
|
||||
ErrParamRequired = &Errno{Code: 10013, Msg: "参数不存在"}
|
||||
ErrParamInvalid = &Errno{Code: 10014, Msg: "参数无效"}
|
||||
|
||||
// service 错误
|
||||
ErrServiceDecode = &Errno{Code: 10101, Msg: "解析 base62param 错误"}
|
||||
@ -97,6 +100,8 @@ var (
|
||||
ErrCaptchaExpired = &Errno{Code: 20604, Msg: "验证码已过期"}
|
||||
ErrCaptchaSend = &Errno{Code: 20605, Msg: "验证码发送错误"}
|
||||
ErrCaptchaInterval = &Errno{Code: 20606, Msg: "验证码获取失败, 请稍后再试"}
|
||||
|
||||
//
|
||||
)
|
||||
|
||||
// 使用 错误码 和 error 创建新的 错误
|
||||
|
43
routing.go
43
routing.go
@ -7,13 +7,23 @@ import (
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
type RouteMethod string
|
||||
type RouteCategory string
|
||||
type RouteService string
|
||||
type RouteParamType string
|
||||
type RouteParamCategory string
|
||||
|
||||
type RouteCtx struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
const (
|
||||
RouteMethod_GET RouteMethod = "GET"
|
||||
RouteMethod_POST RouteMethod = "POST"
|
||||
RouteMethod_PUT RouteMethod = "PUT"
|
||||
RouteMethod_DELETE RouteMethod = "DELETE"
|
||||
)
|
||||
|
||||
const (
|
||||
RouteCategory_WS RouteCategory = "ws"
|
||||
RouteCategory_GRPC RouteCategory = "grpc"
|
||||
@ -45,10 +55,31 @@ const (
|
||||
RouteService_LIST_OPERATIONS_ACCESS RouteService = "list-operations-access"
|
||||
)
|
||||
|
||||
const (
|
||||
RouteParam_STRING RouteParamType = "string"
|
||||
RouteParam_BOOL RouteParamType = "bool"
|
||||
RouteParam_NUMBER RouteParamType = "number"
|
||||
RouteParam_INTEGER RouteParamType = "integer"
|
||||
RouteParam_FLOAT RouteParamType = "float"
|
||||
RouteParam_JSON RouteParamType = "json"
|
||||
RouteParam_ARRAY RouteParamType = "array"
|
||||
RouteParam_ANY RouteParamType = "any"
|
||||
)
|
||||
|
||||
const (
|
||||
RouteParamCategory_ROUTER RouteParamCategory = "router"
|
||||
RouteParamCategory_HEADER RouteParamCategory = "header"
|
||||
RouteParamCategory_PARAM RouteParamCategory = "param"
|
||||
)
|
||||
|
||||
func (k RouteCtx) String() string {
|
||||
return k.Name
|
||||
}
|
||||
|
||||
type RouteMiddleware interface {
|
||||
HttpMiddleware(r Route) func(next http.Handler) http.Handler
|
||||
}
|
||||
|
||||
type Router interface {
|
||||
Call(r *http.Request, code string, params map[string]any, category ...RouteCategory) (HttpResponse, error)
|
||||
Get(uuid string, category ...RouteCategory) (Route, bool)
|
||||
@ -57,12 +88,14 @@ type Router interface {
|
||||
}
|
||||
|
||||
type Route interface {
|
||||
RouteMiddleware
|
||||
|
||||
GetUuid() string
|
||||
GetCode() string
|
||||
GetPrimaryKey() string
|
||||
GetUri() string
|
||||
GetUris() []string
|
||||
GetParamValues(*http.Request) GlobalParams
|
||||
GetParamValues(*http.Request, ...RouteParam) (GlobalParams, error)
|
||||
GetResource() Resource
|
||||
GetCategory() RouteCategory
|
||||
GetService() RouteService
|
||||
@ -70,8 +103,12 @@ type Route interface {
|
||||
MakeRequest(r *http.Request, params map[string]any) (*http.Request, error)
|
||||
}
|
||||
|
||||
type RouteMiddleware interface {
|
||||
HttpMiddleware(r Route) func(next http.Handler) http.Handler
|
||||
type RouteParam interface {
|
||||
GetCode() string
|
||||
GetType() RouteParamType
|
||||
GetCategory() RouteParamCategory
|
||||
IsRequired() bool
|
||||
InjectValueToGlobalParams(*http.Request, GlobalParams) error
|
||||
}
|
||||
|
||||
type WsClientGroup string
|
||||
|
Loading…
Reference in New Issue
Block a user