فهرست منبع

refactor(transport):优化HTTP回复处理逻辑

- 统一使用 WrapReply 函数封装响应数据
- 修改 ReplyFunc 参数名为 data 以提高可读性
- 移除冗余的条件判断和重复的回复函数调用
- 简化 unary_handler 中的响应处理流程
lihf 3 روز پیش
والد
کامیت
61c6cba018
2فایلهای تغییر یافته به همراه10 افزوده شده و 15 حذف شده
  1. 1 6
      transport/http/handler/unary_handler.go
  2. 9 9
      transport/http/reply/reply.go

+ 1 - 6
transport/http/handler/unary_handler.go

@@ -40,11 +40,6 @@ func unaryHandler(srv any, method grpc.MethodDesc, option *middleware.Option) ht
 		if err != nil {
 			return err
 		}
-		f := reply.DefaultFunc(out)
-		if f != nil {
-			success := reply.GetReplyFunc()(out)
-			return ctx.Result(200, success)
-		}
-		return ctx.Result(200, out)
+		return ctx.Result(200, reply.WrapReply(out))
 	}
 }

+ 9 - 9
transport/http/reply/reply.go

@@ -6,25 +6,25 @@ type SuccessReply struct {
 	Data    interface{} `json:"data"`
 }
 
-type ReplyFunc func(req any) any
+type ReplyFunc func(data any) any
 
-var reply = DefaultFunc
+var wrapReplyFunc ReplyFunc = defaultFunc
 
-func DefaultFunc(out any) any {
+func defaultFunc(data any) any {
 	success := &SuccessReply{
 		Code: 0,
 	}
 
-	if out != nil {
-		success.Data = out
+	if data != nil {
+		success.Data = data
 	}
 	return success
 }
 
-func SetReplyFunc(f ReplyFunc) {
-	reply = f
+func WrapReply(data any) any {
+	return wrapReplyFunc(data)
 }
 
-func GetReplyFunc() ReplyFunc {
-	return reply
+func SetReplyFunc(f ReplyFunc) {
+	wrapReplyFunc = f
 }