优化方法的使用
This commit is contained in:
+43
-11
@@ -6,11 +6,15 @@ import (
|
||||
)
|
||||
|
||||
type options struct {
|
||||
logger Logger
|
||||
ignoreLog bool
|
||||
traceId string
|
||||
defaultSuccessCode int
|
||||
defaultErrorCode int
|
||||
logger Logger
|
||||
ignoreLog bool
|
||||
|
||||
traceFunc func(ctx context.Context) string
|
||||
|
||||
defaultSuccessCode int
|
||||
defaultErrorCode int
|
||||
defaultSuccessMessage string
|
||||
successMsgSet bool
|
||||
|
||||
code int
|
||||
data any
|
||||
@@ -34,9 +38,20 @@ func InitOptions(ops ...Option) {
|
||||
|
||||
func defaultOptions() *options {
|
||||
return &options{
|
||||
logger: &defaultLogger{},
|
||||
defaultSuccessCode: 200,
|
||||
defaultErrorCode: 400,
|
||||
logger: &defaultLogger{},
|
||||
|
||||
traceFunc: func(ctx context.Context) string {
|
||||
val := ctx.Value("trace_id")
|
||||
v, ok := val.(string)
|
||||
if ok {
|
||||
return v
|
||||
}
|
||||
return ""
|
||||
},
|
||||
|
||||
defaultSuccessCode: 200,
|
||||
defaultErrorCode: 400,
|
||||
defaultSuccessMessage: "请求成功",
|
||||
|
||||
code: 200,
|
||||
data: nil, // 默认为nil
|
||||
@@ -77,6 +92,15 @@ func SetDefaultSuccessCode(code int) Option {
|
||||
}
|
||||
}
|
||||
|
||||
// 设置默认的成功文案(多语言场景见 SuccessMessageCtx)
|
||||
// 传回内置默认文案 "请求成功" 即恢复为"未显式配置",交还给多语言解析
|
||||
func SetDefaultSuccessMessage(message string) Option {
|
||||
return func(o *options) {
|
||||
o.defaultSuccessMessage = message
|
||||
o.successMsgSet = message != defaultSuccessMessage
|
||||
}
|
||||
}
|
||||
|
||||
// 设置默认的失败code
|
||||
func SetDefaultErrorCode(code int) Option {
|
||||
return func(o *options) {
|
||||
@@ -98,10 +122,18 @@ func SetLogger(logger Logger) Option {
|
||||
}
|
||||
}
|
||||
|
||||
// 是否需要响应trace_id,&ctx里面的字段
|
||||
func SetTraceId(traceId string) Option {
|
||||
func SetTraceFunc(f func(ctx context.Context) string) Option {
|
||||
return func(o *options) {
|
||||
o.traceId = traceId
|
||||
o.traceFunc = f
|
||||
}
|
||||
}
|
||||
|
||||
// 设置trace_id的ctx key(默认已用标准key CtxTraceIDKey,一般无需调用)
|
||||
func SetTraceKey(traceKey any) Option {
|
||||
return func(o *options) {
|
||||
o.traceFunc = func(ctx context.Context) string {
|
||||
return ctx.Value(traceKey).(string)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user