From eb403fe4869117173c65ae9925706093b283356b Mon Sep 17 00:00:00 2001 From: Maxim Babichev Date: Mon, 2 Oct 2023 23:34:03 +0300 Subject: [PATCH 1/2] sdk fix --- Makefile | 2 +- go.mod | 1 + go.sum | 2 ++ pkg/sdk/api.gen.go | 18 +++++++++--------- pkg/sdk/json.go | 22 ++++++++++++++++++++++ 5 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 pkg/sdk/json.go diff --git a/Makefile b/Makefile index f22d1e5..21755bb 100644 --- a/Makefile +++ b/Makefile @@ -22,4 +22,4 @@ intgr-test: build # before: go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest gen: oapi-codegen -generate gorilla,types -package rest ./api/openapi/api.yaml > internal/domain/rest/api.gen.go - oapi-codegen -generate client,types -package sdk ./api/openapi/api.yaml > pkg/sdk/api.gen.go + oapi-codegen -generate client,types -package sdk ./api/openapi/api.yaml | sed -e 's/json\.Marshal/Marshal/g' -e 's/json\.Unmarshal/Unmarshal/g' > pkg/sdk/api.gen.go diff --git a/go.mod b/go.mod index 944b683..c0668ac 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.21 require ( github.com/bavix/gripmock/protogen v0.0.0 github.com/bavix/gripmock/protogen/example v0.0.0 + github.com/goccy/go-json v0.10.2 github.com/goccy/go-yaml v1.11.2 github.com/google/uuid v1.3.1 github.com/gorilla/handlers v1.5.1 diff --git a/go.sum b/go.sum index b5ac2d9..edc491b 100644 --- a/go.sum +++ b/go.sum @@ -19,6 +19,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.11.2 h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ= github.com/goccy/go-yaml v1.11.2/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= diff --git a/pkg/sdk/api.gen.go b/pkg/sdk/api.gen.go index 0f33ba2..d519dab 100644 --- a/pkg/sdk/api.gen.go +++ b/pkg/sdk/api.gen.go @@ -448,7 +448,7 @@ func NewListStubsRequest(server string) (*http.Request, error) { // NewAddStubRequest calls the generic AddStub builder with application/json body func NewAddStubRequest(server string, body AddStubJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader - buf, err := json.Marshal(body) + buf, err := Marshal(body) if err != nil { return nil, err } @@ -488,7 +488,7 @@ func NewAddStubRequestWithBody(server string, contentType string, body io.Reader // NewBatchStubsDeleteRequest calls the generic BatchStubsDelete builder with application/json body func NewBatchStubsDeleteRequest(server string, body BatchStubsDeleteJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader - buf, err := json.Marshal(body) + buf, err := Marshal(body) if err != nil { return nil, err } @@ -528,7 +528,7 @@ func NewBatchStubsDeleteRequestWithBody(server string, contentType string, body // NewSearchStubsRequest calls the generic SearchStubs builder with application/json body func NewSearchStubsRequest(server string, body SearchStubsJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader - buf, err := json.Marshal(body) + buf, err := Marshal(body) if err != nil { return nil, err } @@ -1021,7 +1021,7 @@ func ParseLivenessResponse(rsp *http.Response) (*LivenessResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest MessageOK - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest @@ -1047,7 +1047,7 @@ func ParseReadinessResponse(rsp *http.Response) (*ReadinessResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest MessageOK - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest @@ -1089,7 +1089,7 @@ func ParseListStubsResponse(rsp *http.Response) (*ListStubsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest StubList - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest @@ -1117,7 +1117,7 @@ func ParseAddStubResponse(rsp *http.Response) (*AddStubResponse, error) { var dest struct { union json.RawMessage } - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest @@ -1159,7 +1159,7 @@ func ParseSearchStubsResponse(rsp *http.Response) (*SearchStubsResponse, error) switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest SearchResponse - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest @@ -1185,7 +1185,7 @@ func ParseListUnusedStubsResponse(rsp *http.Response) (*ListUnusedStubsResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: var dest StubList - if err := json.Unmarshal(bodyBytes, &dest); err != nil { + if err := Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest diff --git a/pkg/sdk/json.go b/pkg/sdk/json.go new file mode 100644 index 0000000..1bafe00 --- /dev/null +++ b/pkg/sdk/json.go @@ -0,0 +1,22 @@ +package sdk + +import ( + "bytes" + + fastjson "github.com/goccy/go-json" +) + +func Marshal(v any) ([]byte, error) { + return fastjson.Marshal(v) +} + +func Unmarshal(data []byte, v any) error { + decoder := fastjson.NewDecoder(bytes.NewReader(data)) + decoder.UseNumber() + + if err := decoder.Decode(&v); err != nil { + return err + } + + return nil +} From 4e74a08afcd3ca37380c3aa5ccbd68c79f258fc9 Mon Sep 17 00:00:00 2001 From: Maxim Babichev Date: Mon, 2 Oct 2023 23:45:36 +0300 Subject: [PATCH 2/2] no need yet --- go.mod | 1 - go.sum | 2 -- pkg/sdk/json.go | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/go.mod b/go.mod index c0668ac..944b683 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.21 require ( github.com/bavix/gripmock/protogen v0.0.0 github.com/bavix/gripmock/protogen/example v0.0.0 - github.com/goccy/go-json v0.10.2 github.com/goccy/go-yaml v1.11.2 github.com/google/uuid v1.3.1 github.com/gorilla/handlers v1.5.1 diff --git a/go.sum b/go.sum index edc491b..b5ac2d9 100644 --- a/go.sum +++ b/go.sum @@ -19,8 +19,6 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= -github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.11.2 h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ= github.com/goccy/go-yaml v1.11.2/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= diff --git a/pkg/sdk/json.go b/pkg/sdk/json.go index 1bafe00..eaebaa1 100644 --- a/pkg/sdk/json.go +++ b/pkg/sdk/json.go @@ -3,7 +3,7 @@ package sdk import ( "bytes" - fastjson "github.com/goccy/go-json" + fastjson "encoding/json" ) func Marshal(v any) ([]byte, error) {