Skip to content

Commit a829744

Browse files
committed
Add multipart media types section, tidy up from other feedback, add recent minor additions
1 parent 5f2ccbb commit a829744

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

draft-release-notes.md

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@ A summary of the biggest changes.
1212

1313
#### Nested, multipurpose tags
1414

15-
- New `summary` field to allow short descriptions, used when displaying lists of tags. If you use the `x-displayName` extension, you can now use `summary` instead.
15+
Tags get an upgrade, with some new fields to make them more useful and reflect some of the features that need extensions to achieve today:
16+
17+
- `summary` field to allow short descriptions, used when displaying lists of tags. If you use the `x-displayName` extension, you can now use `summary` instead.
1618
- `parent` field to point to the tag that this tag is nested under. If you use `x-tagGroups`, adjust to use a tags hierarchy.
17-
- `kind` to allow multiple categories of tag. The `kind` field is free-form text, however there are some expected/conventional values such as `nav` (in line with the most common current usage as grouping for documentation output).
19+
- `kind` field to allow a tag to be classified into a category such as navigation, or audience.
20+
The `kind` field is free-form text, however there are some expected/conventional values such as `nav` (in line with the most common current usage as grouping for documentation output).
1821
- A [registry](https://spec.openapis.org/registry/tag-kind/index.html) to establish conventions for values used in `kind`.
1922

2023
#### Support additional HTTP methods
@@ -35,6 +38,8 @@ A summary of the biggest changes.
3538

3639
OpenAPI specification v3.2 brings consistent, modular, and extensible media type and parameter support, while also expanding the set of media types supported in response to both emerging and legacy use cases. In addition, the ambiguity regarding how to present examples in a variety of complex scenarios is reduced.
3740

41+
There is also a new Media Types Registry, to provide further resources for working with different media types.
42+
3843
#### Support for sequential media types
3944

4045
- Support for sequential media types such as `text/event-stream` for server-sent events (SSE) and `multipart/mixed`, `application/jsonl`, `application/json-seq` and others for sequential data.
@@ -53,7 +58,15 @@ OpenAPI specification v3.2 brings consistent, modular, and extensible media type
5358

5459
#### Multipart media types
5560

56-
**TODO** this section with the additional items fields and examples.
61+
Multipart media types are much better supported in OpenAPI 3.2.
62+
63+
- New `itemSchema` field, for the schema that describes each of the items in a sequential media type.
64+
These sequential types may not be received or parsed in one go, so the `itemSchema` field supports ongoing parsing.
65+
- New fields `prefixEncoding` and `itemEncoding` can be used instead of `encoding` for multipart media types.
66+
- Use `prefixEncoding` with an array of positional encoding information where the position of each item in the content is known.
67+
- The `itemEncoding` is a single encoding entry that is used for information about multiple items.
68+
- The specification also contains examples of sequential JSON and Server-Sent events that show these fields in use.
69+
- Nested content types are supported to at least one level of nesting.
5770

5871
#### Improvements for APIs using XML as a content format
5972

@@ -65,7 +78,7 @@ OpenAPI specification v3.2 brings consistent, modular, and extensible media type
6578
- Explanation and examples for many use cases including handling `null`, handling arrays, replacing the name, and handling ordered elements.
6679
- Clarify that the root schema of an XML object should use the component name.
6780

68-
#### Show examples in both structured and serialized forms
81+
#### Describe examples in both structured and serialized forms
6982

7083
- The Example Object (used in `examples` fields) gets two new fields: `dataValue` and `serializedValue`.
7184
- `dataValue` describes the example in structured format.
@@ -189,7 +202,6 @@ Next time you're wondering if you can do `/api/v{version}/users/{user-id}` in a
189202

190203
#### Minor updates that are worth a mention
191204

192-
- Streamlined to YAML examples (unless something specific to another format) to try to make it easier to follow.
193205
- Non-Schema examples no longer "override" Schema examples; tools are free to use the most appropriate example for any given use case.
194206
- A new key `mediaTypes` is supported under `components` to support re-use of Media Type Objects.
195207

@@ -203,20 +215,24 @@ Next time you're wondering if you can do `/api/v{version}/users/{user-id}` in a
203215
#### Editorial changes
204216

205217
- Extensive additions around media types, encoding, sequential media types, SSE examples, working with binary data.
206-
- Better explanation and examples for using Encoding.
218+
- Streamlined to YAML examples (unless something specific to another format) to try to make it easier to follow.
219+
- Better explanation and examples for using Encoding and Serialization, and a note not to apply percent-encoding to headers.
207220
- Clarify that Request Body Objects need to specify at least one media type to be meaningful.
208221
- How to more clearly indicate that responses will not have a body.
209222
- Explanation and examples of headers including `Link` and `Set-Cookie`.
210-
- No change but extensive additional notes on parsing and serializing JSON and non-JSON data formats.
211-
Particularly if you are building OpenAPI tooling, this section gives much better guidance on some of those tricky edge cases.
223+
- Detailed explanation of percent-encoding and -decoding, updated examples and references to match, including the Style Examples table.
224+
- Extensive additional notes on parsing and serializing JSON and non-JSON data formats.
225+
226+
Particularly if you are building OpenAPI tooling, these sections give much better guidance on some of those tricky edge cases.
212227

213228
## 3.1 Updates
214229

215230
Version 3.1.2 has no material changes but does contain editorial fixes.
216231

217-
- Better explanation and examples for using Encoding.
218-
- Clarify that Request Body Objects need to specify at least one media type to be meaningful
219-
- How to more clearly indicate that no response will have a body
232+
- Detailed explanation of percent-encoding and -decoding, updated examples and references to match, including the Style Examples table.
233+
- Better explanation and examples for using Encoding and Serialization, and a note not to apply percent-encoding to headers.
234+
- Clarify that Request Body Objects need to specify at least one media type to be meaningful.
235+
- How to more clearly indicate that no response will have a body.
220236
- How to handle `null` in XML as an advisory note; since the functionality cannot be changed it is implementation-defined for 3.1 tooling.
221237
- Clarify that the root schema of an XML object should use the component name.
222238

0 commit comments

Comments
 (0)