-
-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[Go] skip validator import if oneOf discriminator lookup is enabled #20497
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
The Go generator produces invalid code for
oneOf
models that have discriminators whenuseOneOfDiscriminatorLookup
is set totrue
. In this case, the model importsgopkg.in/validator.v2
but 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
AbstractGoCodegen
toGoClientCodegen
; this is a safe change because theoneOf
validation code only exists in the Go client generator templates, not in the other Go generators.This also updates the Go generator so that, when
useOneOfDiscriminator
is set tofalse
and thegopkg.in/validator.v2
is used by a model, the validation library is included in the generatedgo.mod
andgo.sum
files.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.0
minor release - breaking changes with fallbacks),8.0.x
(breaking changes without fallbacks)@wing328