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 30e4cfba7cba..448eee3ff760 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 @@ -183,6 +183,10 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re {{^isDateTime}} {{^isEnumOrRef}} {{paramName}}Param := {{#routers}}{{#mux}}params["{{baseName}}"]{{/mux}}{{#chi}}chi.URLParam(r, "{{baseName}}"){{/chi}}{{/routers}} + if {{paramName}}Param == "" { + c.errorHandler(w, r, &RequiredError{"{{baseName}}"}, nil) + return + } {{/isEnumOrRef}} {{#isEnumOrRef}} {{paramName}}Param, err := New{{dataType}}FromValue({{#routers}}{{#mux}}params["{{baseName}}"]{{/mux}}{{#chi}}chi.URLParam(r, "{{baseName}}"){{/chi}}{{/routers}}) 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 7b131249078c..3a2d0a3032b9 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 @@ -76,6 +76,10 @@ func (c *StoreAPIController) Routes() Routes { // DeleteOrder - Delete purchase order by ID func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) { orderIdParam := chi.URLParam(r, "orderId") + if orderIdParam == "" { + c.errorHandler(w, r, &RequiredError{"orderId"}, nil) + return + } result, err := c.service.DeleteOrder(r.Context(), orderIdParam) // If an error occurred, encode the error with the status code if err != nil { 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 88a9e8643e22..405b26523d70 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 @@ -174,6 +174,10 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { query := r.URL.Query() usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } booleanTestParam, err := parseBoolParameter( query.Get("boolean_test"), WithParse[bool](parseBool), @@ -195,6 +199,10 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { // GetUserByName - Get user by user name func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request) { usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } result, err := c.service.GetUserByName(r.Context(), usernameParam) // If an error occurred, encode the error with the status code if err != nil { @@ -275,6 +283,10 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { // UpdateUser - Updated user func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } userParam := User{} d := json.NewDecoder(r.Body) d.DisallowUnknownFields() 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 df87b17defa6..a9cf01dd74ef 100644 --- a/samples/server/petstore/go-api-server/go/api_store.go +++ b/samples/server/petstore/go-api-server/go/api_store.go @@ -77,6 +77,10 @@ func (c *StoreAPIController) Routes() Routes { func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) orderIdParam := params["orderId"] + if orderIdParam == "" { + c.errorHandler(w, r, &RequiredError{"orderId"}, nil) + return + } result, err := c.service.DeleteOrder(r.Context(), orderIdParam) // If an error occurred, encode the error with the status code if err != nil { 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 966c5e6ceb69..04e30486e0ba 100644 --- a/samples/server/petstore/go-api-server/go/api_user.go +++ b/samples/server/petstore/go-api-server/go/api_user.go @@ -175,6 +175,10 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) query := r.URL.Query() usernameParam := params["username"] + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } booleanTestParam, err := parseBoolParameter( query.Get("boolean_test"), WithParse[bool](parseBool), @@ -197,6 +201,10 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) usernameParam := params["username"] + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } result, err := c.service.GetUserByName(r.Context(), usernameParam) // If an error occurred, encode the error with the status code if err != nil { @@ -246,6 +254,10 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) usernameParam := params["username"] + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } userParam := User{} d := json.NewDecoder(r.Body) d.DisallowUnknownFields() 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 7b131249078c..3a2d0a3032b9 100644 --- a/samples/server/petstore/go-chi-server/go/api_store.go +++ b/samples/server/petstore/go-chi-server/go/api_store.go @@ -76,6 +76,10 @@ func (c *StoreAPIController) Routes() Routes { // DeleteOrder - Delete purchase order by ID func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request) { orderIdParam := chi.URLParam(r, "orderId") + if orderIdParam == "" { + c.errorHandler(w, r, &RequiredError{"orderId"}, nil) + return + } result, err := c.service.DeleteOrder(r.Context(), orderIdParam) // If an error occurred, encode the error with the status code if err != nil { 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 6401d90e4c41..6dc16a801e42 100644 --- a/samples/server/petstore/go-chi-server/go/api_user.go +++ b/samples/server/petstore/go-chi-server/go/api_user.go @@ -174,6 +174,10 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { query := r.URL.Query() usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } booleanTestParam, err := parseBoolParameter( query.Get("boolean_test"), WithParse[bool](parseBool), @@ -195,6 +199,10 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) { // GetUserByName - Get user by user name func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request) { usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } result, err := c.service.GetUserByName(r.Context(), usernameParam) // If an error occurred, encode the error with the status code if err != nil { @@ -243,6 +251,10 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) { // UpdateUser - Updated user func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) { usernameParam := chi.URLParam(r, "username") + if usernameParam == "" { + c.errorHandler(w, r, &RequiredError{"username"}, nil) + return + } userParam := User{} d := json.NewDecoder(r.Body) d.DisallowUnknownFields()