From 889b25edef057a8016f137fc559833da198bea68 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Thu, 16 Nov 2023 17:45:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9C=80=E6=96=B0=E7=9A=84ga?= =?UTF-8?q?teway=20=E6=94=AF=E6=8C=81=E9=80=9A=E7=94=A8=E7=9A=84response?= =?UTF-8?q?=20map=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 2 +- go.sum | 4 ++-- proto | 2 +- server/logic/gateway_logic_gen.go | 5 ----- server/logic/gateway_response.go | 29 +++++++++++++++++++++++++---- 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 84d9d20..e1dc4bc 100644 --- a/go.mod +++ b/go.mod @@ -47,4 +47,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace fusen-basic v0.0.0 => gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116042329-f02917634c5e +replace fusen-basic v0.0.0 => gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116081152-8b986d7e7d8d diff --git a/go.sum b/go.sum index 91fb8b4..2ab9b4b 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,6 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116042329-f02917634c5e h1:7AP0afu7/BedGvbl8yqVUCB1GuDYsO/omHZ8Qlu3gGw= -gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116042329-f02917634c5e/go.mod h1:Zw6gt/0VwNmtG2Boqmo8+5H5AVuWsIVgCgp1ilkRyao= +gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116081152-8b986d7e7d8d h1:pT0RRNVq3cmRvgifnmI3RX5pp5zGImqRViefBPDu1OQ= +gitee.com/fusenpack/fusen-basic v0.0.5-0.20231116081152-8b986d7e7d8d/go.mod h1:Zw6gt/0VwNmtG2Boqmo8+5H5AVuWsIVgCgp1ilkRyao= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= diff --git a/proto b/proto index 15818ae..8148328 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 15818aeb2164a825e2003ff5d931d04c8a80e71a +Subproject commit 8148328349962a10354363537e4ac9659892ea0a diff --git a/server/logic/gateway_logic_gen.go b/server/logic/gateway_logic_gen.go index 172a454..4ae9ddf 100644 --- a/server/logic/gateway_logic_gen.go +++ b/server/logic/gateway_logic_gen.go @@ -21,10 +21,5 @@ func AutoRegisterHandler(ctx context.Context, mux *runtime.ServeMux, opts ...grp return err } - err = service.RegisterInfoHandlerClientNacos(ctx, mux, opts...) - if err != nil { - return err - } - return nil } diff --git a/server/logic/gateway_response.go b/server/logic/gateway_response.go index fd00895..a6eaa6f 100644 --- a/server/logic/gateway_response.go +++ b/server/logic/gateway_response.go @@ -5,6 +5,7 @@ import ( "context" "fmt" "fusen-basic/basic" + "fusen-gateway/gen/go/service" "net/http" "regexp" @@ -21,7 +22,16 @@ func (m *EmptyMarshaler) Marshal(v interface{}) ([]byte, error) { return nil, nil } -var fsProtoJSON = &runtime.JSONPb{ +var fsDefaultProtoJSON = &runtime.JSONPb{ + MarshalOptions: protojson.MarshalOptions{ + EmitUnpopulated: true, + }, + UnmarshalOptions: protojson.UnmarshalOptions{ + DiscardUnknown: true, + }, +} + +var fsProtoDataJSON = &runtime.JSONPb{ MarshalOptions: protojson.MarshalOptions{ EmitUnpopulated: true, }, @@ -35,10 +45,21 @@ var codeRE = regexp.MustCompile(`(?i)"code"\s*:\s*(\d+)`) func WriteFusenResponse(fsHeader string, w http.ResponseWriter, resp proto.Message) error { w.WriteHeader(200) var buf = bytes.NewBufferString(fsHeader[:len(fsHeader)-1] + ",") - rdata, err := fsProtoJSON.Marshal(resp) - if err != nil { - return err + var rdata []byte + var err error + + if customResp, ok := resp.(*service.Response); ok { + rdata, err = protojson.Marshal(customResp.GetData()) + if err != nil { + return err + } + } else { + rdata, err = protojson.Marshal(resp) + if err != nil { + return err + } } + buf.WriteString(`"data":`) buf.Write(rdata) buf.WriteString(`}`)