fix(core): normalize OAS 3.1 content media schemas#23851
Draft
erichasinternet wants to merge 1 commit into
Draft
fix(core): normalize OAS 3.1 content media schemas#23851erichasinternet wants to merge 1 commit into
erichasinternet wants to merge 1 commit into
Conversation
6 tasks
24df88b to
aa11ace
Compare
aa11ace to
5b61524
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #23095
Refs #13083, #9083
OpenAPI 3.1 allows a binary string payload to be represented with JSON Schema content keywords, for example:
OpenAPI Generator already has binary/file handling around the normalized
type: string+format: binaryshape. This PR normalizes that OAS 3.1 form before schema processing treats type-less content schemas as empty schemas.With this change, OAS 3.1
contentMediaType: application/octet-streamschemas normalize totype: stringandformat: binary. It also covers nullabletype: [string, "null"]and type-less content schemas. Schemas withcontentEncoding, non-binary media types, existing explicit formats, refs, or non-string types are left unchanged.I added focused coverage for the normalizer and multipart form parameter handling using an OAS 3.1 fixture, and ran the checklist build/sample/docs commands locally.
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)"fixes #123"present in the PR description)