-
Notifications
You must be signed in to change notification settings - Fork 9.1k
v3.2: Allow Parameter/Header examples w/content #4802
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
base: v3.2-dev
Are you sure you want to change the base?
Conversation
Parameter and Header serialization is complex, particularly when using the `content` field to use a Media Type Object. In such scenarios, the serialization occurs in two steps: The first step is to serialize the data to the media type, which can be captured by the `examples` field of the Media Type Object. The second is the encoding/escaping of the media type document for use in a URI, HTTP header, or other location with its own rules. Sometimes the part needing illustration with an example is at one level, sometimes at another, and sometimes it is helpful to show both. For simplicity, the "data" examples are always treated as the overall input data, so they would be the same at both levels. This is also because it is not always possible to show each step, particularly when there are binary serializations. This allows showing either step (or both steps) with both data and serialization, depending on what makes sense for the use case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think lines 2454 and 2455 should be removed, they have moved up to common fields.
@ralfhandl good catch! There should be an award for catching things that aren't actually part of the diff, that's advance reviewing skills there! |
src/schemas/validation/schema.yaml
Outdated
@@ -733,6 +733,9 @@ $defs: | |||
type: boolean | |||
$ref: '#/$defs/examples' | |||
$ref: '#/$defs/specification-extensions' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line seems to be implied by the second allOf entry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ralfhandl thanks, fixed!
Let's only explain the validation requirements in one place. Also, header example fields were supposed to be moved rather than duplicatd but I missed the removal of the old ones.
Note: This replaces PR #4648, except for the examples which are in PR #4801.
Parameter and Header serialization is complex, particularly when using the
content
field to use a Media Type Object.In such scenarios, the serialization occurs in two steps: The first step is to serialize the data to the media type, which can be captured by the
examples
field of the Media Type Object.The second is the encoding/escaping of the media type document for use in a URI, HTTP header, or other location with its own rules.
Sometimes the part needing illustration with an example is at one level, sometimes at another, and sometimes it is helpful to show both.
For simplicity, the "data" examples are always treated as the overall input data, so they would be the same at both levels. This is also because it is not always possible to show each step, particularly when there are binary serializations. This allows showing either step (or both steps) with both data and serialization, depending on what makes sense for the use case.