OpenAPIv3: count different validation rules as different types #3640
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replicates an issue we're seeing in the OpenAPIv3 generator, where if two request bodies are structurally similar (i.e. same primitive types), but not identical (in this example both have a single string attribute with the same name, but with different enum validations), the request body for those two methods points at the same type schema.
There's a (previously-failing) test, where:
my_attr
), but not identical (they are different enums)The resulting OpenAPIv3 schema generates a single
MethodEnumRequestBody
type, and uses it for therequestBody
type of both methods.This is incorrect, since the two methods use a different enum!
The fix here is to update the
hashAttribute
method to hash the.Validation
of the attribute, if it is set 🎉