diff --git a/modules/openapi-generator/src/main/resources/go-server/controller-api.mustache b/modules/openapi-generator/src/main/resources/go-server/controller-api.mustache index e9c8ad0237823..5dc6fd9aebd15 100644 --- a/modules/openapi-generator/src/main/resources/go-server/controller-api.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/controller-api.mustache @@ -47,7 +47,7 @@ func With{{classname}}ErrorHandler(h ErrorHandler) {{classname}}Option { } // New{{classname}}Controller creates a default api controller -func New{{classname}}Controller(s {{classname}}Servicer, opts ...{{classname}}Option) Router { +func New{{classname}}Controller(s {{classname}}Servicer, opts ...{{classname}}Option) *{{classname}}Controller { controller := &{{classname}}Controller{ service: s, errorHandler: DefaultErrorHandler, @@ -631,5 +631,5 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code,{{#addResponseHeaders}} result.Headers,{{/addResponseHeaders}} w) + _ = EncodeJSONResponse(result.Body, &result.Code,{{#addResponseHeaders}} result.Headers,{{/addResponseHeaders}} w) }{{/operation}}{{/operations}} diff --git a/modules/openapi-generator/src/main/resources/go-server/error.mustache b/modules/openapi-generator/src/main/resources/go-server/error.mustache index f14e619861192..4c90a3b9f2533 100644 --- a/modules/openapi-generator/src/main/resources/go-server/error.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/error.mustache @@ -25,9 +25,9 @@ func (e *ParsingError) Unwrap() error { func (e *ParsingError) Error() string { if e.Param == "" { return e.Err.Error() - } else { - return e.Param + ": " + e.Err.Error() } + + return e.Param + ": " + e.Err.Error() } // RequiredError indicates that an error has occurred when parsing request parameters @@ -45,15 +45,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result // DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing // request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used. -func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) { - if _, ok := err.(*ParsingError); ok { +func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) { + var parsingErr *ParsingError + if ok := errors.As(err, &parsingErr); ok { // Handle parsing errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest),{{#addResponseHeaders}} map[string][]string{},{{/addResponseHeaders}} w) - } else if _, ok := err.(*RequiredError); ok { - // Handle missing required errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity),{{#addResponseHeaders}} map[string][]string{},{{/addResponseHeaders}} w) - } else { - // Handle all other errors - EncodeJSONResponse(err.Error(), &result.Code,{{#addResponseHeaders}} result.Headers,{{/addResponseHeaders}} w) + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest),{{#addResponseHeaders}} map[string][]string{},{{/addResponseHeaders}} w) + return } + + var requiredErr *RequiredError + if ok := errors.As(err, &requiredErr); ok { + // Handle missing required errors + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity),{{#addResponseHeaders}} map[string][]string{},{{/addResponseHeaders}} w) + return + } + + // Handle all other errors + _ = EncodeJSONResponse(err.Error(), &result.Code,{{#addResponseHeaders}} result.Headers,{{/addResponseHeaders}} w) } diff --git a/modules/openapi-generator/src/main/resources/go-server/helpers.mustache b/modules/openapi-generator/src/main/resources/go-server/helpers.mustache index ba5954ff46b81..de8a203d84b92 100644 --- a/modules/openapi-generator/src/main/resources/go-server/helpers.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/helpers.mustache @@ -56,7 +56,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err // If it is a slice we continue recursion case reflect.Slice: - for i := 0; i < value.Len(); i += 1 { + for i := 0; i < value.Len(); i++ { if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil { return err } diff --git a/modules/openapi-generator/src/main/resources/go-server/model.mustache b/modules/openapi-generator/src/main/resources/go-server/model.mustache index 302b8448f50b6..6ef715feb3a2a 100644 --- a/modules/openapi-generator/src/main/resources/go-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/model.mustache @@ -49,9 +49,9 @@ func New{{{classname}}}FromValue(v {{{format}}}{{^format}}{{dataType}}{{/format} ev := {{{classname}}}(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for {{{classname}}}: valid values are %v", v, Allowed{{{classname}}}EnumValues) } + + return "", fmt.Errorf("invalid value '%v' for {{{classname}}}: valid values are %v", v, Allowed{{{classname}}}EnumValues) } {{/isEnum}}{{^isEnum}}{{#description}} diff --git a/modules/openapi-generator/src/main/resources/go-server/routers.mustache b/modules/openapi-generator/src/main/resources/go-server/routers.mustache index fb2d043076a9f..207df91d9aadc 100644 --- a/modules/openapi-generator/src/main/resources/go-server/routers.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/routers.mustache @@ -64,8 +64,7 @@ func NewRouter(routers ...Router) {{#routers}}{{#mux}}*mux.Router{{/mux}}{{#chi} {{/routers}} for _, api := range routers { for {{#routers}}{{#mux}}name{{/mux}}{{#chi}}_{{/chi}}{{/routers}}, route := range api.Routes() { - var handler http.Handler - handler = route.HandlerFunc + var handler http.Handler = route.HandlerFunc {{#routers}} {{#mux}} handler = Logger(handler, name) @@ -373,7 +372,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn } -// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered. +// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered. func parseQuery(rawQuery string) (url.Values, error) { return url.ParseQuery(rawQuery) } \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/go-server/service.mustache b/modules/openapi-generator/src/main/resources/go-server/service.mustache index 799c682373971..52ddb6ac23b0f 100644 --- a/modules/openapi-generator/src/main/resources/go-server/service.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/service.mustache @@ -15,7 +15,7 @@ type {{classname}}Service struct { } // New{{classname}}Service creates a default api service -func New{{classname}}Service() {{classname}}Servicer { +func New{{classname}}Service() *{{classname}}Service { return &{{classname}}Service{} }{{#operations}}{{#operation}} diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_pet.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_pet.go index 7d3b5c467612d..5b043ad51bcd0 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_pet.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_pet.go @@ -36,7 +36,7 @@ func WithPetAPIErrorHandler(h ErrorHandler) PetAPIOption { } // NewPetAPIController creates a default api controller -func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) Router { +func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) *PetAPIController { controller := &PetAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -119,7 +119,7 @@ func (c *PetAPIController) AddPet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeletePet - Deletes a pet @@ -140,7 +140,7 @@ func (c *PetAPIController) DeletePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByStatus - Finds Pets by status @@ -161,7 +161,7 @@ func (c *PetAPIController) FindPetsByStatus(w http.ResponseWriter, r *http.Reque return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByTags - Finds Pets by tags @@ -183,7 +183,7 @@ func (c *PetAPIController) FindPetsByTags(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetById - Find pet by ID @@ -203,7 +203,7 @@ func (c *PetAPIController) GetPetById(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePet - Update an existing pet @@ -230,7 +230,7 @@ func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePetWithForm - Updates a pet in the store with form data @@ -260,7 +260,7 @@ func (c *PetAPIController) UpdatePetWithForm(w http.ResponseWriter, r *http.Requ return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UploadFile - uploads an image @@ -299,5 +299,5 @@ func (c *PetAPIController) UploadFile(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_pet_service.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_pet_service.go index d1779d1174694..cea78ae519a57 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_pet_service.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_pet_service.go @@ -24,7 +24,7 @@ type PetAPIService struct { } // NewPetAPIService creates a default api service -func NewPetAPIService() PetAPIServicer { +func NewPetAPIService() *PetAPIService { return &PetAPIService{} } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_store.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_store.go index 2bcc6ccd7691c..e364efe39889e 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_store.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_store.go @@ -35,7 +35,7 @@ func WithStoreAPIErrorHandler(h ErrorHandler) StoreAPIOption { } // NewStoreAPIController creates a default api controller -func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) Router { +func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) *StoreAPIController { controller := &StoreAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -88,7 +88,7 @@ func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetInventory - Returns pet inventories by status @@ -100,7 +100,7 @@ func (c *StoreAPIController) GetInventory(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetOrderById - Find purchase order by ID @@ -122,7 +122,7 @@ func (c *StoreAPIController) GetOrderById(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // PlaceOrder - Place an order for a pet @@ -149,5 +149,5 @@ func (c *StoreAPIController) PlaceOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_store_service.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_store_service.go index ee41bf5fdd3be..46671f7a9fd99 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_store_service.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_store_service.go @@ -23,7 +23,7 @@ type StoreAPIService struct { } // NewStoreAPIService creates a default api service -func NewStoreAPIService() StoreAPIServicer { +func NewStoreAPIService() *StoreAPIService { return &StoreAPIService{} } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_user.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_user.go index 269c5445c8670..1d28ab73b753d 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_user.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_user.go @@ -35,7 +35,7 @@ func WithUserAPIErrorHandler(h ErrorHandler) UserAPIOption { } // NewUserAPIController creates a default api controller -func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) Router { +func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) *UserAPIController { controller := &UserAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -118,7 +118,7 @@ func (c *UserAPIController) CreateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithArrayInput - Creates list of users with given input array @@ -143,7 +143,7 @@ func (c *UserAPIController) CreateUsersWithArrayInput(w http.ResponseWriter, r * return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithListInput - Creates list of users with given input array @@ -168,7 +168,7 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeleteUser - Delete user @@ -204,7 +204,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetUserByName - Get user by user name @@ -221,7 +221,7 @@ func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LoginUser - Logs user into the system @@ -326,7 +326,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LogoutUser - Logs out current logged in user session @@ -338,7 +338,7 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdateUser - Updated user @@ -370,5 +370,5 @@ func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/api_user_service.go b/samples/openapi3/server/petstore/go/go-petstore/go/api_user_service.go index 35abd4478edec..4be92131dc0b4 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/api_user_service.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/api_user_service.go @@ -23,7 +23,7 @@ type UserAPIService struct { } // NewUserAPIService creates a default api service -func NewUserAPIService() UserAPIServicer { +func NewUserAPIService() *UserAPIService { return &UserAPIService{} } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/error.go b/samples/openapi3/server/petstore/go/go-petstore/go/error.go index 82dc66e0ed850..ba23f89b83854 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/error.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/error.go @@ -34,9 +34,9 @@ func (e *ParsingError) Unwrap() error { func (e *ParsingError) Error() string { if e.Param == "" { return e.Err.Error() - } else { - return e.Param + ": " + e.Err.Error() } + + return e.Param + ": " + e.Err.Error() } // RequiredError indicates that an error has occurred when parsing request parameters @@ -54,15 +54,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result // DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing // request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used. -func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) { - if _, ok := err.(*ParsingError); ok { +func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) { + var parsingErr *ParsingError + if ok := errors.As(err, &parsingErr); ok { // Handle parsing errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) - } else if _, ok := err.(*RequiredError); ok { - // Handle missing required errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) - } else { - // Handle all other errors - EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) + return } + + var requiredErr *RequiredError + if ok := errors.As(err, &requiredErr); ok { + // Handle missing required errors + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) + return + } + + // Handle all other errors + _ = EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/helpers.go b/samples/openapi3/server/petstore/go/go-petstore/go/helpers.go index 886c0c9a17dde..027954b0c9b9b 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/helpers.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/helpers.go @@ -61,7 +61,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err // If it is a slice we continue recursion case reflect.Slice: - for i := 0; i < value.Len(); i += 1 { + for i := 0; i < value.Len(); i++ { if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil { return err } diff --git a/samples/openapi3/server/petstore/go/go-petstore/go/routers.go b/samples/openapi3/server/petstore/go/go-petstore/go/routers.go index ef9200e0a24c0..4d662e273c58d 100644 --- a/samples/openapi3/server/petstore/go/go-petstore/go/routers.go +++ b/samples/openapi3/server/petstore/go/go-petstore/go/routers.go @@ -50,8 +50,7 @@ func NewRouter(routers ...Router) chi.Router { router.Use(middleware.Logger) for _, api := range routers { for _, route := range api.Routes() { - var handler http.Handler - handler = route.HandlerFunc + var handler http.Handler = route.HandlerFunc router.Method(route.Method, route.Pattern, handler) } } @@ -341,7 +340,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn } -// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered. +// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered. func parseQuery(rawQuery string) (url.Values, error) { return url.ParseQuery(rawQuery) } \ No newline at end of file diff --git a/samples/server/others/go-server/no-body-path-params/go/api_body.go b/samples/server/others/go-server/no-body-path-params/go/api_body.go index 6830786d1ba43..02b5ad81f38ce 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_body.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_body.go @@ -33,7 +33,7 @@ func WithBodyAPIErrorHandler(h ErrorHandler) BodyAPIOption { } // NewBodyAPIController creates a default api controller -func NewBodyAPIController(s BodyAPIServicer, opts ...BodyAPIOption) Router { +func NewBodyAPIController(s BodyAPIServicer, opts ...BodyAPIOption) *BodyAPIController { controller := &BodyAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -81,5 +81,5 @@ func (c *BodyAPIController) Body(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_body_service.go b/samples/server/others/go-server/no-body-path-params/go/api_body_service.go index cd0de685ae4b8..2f0c808293508 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_body_service.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_body_service.go @@ -23,7 +23,7 @@ type BodyAPIService struct { } // NewBodyAPIService creates a default api service -func NewBodyAPIService() BodyAPIServicer { +func NewBodyAPIService() *BodyAPIService { return &BodyAPIService{} } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_both.go b/samples/server/others/go-server/no-body-path-params/go/api_both.go index 5d5d2d3cad56a..c100791a92d9b 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_both.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_both.go @@ -35,7 +35,7 @@ func WithBothAPIErrorHandler(h ErrorHandler) BothAPIOption { } // NewBothAPIController creates a default api controller -func NewBothAPIController(s BothAPIServicer, opts ...BothAPIOption) Router { +func NewBothAPIController(s BothAPIServicer, opts ...BothAPIOption) *BothAPIController { controller := &BothAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -89,5 +89,5 @@ func (c *BothAPIController) Both(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_both_service.go b/samples/server/others/go-server/no-body-path-params/go/api_both_service.go index 6ba8112cbb81f..bb9b26a386285 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_both_service.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_both_service.go @@ -23,7 +23,7 @@ type BothAPIService struct { } // NewBothAPIService creates a default api service -func NewBothAPIService() BothAPIServicer { +func NewBothAPIService() *BothAPIService { return &BothAPIService{} } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_none.go b/samples/server/others/go-server/no-body-path-params/go/api_none.go index be2813a2871d1..54bbc5ad85d4f 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_none.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_none.go @@ -32,7 +32,7 @@ func WithNoneAPIErrorHandler(h ErrorHandler) NoneAPIOption { } // NewNoneAPIController creates a default api controller -func NewNoneAPIController(s NoneAPIServicer, opts ...NoneAPIOption) Router { +func NewNoneAPIController(s NoneAPIServicer, opts ...NoneAPIOption) *NoneAPIController { controller := &NoneAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -65,5 +65,5 @@ func (c *NoneAPIController) One(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_none_service.go b/samples/server/others/go-server/no-body-path-params/go/api_none_service.go index 80b0b25e75eaf..b259fe8198fea 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_none_service.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_none_service.go @@ -23,7 +23,7 @@ type NoneAPIService struct { } // NewNoneAPIService creates a default api service -func NewNoneAPIService() NoneAPIServicer { +func NewNoneAPIService() *NoneAPIService { return &NoneAPIService{} } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_path.go b/samples/server/others/go-server/no-body-path-params/go/api_path.go index f361bf7ac1f07..beb6dbd6e7a3a 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_path.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_path.go @@ -34,7 +34,7 @@ func WithPathAPIErrorHandler(h ErrorHandler) PathAPIOption { } // NewPathAPIController creates a default api controller -func NewPathAPIController(s PathAPIServicer, opts ...PathAPIOption) Router { +func NewPathAPIController(s PathAPIServicer, opts ...PathAPIOption) *PathAPIController { controller := &PathAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -73,5 +73,5 @@ func (c *PathAPIController) Path(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/others/go-server/no-body-path-params/go/api_path_service.go b/samples/server/others/go-server/no-body-path-params/go/api_path_service.go index 611c5c38a16a9..706e978050155 100644 --- a/samples/server/others/go-server/no-body-path-params/go/api_path_service.go +++ b/samples/server/others/go-server/no-body-path-params/go/api_path_service.go @@ -23,7 +23,7 @@ type PathAPIService struct { } // NewPathAPIService creates a default api service -func NewPathAPIService() PathAPIServicer { +func NewPathAPIService() *PathAPIService { return &PathAPIService{} } diff --git a/samples/server/others/go-server/no-body-path-params/go/error.go b/samples/server/others/go-server/no-body-path-params/go/error.go index 2c80ab1328ba5..6da8e9adacba0 100644 --- a/samples/server/others/go-server/no-body-path-params/go/error.go +++ b/samples/server/others/go-server/no-body-path-params/go/error.go @@ -34,9 +34,9 @@ func (e *ParsingError) Unwrap() error { func (e *ParsingError) Error() string { if e.Param == "" { return e.Err.Error() - } else { - return e.Param + ": " + e.Err.Error() } + + return e.Param + ": " + e.Err.Error() } // RequiredError indicates that an error has occurred when parsing request parameters @@ -54,15 +54,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result // DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing // request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used. -func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) { - if _, ok := err.(*ParsingError); ok { +func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) { + var parsingErr *ParsingError + if ok := errors.As(err, &parsingErr); ok { // Handle parsing errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) - } else if _, ok := err.(*RequiredError); ok { - // Handle missing required errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) - } else { - // Handle all other errors - EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) + return } + + var requiredErr *RequiredError + if ok := errors.As(err, &requiredErr); ok { + // Handle missing required errors + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) + return + } + + // Handle all other errors + _ = EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) } diff --git a/samples/server/others/go-server/no-body-path-params/go/helpers.go b/samples/server/others/go-server/no-body-path-params/go/helpers.go index 4a3079c45b5cd..9c9664853e651 100644 --- a/samples/server/others/go-server/no-body-path-params/go/helpers.go +++ b/samples/server/others/go-server/no-body-path-params/go/helpers.go @@ -61,7 +61,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err // If it is a slice we continue recursion case reflect.Slice: - for i := 0; i < value.Len(); i += 1 { + for i := 0; i < value.Len(); i++ { if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil { return err } diff --git a/samples/server/others/go-server/no-body-path-params/go/routers.go b/samples/server/others/go-server/no-body-path-params/go/routers.go index 536b14449febf..249c28f9e3bbc 100644 --- a/samples/server/others/go-server/no-body-path-params/go/routers.go +++ b/samples/server/others/go-server/no-body-path-params/go/routers.go @@ -48,8 +48,7 @@ func NewRouter(routers ...Router) *mux.Router { router := mux.NewRouter().StrictSlash(true) for _, api := range routers { for name, route := range api.Routes() { - var handler http.Handler - handler = route.HandlerFunc + var handler http.Handler = route.HandlerFunc handler = Logger(handler, name) router. @@ -345,7 +344,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn } -// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered. +// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered. func parseQuery(rawQuery string) (url.Values, error) { return url.ParseQuery(rawQuery) } \ No newline at end of file diff --git a/samples/server/petstore/go-api-server/go/api_pet.go b/samples/server/petstore/go-api-server/go/api_pet.go index f8f26a9cee4b7..8451d4cf8922c 100644 --- a/samples/server/petstore/go-api-server/go/api_pet.go +++ b/samples/server/petstore/go-api-server/go/api_pet.go @@ -37,7 +37,7 @@ func WithPetAPIErrorHandler(h ErrorHandler) PetAPIOption { } // NewPetAPIController creates a default api controller -func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) Router { +func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) *PetAPIController { controller := &PetAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -150,7 +150,7 @@ func (c *PetAPIController) AddPet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeletePet - Deletes a pet @@ -172,7 +172,7 @@ func (c *PetAPIController) DeletePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FilterPetsByCategory - Finds Pets @@ -217,7 +217,7 @@ func (c *PetAPIController) FilterPetsByCategory(w http.ResponseWriter, r *http.R return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByStatus - Finds Pets by status @@ -292,7 +292,7 @@ func (c *PetAPIController) FindPetsByStatus(w http.ResponseWriter, r *http.Reque return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByTags - Finds Pets by tags @@ -345,7 +345,7 @@ func (c *PetAPIController) FindPetsByTags(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetById - Find pet by ID @@ -366,7 +366,7 @@ func (c *PetAPIController) GetPetById(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetImageById - Returns the image for the Pet that has been previously uploaded @@ -387,7 +387,7 @@ func (c *PetAPIController) GetPetImageById(w http.ResponseWriter, r *http.Reques return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetsByTime - Get the pets by time @@ -405,7 +405,7 @@ func (c *PetAPIController) GetPetsByTime(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetsUsingBooleanQueryParameters - Get the pets by only using boolean query parameters @@ -468,7 +468,7 @@ func (c *PetAPIController) GetPetsUsingBooleanQueryParameters(w http.ResponseWri return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // SearchPet - Search Pets by filters @@ -538,7 +538,7 @@ func (c *PetAPIController) SearchPet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePet - Update an existing pet @@ -565,7 +565,7 @@ func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePetWithForm - Updates a pet in the store with form data @@ -596,7 +596,7 @@ func (c *PetAPIController) UpdatePetWithForm(w http.ResponseWriter, r *http.Requ return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UploadFile - uploads an image @@ -639,7 +639,7 @@ func (c *PetAPIController) UploadFile(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UploadFileArrayOfFiles - uploads images (array of files) @@ -679,5 +679,5 @@ func (c *PetAPIController) UploadFileArrayOfFiles(w http.ResponseWriter, r *http return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-api-server/go/api_pet_service.go b/samples/server/petstore/go-api-server/go/api_pet_service.go index 023ccb2ab059c..9786bd5f71ab1 100644 --- a/samples/server/petstore/go-api-server/go/api_pet_service.go +++ b/samples/server/petstore/go-api-server/go/api_pet_service.go @@ -25,7 +25,7 @@ type PetAPIService struct { } // NewPetAPIService creates a default api service -func NewPetAPIService() PetAPIServicer { +func NewPetAPIService() *PetAPIService { return &PetAPIService{} } diff --git a/samples/server/petstore/go-api-server/go/api_store.go b/samples/server/petstore/go-api-server/go/api_store.go index 5fd5a2360286b..cc1caead0e8dd 100644 --- a/samples/server/petstore/go-api-server/go/api_store.go +++ b/samples/server/petstore/go-api-server/go/api_store.go @@ -35,7 +35,7 @@ func WithStoreAPIErrorHandler(h ErrorHandler) StoreAPIOption { } // NewStoreAPIController creates a default api controller -func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) Router { +func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) *StoreAPIController { controller := &StoreAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -89,7 +89,7 @@ func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetInventory - Returns pet inventories by status @@ -101,7 +101,7 @@ func (c *StoreAPIController) GetInventory(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetOrderById - Find purchase order by ID @@ -124,7 +124,7 @@ func (c *StoreAPIController) GetOrderById(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // PlaceOrder - Place an order for a pet @@ -151,5 +151,5 @@ func (c *StoreAPIController) PlaceOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-api-server/go/api_store_service.go b/samples/server/petstore/go-api-server/go/api_store_service.go index ee41bf5fdd3be..46671f7a9fd99 100644 --- a/samples/server/petstore/go-api-server/go/api_store_service.go +++ b/samples/server/petstore/go-api-server/go/api_store_service.go @@ -23,7 +23,7 @@ type StoreAPIService struct { } // NewStoreAPIService creates a default api service -func NewStoreAPIService() StoreAPIServicer { +func NewStoreAPIService() *StoreAPIService { return &StoreAPIService{} } diff --git a/samples/server/petstore/go-api-server/go/api_user.go b/samples/server/petstore/go-api-server/go/api_user.go index 16f035971da8c..f1917fa9b7854 100644 --- a/samples/server/petstore/go-api-server/go/api_user.go +++ b/samples/server/petstore/go-api-server/go/api_user.go @@ -35,7 +35,7 @@ func WithUserAPIErrorHandler(h ErrorHandler) UserAPIOption { } // NewUserAPIController creates a default api controller -func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) Router { +func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) *UserAPIController { controller := &UserAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -118,7 +118,7 @@ func (c *UserAPIController) CreateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithArrayInput - Creates list of users with given input array @@ -143,7 +143,7 @@ func (c *UserAPIController) CreateUsersWithArrayInput(w http.ResponseWriter, r * return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithListInput - Creates list of users with given input array @@ -168,7 +168,7 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeleteUser - Delete user @@ -205,7 +205,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetUserByName - Get user by user name @@ -223,7 +223,7 @@ func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LoginUser - Logs user into the system @@ -272,7 +272,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LogoutUser - Logs out current logged in user session @@ -284,7 +284,7 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdateUser - Updated user @@ -317,5 +317,5 @@ func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-api-server/go/api_user_service.go b/samples/server/petstore/go-api-server/go/api_user_service.go index d90b01762d8b8..62332a09da48c 100644 --- a/samples/server/petstore/go-api-server/go/api_user_service.go +++ b/samples/server/petstore/go-api-server/go/api_user_service.go @@ -23,7 +23,7 @@ type UserAPIService struct { } // NewUserAPIService creates a default api service -func NewUserAPIService() UserAPIServicer { +func NewUserAPIService() *UserAPIService { return &UserAPIService{} } diff --git a/samples/server/petstore/go-api-server/go/error.go b/samples/server/petstore/go-api-server/go/error.go index 82dc66e0ed850..ba23f89b83854 100644 --- a/samples/server/petstore/go-api-server/go/error.go +++ b/samples/server/petstore/go-api-server/go/error.go @@ -34,9 +34,9 @@ func (e *ParsingError) Unwrap() error { func (e *ParsingError) Error() string { if e.Param == "" { return e.Err.Error() - } else { - return e.Param + ": " + e.Err.Error() } + + return e.Param + ": " + e.Err.Error() } // RequiredError indicates that an error has occurred when parsing request parameters @@ -54,15 +54,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result // DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing // request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used. -func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) { - if _, ok := err.(*ParsingError); ok { +func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) { + var parsingErr *ParsingError + if ok := errors.As(err, &parsingErr); ok { // Handle parsing errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) - } else if _, ok := err.(*RequiredError); ok { - // Handle missing required errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) - } else { - // Handle all other errors - EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) + return } + + var requiredErr *RequiredError + if ok := errors.As(err, &requiredErr); ok { + // Handle missing required errors + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) + return + } + + // Handle all other errors + _ = EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-api-server/go/helpers.go b/samples/server/petstore/go-api-server/go/helpers.go index 886c0c9a17dde..027954b0c9b9b 100644 --- a/samples/server/petstore/go-api-server/go/helpers.go +++ b/samples/server/petstore/go-api-server/go/helpers.go @@ -61,7 +61,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err // If it is a slice we continue recursion case reflect.Slice: - for i := 0; i < value.Len(); i += 1 { + for i := 0; i < value.Len(); i++ { if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil { return err } diff --git a/samples/server/petstore/go-api-server/go/model_colour.go b/samples/server/petstore/go-api-server/go/model_colour.go index cb360eb0655fd..a77312b653795 100644 --- a/samples/server/petstore/go-api-server/go/model_colour.go +++ b/samples/server/petstore/go-api-server/go/model_colour.go @@ -49,9 +49,9 @@ func NewColourFromValue(v string) (Colour, error) { ev := Colour(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues) } diff --git a/samples/server/petstore/go-api-server/go/model_gender.go b/samples/server/petstore/go-api-server/go/model_gender.go index 20b8702c875ca..410b61fd08d8c 100644 --- a/samples/server/petstore/go-api-server/go/model_gender.go +++ b/samples/server/petstore/go-api-server/go/model_gender.go @@ -49,9 +49,9 @@ func NewGenderFromValue(v string) (Gender, error) { ev := Gender(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues) } diff --git a/samples/server/petstore/go-api-server/go/model_species.go b/samples/server/petstore/go-api-server/go/model_species.go index 6384f20c9487d..f236e29c48a17 100644 --- a/samples/server/petstore/go-api-server/go/model_species.go +++ b/samples/server/petstore/go-api-server/go/model_species.go @@ -58,9 +58,9 @@ func NewSpeciesFromValue(v string) (Species, error) { ev := Species(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues) } diff --git a/samples/server/petstore/go-api-server/go/routers.go b/samples/server/petstore/go-api-server/go/routers.go index 1d49cd139b25d..183a2d8d10f72 100644 --- a/samples/server/petstore/go-api-server/go/routers.go +++ b/samples/server/petstore/go-api-server/go/routers.go @@ -48,8 +48,7 @@ func NewRouter(routers ...Router) *mux.Router { router := mux.NewRouter().StrictSlash(true) for _, api := range routers { for name, route := range api.Routes() { - var handler http.Handler - handler = route.HandlerFunc + var handler http.Handler = route.HandlerFunc handler = Logger(handler, name) router. @@ -345,7 +344,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn } -// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered. +// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered. func parseQuery(rawQuery string) (url.Values, error) { return url.ParseQuery(rawQuery) } \ No newline at end of file diff --git a/samples/server/petstore/go-chi-server/go/api_pet.go b/samples/server/petstore/go-chi-server/go/api_pet.go index 2fbc81e38ff29..a4b5448a06868 100644 --- a/samples/server/petstore/go-chi-server/go/api_pet.go +++ b/samples/server/petstore/go-chi-server/go/api_pet.go @@ -37,7 +37,7 @@ func WithPetAPIErrorHandler(h ErrorHandler) PetAPIOption { } // NewPetAPIController creates a default api controller -func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) Router { +func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) *PetAPIController { controller := &PetAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -150,7 +150,7 @@ func (c *PetAPIController) AddPet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeletePet - Deletes a pet @@ -171,7 +171,7 @@ func (c *PetAPIController) DeletePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FilterPetsByCategory - Finds Pets @@ -215,7 +215,7 @@ func (c *PetAPIController) FilterPetsByCategory(w http.ResponseWriter, r *http.R return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByStatus - Finds Pets by status @@ -289,7 +289,7 @@ func (c *PetAPIController) FindPetsByStatus(w http.ResponseWriter, r *http.Reque return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // FindPetsByTags - Finds Pets by tags @@ -342,7 +342,7 @@ func (c *PetAPIController) FindPetsByTags(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetById - Find pet by ID @@ -362,7 +362,7 @@ func (c *PetAPIController) GetPetById(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetImageById - Returns the image for the Pet that has been previously uploaded @@ -382,7 +382,7 @@ func (c *PetAPIController) GetPetImageById(w http.ResponseWriter, r *http.Reques return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetsByTime - Get the pets by time @@ -399,7 +399,7 @@ func (c *PetAPIController) GetPetsByTime(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetPetsUsingBooleanQueryParameters - Get the pets by only using boolean query parameters @@ -462,7 +462,7 @@ func (c *PetAPIController) GetPetsUsingBooleanQueryParameters(w http.ResponseWri return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // SearchPet - Search Pets by filters @@ -532,7 +532,7 @@ func (c *PetAPIController) SearchPet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePet - Update an existing pet @@ -559,7 +559,7 @@ func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdatePetWithForm - Updates a pet in the store with form data @@ -589,7 +589,7 @@ func (c *PetAPIController) UpdatePetWithForm(w http.ResponseWriter, r *http.Requ return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UploadFile - uploads an image @@ -631,7 +631,7 @@ func (c *PetAPIController) UploadFile(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UploadFileArrayOfFiles - uploads images (array of files) @@ -670,5 +670,5 @@ func (c *PetAPIController) UploadFileArrayOfFiles(w http.ResponseWriter, r *http return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-chi-server/go/api_pet_service.go b/samples/server/petstore/go-chi-server/go/api_pet_service.go index 023ccb2ab059c..9786bd5f71ab1 100644 --- a/samples/server/petstore/go-chi-server/go/api_pet_service.go +++ b/samples/server/petstore/go-chi-server/go/api_pet_service.go @@ -25,7 +25,7 @@ type PetAPIService struct { } // NewPetAPIService creates a default api service -func NewPetAPIService() PetAPIServicer { +func NewPetAPIService() *PetAPIService { return &PetAPIService{} } diff --git a/samples/server/petstore/go-chi-server/go/api_store.go b/samples/server/petstore/go-chi-server/go/api_store.go index 2bcc6ccd7691c..e364efe39889e 100644 --- a/samples/server/petstore/go-chi-server/go/api_store.go +++ b/samples/server/petstore/go-chi-server/go/api_store.go @@ -35,7 +35,7 @@ func WithStoreAPIErrorHandler(h ErrorHandler) StoreAPIOption { } // NewStoreAPIController creates a default api controller -func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) Router { +func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) *StoreAPIController { controller := &StoreAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -88,7 +88,7 @@ func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetInventory - Returns pet inventories by status @@ -100,7 +100,7 @@ func (c *StoreAPIController) GetInventory(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetOrderById - Find purchase order by ID @@ -122,7 +122,7 @@ func (c *StoreAPIController) GetOrderById(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // PlaceOrder - Place an order for a pet @@ -149,5 +149,5 @@ func (c *StoreAPIController) PlaceOrder(w http.ResponseWriter, r *http.Request) return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-chi-server/go/api_store_service.go b/samples/server/petstore/go-chi-server/go/api_store_service.go index ee41bf5fdd3be..46671f7a9fd99 100644 --- a/samples/server/petstore/go-chi-server/go/api_store_service.go +++ b/samples/server/petstore/go-chi-server/go/api_store_service.go @@ -23,7 +23,7 @@ type StoreAPIService struct { } // NewStoreAPIService creates a default api service -func NewStoreAPIService() StoreAPIServicer { +func NewStoreAPIService() *StoreAPIService { return &StoreAPIService{} } diff --git a/samples/server/petstore/go-chi-server/go/api_user.go b/samples/server/petstore/go-chi-server/go/api_user.go index 9b08283dc963a..9fd0c1c5fc757 100644 --- a/samples/server/petstore/go-chi-server/go/api_user.go +++ b/samples/server/petstore/go-chi-server/go/api_user.go @@ -35,7 +35,7 @@ func WithUserAPIErrorHandler(h ErrorHandler) UserAPIOption { } // NewUserAPIController creates a default api controller -func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) Router { +func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) *UserAPIController { controller := &UserAPIController{ service: s, errorHandler: DefaultErrorHandler, @@ -118,7 +118,7 @@ func (c *UserAPIController) CreateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithArrayInput - Creates list of users with given input array @@ -143,7 +143,7 @@ func (c *UserAPIController) CreateUsersWithArrayInput(w http.ResponseWriter, r * return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // CreateUsersWithListInput - Creates list of users with given input array @@ -168,7 +168,7 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // DeleteUser - Delete user @@ -204,7 +204,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // GetUserByName - Get user by user name @@ -221,7 +221,7 @@ func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LoginUser - Logs user into the system @@ -270,7 +270,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // LogoutUser - Logs out current logged in user session @@ -282,7 +282,7 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } // UpdateUser - Updated user @@ -314,5 +314,5 @@ func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { return } // If no error, encode the body and the result code - EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) + _ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-chi-server/go/api_user_service.go b/samples/server/petstore/go-chi-server/go/api_user_service.go index d90b01762d8b8..62332a09da48c 100644 --- a/samples/server/petstore/go-chi-server/go/api_user_service.go +++ b/samples/server/petstore/go-chi-server/go/api_user_service.go @@ -23,7 +23,7 @@ type UserAPIService struct { } // NewUserAPIService creates a default api service -func NewUserAPIService() UserAPIServicer { +func NewUserAPIService() *UserAPIService { return &UserAPIService{} } diff --git a/samples/server/petstore/go-chi-server/go/error.go b/samples/server/petstore/go-chi-server/go/error.go index 82dc66e0ed850..ba23f89b83854 100644 --- a/samples/server/petstore/go-chi-server/go/error.go +++ b/samples/server/petstore/go-chi-server/go/error.go @@ -34,9 +34,9 @@ func (e *ParsingError) Unwrap() error { func (e *ParsingError) Error() string { if e.Param == "" { return e.Err.Error() - } else { - return e.Param + ": " + e.Err.Error() } + + return e.Param + ": " + e.Err.Error() } // RequiredError indicates that an error has occurred when parsing request parameters @@ -54,15 +54,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result // DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing // request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used. -func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) { - if _, ok := err.(*ParsingError); ok { +func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) { + var parsingErr *ParsingError + if ok := errors.As(err, &parsingErr); ok { // Handle parsing errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) - } else if _, ok := err.(*RequiredError); ok { - // Handle missing required errors - EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) - } else { - // Handle all other errors - EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w) + return } + + var requiredErr *RequiredError + if ok := errors.As(err, &requiredErr); ok { + // Handle missing required errors + _ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w) + return + } + + // Handle all other errors + _ = EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w) } diff --git a/samples/server/petstore/go-chi-server/go/helpers.go b/samples/server/petstore/go-chi-server/go/helpers.go index 886c0c9a17dde..027954b0c9b9b 100644 --- a/samples/server/petstore/go-chi-server/go/helpers.go +++ b/samples/server/petstore/go-chi-server/go/helpers.go @@ -61,7 +61,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err // If it is a slice we continue recursion case reflect.Slice: - for i := 0; i < value.Len(); i += 1 { + for i := 0; i < value.Len(); i++ { if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil { return err } diff --git a/samples/server/petstore/go-chi-server/go/model_colour.go b/samples/server/petstore/go-chi-server/go/model_colour.go index cb360eb0655fd..a77312b653795 100644 --- a/samples/server/petstore/go-chi-server/go/model_colour.go +++ b/samples/server/petstore/go-chi-server/go/model_colour.go @@ -49,9 +49,9 @@ func NewColourFromValue(v string) (Colour, error) { ev := Colour(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues) } diff --git a/samples/server/petstore/go-chi-server/go/model_gender.go b/samples/server/petstore/go-chi-server/go/model_gender.go index 20b8702c875ca..410b61fd08d8c 100644 --- a/samples/server/petstore/go-chi-server/go/model_gender.go +++ b/samples/server/petstore/go-chi-server/go/model_gender.go @@ -49,9 +49,9 @@ func NewGenderFromValue(v string) (Gender, error) { ev := Gender(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues) } diff --git a/samples/server/petstore/go-chi-server/go/model_species.go b/samples/server/petstore/go-chi-server/go/model_species.go index 6384f20c9487d..f236e29c48a17 100644 --- a/samples/server/petstore/go-chi-server/go/model_species.go +++ b/samples/server/petstore/go-chi-server/go/model_species.go @@ -58,9 +58,9 @@ func NewSpeciesFromValue(v string) (Species, error) { ev := Species(v) if ev.IsValid() { return ev, nil - } else { - return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues) } + + return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues) } diff --git a/samples/server/petstore/go-chi-server/go/routers.go b/samples/server/petstore/go-chi-server/go/routers.go index ef9200e0a24c0..4d662e273c58d 100644 --- a/samples/server/petstore/go-chi-server/go/routers.go +++ b/samples/server/petstore/go-chi-server/go/routers.go @@ -50,8 +50,7 @@ func NewRouter(routers ...Router) chi.Router { router.Use(middleware.Logger) for _, api := range routers { for _, route := range api.Routes() { - var handler http.Handler - handler = route.HandlerFunc + var handler http.Handler = route.HandlerFunc router.Method(route.Method, route.Pattern, handler) } } @@ -341,7 +340,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn } -// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered. +// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered. func parseQuery(rawQuery string) (url.Values, error) { return url.ParseQuery(rawQuery) } \ No newline at end of file