Skip to content

Conversation

ralfhandl-repo-access-token[bot]
Copy link

Merge relevant changes from main into dev.

handrews and others added 30 commits July 18, 2025 14:57
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.
The Set-Cookie response header breaks the normal rules for
headers with multiple values and requires special handling.
Co-authored-by: Phil Sturgeon <[email protected]>
Also remove a stray line from an example that didn't really hurt
but wasn't needed and could have been confusing.
Co-authored-by: Lorna Jane Mitchell <[email protected]>
Explain when Set-Cookie workaround is needed

Also remove a stray line from an example that didn't really hurt
but wasn't needed and could have been confusing.
v3.2: Move URI/URL resolution sections, *UNCHANGED*, under OAD Structure
v3.2: Editorial improvements to Appendix E (Percent-Encoding)
v3.2: Clarify JSON-compatible YAML
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.
Co-authored-by: Ralf Handl <[email protected]>
Add the Media Type Object to the Components Object,
and allow a Reference Object anywhere it is allowed.

To ensure that re-usable Objects can be documented clearly, add
a `description` field.
Co-authored-by: Ralf Handl <[email protected]>
Co-authored-by: Ralf Handl <[email protected]>
Co-authored-by: Ralf Handl <[email protected]>
This adds support for all `multipart` media types that do not
have named parts, including support for streaming such media types.
Note that `multipart/mixed` defines the basic processing rules
for all `multipart` types, and implementations that encounter
unrecognized `multipart` subtypes are required to process them
as `multipart/mixed`.  Therefore support for `multipart/mixed`
addresses all other subtypes to some degree.

This builds on the recent support for sequential media types:

* `multipart/mixed` and similar meet the definition for
  a sequential media type, requiring it to be modeled as
  an array.  This does use an expansive definition of
  "repeating the same structure", where the structure is
  literally any content with a media type.
* As a sequential media type, it also supports `itemSchema`
* Adding a parallel `itemEncoding` is the obvious solution to
  `multipart/mixed` streams requiring an Encoding Object
* We have regularly received requests to support truly mixed
  `multipart/mixed` payloads, and previously claimed such support
  from 3.0.0 onwards, without actually supporting it.
  Adding `prefixEncoding` along with `itemEncoding` supports this
  use case with a clear parallel to `prefixItems`, which is the
  schema construct needed to support this case.
* There is no need for a `prefixSchema` field because the streaming
  use case requires a repetition of the same schema for each item.
  Therefore all mixed use cases can use `schema` and `prefixItems`
It's not an error if you have more encoding objects than instances.
Co-authored-by: Lorna Jane Mitchell <[email protected]>
ralfhandl and others added 26 commits September 16, 2025 12:54
v3.1-dev: update from dev
v3.2-dev: update from dev
UTF-8 is not a character set; it is an encoding. The character set we are
using is Unicode (the full range of integers from \x00 to \x10FFFF), so revert
to using the correct terminology.

ref.: https://www.rfc-editor.org/rfc/rfc6570#section-2.1 uses "any Unicode
character except..."
updates for the "xml" and "example" keywords
…ments

fix character terminology in ABNF comments
Official 3.1.2 release branch
Official 3.2.0 release branch
main: Fix broken links in 3.2.0.md
main: adjust reviewers in respec workflow
- create sync branch from dev
- merge main into sync branch
- restore src/* and tests/* from dev
- commit & push
- create PR if necessary
@ralfhandl ralfhandl merged commit 21c1201 into dev Oct 4, 2025
3 of 4 checks passed
@ralfhandl ralfhandl deleted the dev-sync-with-main branch October 4, 2025 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants