-
-
Notifications
You must be signed in to change notification settings - Fork 7.3k
[Go] skip validator import if oneOf discriminator lookup is enabled #20497
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
a3bb03c to
395cc51
Compare
|
i did a test locally and the fix simply rearranged the import --- a/model_object.go
+++ b/model_object.go
@@ -12,8 +12,8 @@ package openapi
import (
"encoding/json"
- "gopkg.in/validator.v2"
"fmt"
+ "gopkg.in/validator.v2"
)
// Object - struct for Object
and here is the error message I still got after applying the fix: |
|
This fix specifically covers the case where the I'm happy to fix the missing dependency in |
|
When post processing the models, what about setting additional properties (e.g. importValidatorV2), which can be accessed by go.mod.mustache? |
|
confirmed no longer seeing the error after your fix. |
…penAPITools#20497) * move validator import into GoClientCodegen * add new example for oneof discriminator lookup * regenerate samples * add validator.v2 to go.mod if it is imported * regenerate samples
…penAPITools#20497) * move validator import into GoClientCodegen * add new example for oneof discriminator lookup * regenerate samples * add validator.v2 to go.mod if it is imported * regenerate samples
The Go generator produces invalid code for
oneOfmodels that have discriminators whenuseOneOfDiscriminatorLookupis set totrue. In this case, the model importsgopkg.in/validator.v2but does not use it because validation is skipped when discriminator lookup is enabled.This updates the Go generator so that the validator import is skipped if discriminator lookup is enabled. In order to make this change I had to move the validator import from
AbstractGoCodegentoGoClientCodegen; this is a safe change because theoneOfvalidation code only exists in the Go client generator templates, not in the other Go generators.This also updates the Go generator so that, when
useOneOfDiscriminatoris set tofalseand thegopkg.in/validator.v2is used by a model, the validation library is included in the generatedgo.modandgo.sumfiles.PR checklist
Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master(upcoming7.x.0minor release - breaking changes with fallbacks),8.0.x(breaking changes without fallbacks)@wing328