Browse Source

refactor(config): 重构配置模块数据处理方式

- 移除对 JSON 和 protobuf 相关库的依赖
- 使用 yaml.Marshal 和 yaml.Unmarshal 替代自定义的 marshalJSON 和 unmarshalJSON 函数
- 简化代码结构,提高可维护性
lihf 3 months ago
parent
commit
7ca7eb07f0
2 changed files with 3 additions and 20 deletions
  1. 2 19
      config/init.go
  2. 1 1
      go.mod

+ 2 - 19
config/init.go

@@ -1,7 +1,6 @@
 package config
 package config
 
 
 import (
 import (
-	"encoding/json"
 	"errors"
 	"errors"
 	"fmt"
 	"fmt"
 
 
@@ -9,8 +8,6 @@ import (
 	"git.ikuban.com/server/yaml"
 	"git.ikuban.com/server/yaml"
 	"github.com/elliotchance/orderedmap/v3"
 	"github.com/elliotchance/orderedmap/v3"
 	"github.com/go-kratos/kratos/v2/config"
 	"github.com/go-kratos/kratos/v2/config"
-	"google.golang.org/protobuf/encoding/protojson"
-	"google.golang.org/protobuf/proto"
 )
 )
 
 
 func Init(sources []Source, bc any) error {
 func Init(sources []Source, bc any) error {
@@ -67,12 +64,12 @@ func Init(sources []Source, bc any) error {
 				}
 				}
 			}
 			}
 
 
-			b, err := marshalJSON(merged)
+			b, err := yaml.Marshal(merged)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}
 
 
-			err = unmarshalJSON(b, bc)
+			err = yaml.Unmarshal(b, bc)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}
@@ -87,20 +84,6 @@ func Init(sources []Source, bc any) error {
 	return nil
 	return nil
 }
 }
 
 
-func marshalJSON(v interface{}) ([]byte, error) {
-	if m, ok := v.(proto.Message); ok {
-		return protojson.MarshalOptions{EmitUnpopulated: true}.Marshal(m)
-	}
-	return json.Marshal(v)
-}
-
-func unmarshalJSON(data []byte, v interface{}) error {
-	if m, ok := v.(proto.Message); ok {
-		return protojson.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(data, m)
-	}
-	return json.Unmarshal(data, v)
-}
-
 func convertMap(src interface{}) interface{} {
 func convertMap(src interface{}) interface{} {
 	switch m := src.(type) {
 	switch m := src.(type) {
 	case map[string]interface{}:
 	case map[string]interface{}:

+ 1 - 1
go.mod

@@ -9,7 +9,6 @@ require (
 	github.com/go-kratos/kratos/v2 v2.8.3
 	github.com/go-kratos/kratos/v2 v2.8.3
 	go.etcd.io/etcd/client/v3 v3.5.18
 	go.etcd.io/etcd/client/v3 v3.5.18
 	google.golang.org/grpc v1.61.1
 	google.golang.org/grpc v1.61.1
-	google.golang.org/protobuf v1.33.0
 )
 )
 
 
 require (
 require (
@@ -30,5 +29,6 @@ require (
 	google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect
 	google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect
 	google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect
 	google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect
+	google.golang.org/protobuf v1.33.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
 )