Skip to content

Commit 75e77ce

Browse files
whzghbkfswain
authored andcommitted
Delete the unnecessary Marshal of processRequestBody (kubernetes-sigs#1127)
Signed-off-by: weihuizhou <[email protected]>
1 parent bcba425 commit 75e77ce

File tree

3 files changed

+10
-20
lines changed

3 files changed

+10
-20
lines changed

pkg/bbr/handlers/request.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ import (
3232
const modelHeader = "X-Gateway-Model-Name"
3333

3434
// HandleRequestBody handles request bodies.
35-
func (s *Server) HandleRequestBody(ctx context.Context, data map[string]any) ([]*eppb.ProcessingResponse, error) {
35+
func (s *Server) HandleRequestBody(ctx context.Context, requestBodyBytes []byte) ([]*eppb.ProcessingResponse, error) {
3636
logger := log.FromContext(ctx)
3737
var ret []*eppb.ProcessingResponse
3838

39-
requestBodyBytes, err := json.Marshal(data)
40-
if err != nil {
39+
var requestBody map[string]any
40+
if err := json.Unmarshal(requestBodyBytes, &requestBody); err != nil {
4141
return nil, err
4242
}
4343

44-
modelVal, ok := data["model"]
44+
modelVal, ok := requestBody["model"]
4545
if !ok {
4646
metrics.RecordModelNotInBodyCounter()
4747
logger.V(logutil.DEFAULT).Info("Request body does not contain model parameter")

pkg/bbr/handlers/request_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ func TestHandleRequestBody(t *testing.T) {
178178
for _, test := range tests {
179179
t.Run(test.name, func(t *testing.T) {
180180
server := &Server{streaming: test.streaming}
181-
resp, err := server.HandleRequestBody(ctx, test.body)
181+
bodyBytes, _ := json.Marshal(test.body)
182+
resp, err := server.HandleRequestBody(ctx, bodyBytes)
182183
if err != nil {
183184
if !test.wantErr {
184185
t.Fatalf("HandleRequestBody returned unexpected error: %v, want %v", err, test.wantErr)

pkg/bbr/handlers/server.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package handlers
1818

1919
import (
2020
"context"
21-
"encoding/json"
2221
"errors"
2322
"io"
2423

@@ -118,29 +117,19 @@ type streamedBody struct {
118117
func (s *Server) processRequestBody(ctx context.Context, body *extProcPb.HttpBody, streamedBody *streamedBody, logger logr.Logger) ([]*extProcPb.ProcessingResponse, error) {
119118
loggerVerbose := logger.V(logutil.VERBOSE)
120119

121-
var requestBody map[string]any
120+
var requestBodyBytes []byte
122121
if s.streaming {
123122
streamedBody.body = append(streamedBody.body, body.Body...)
124123
// In the stream case, we can receive multiple request bodies.
125124
if body.EndOfStream {
126125
loggerVerbose.Info("Flushing stream buffer")
127-
err := json.Unmarshal(streamedBody.body, &requestBody)
128-
if err != nil {
129-
logger.V(logutil.DEFAULT).Error(err, "Error unmarshaling request body")
130-
}
126+
requestBodyBytes = streamedBody.body
131127
} else {
132128
return nil, nil
133129
}
134130
} else {
135-
if err := json.Unmarshal(body.GetBody(), &requestBody); err != nil {
136-
return nil, err
137-
}
138-
}
139-
140-
requestBodyResp, err := s.HandleRequestBody(ctx, requestBody)
141-
if err != nil {
142-
return nil, err
131+
requestBodyBytes = body.GetBody()
143132
}
144133

145-
return requestBodyResp, nil
134+
return s.HandleRequestBody(ctx, requestBodyBytes)
146135
}

0 commit comments

Comments
 (0)