You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: draft-release-notes.md
+55-53Lines changed: 55 additions & 53 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,93 +4,95 @@ What's coming up? Look at `src/oas.md` on the relevant development branch for fu
4
4
5
5
## 3.2 Updates
6
6
7
-
### Methods
7
+
### Support additional HTTP methods
8
8
9
-
-support the new `query`operation alongside get/post/put/delete/options/head/patch/trace
10
-
-under an `additionalOperations` entry, use any other methods not listed as keys using the correct capitalization. e.g. do NOT add HEAD under this, use the existing sibling `head`
9
+
-Support the new `query`method alongside the existing `get`/`post`/`put`/`delete`/`options`/`head`/`patch`/`trace`.
10
+
-Under an `additionalOperations` entry in a Path, use any other methods not listed as keys using the correct capitalization. e.g. do NOT add HEAD under this, use the existing sibling `head`.
11
11
12
-
### Tags
12
+
### Nested, multipurpose tags
13
13
14
-
-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.
14
+
-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
15
-`parent` field to point to the tag that this tag is nested under. If you use `x-tagGroups`, adjust to use a tags hierarchy.
16
16
-`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).
17
-
-a[registry](https://spec.openapis.org/registry/tag-kind/index.html) to establish conventions for values used in `kind`.
17
+
-A[registry](https://spec.openapis.org/registry/tag-kind/index.html) to establish conventions for values used in `kind`.
18
18
19
-
### Security
19
+
### Updated security schemes
20
20
21
-
-Support for OAuth2 Device Authorization flow with additional `deviceAuthorization` field in the `flows` object and for the individual flow, a new field `deviceAuthorizationUrl` alongside `tokenUrl`
22
-
-additional security scheme field: `oauth2MetadataUrl` URL for auth server metadata
23
-
-additional`deprecated` field for security schemes (indicating that the scheme may still be supported, but that it should not be used)
24
-
-ability to reference a security scheme by URI rather than needing it declared in components.
21
+
- Support for OAuth2 Device Authorization flow with additional `deviceAuthorization` field in the `flows` object and for the individual flow, a new field `deviceAuthorizationUrl` alongside `tokenUrl`.
22
+
-Additional security scheme field: `oauth2MetadataUrl` URL for auth server metadata.
23
+
-Additional`deprecated` field for security schemes (indicating that the scheme may still be supported, but that it should not be used).
24
+
-Ability to reference a security scheme by URI rather than needing it declared in components.
25
25
26
26
### Servers
27
27
28
-
-clarify that server URLs should not include fragment or query.
29
-
-support new `name` field alongside `description`, `url` and `variables`.
30
-
-formal path templating support for variable substitution in server urls.
28
+
-Clarify that server URLs should not include fragment or query.
29
+
-Support new `name` field alongside `description`, `url` and `variables`.
30
+
-Formal path templating support for variable substitution in server urls.
31
31
32
-
### Code Generation
32
+
### Better polymorphic support
33
33
34
-
-the discriminator `propertyName` can now be an optional field.
35
-
-additional`defaultMapping` field to indicate which schema to use if the `propertyName` is not set, or if the value is unrecognized.
36
-
-no change from previous versions: use `discriminator` to hint which entry in `anyOf` or `oneOf` is expected.
37
-
-no change from previous versions: use `mapping` to link the discriminator property value to the Schema name if they aren't an exact match.
38
-
- Implementations now SHOULD (rather than MAY) support templates/generics using `$dynamicRef`
34
+
-The discriminator `propertyName` can now be an optional field.
35
+
-Additional`defaultMapping` field to indicate which schema to use if the `propertyName` is not set, or if the value is unrecognized.
36
+
-No change from previous versions: use `discriminator` to hint which entry in `anyOf` or `oneOf` is expected.
37
+
-No change from previous versions: use `mapping` to link the discriminator property value to the Schema name if they aren't an exact match.
38
+
- Implementations now SHOULD (rather than MAY) support templates/generics using `$dynamicRef`.
39
39
40
40
### Reference resolution
41
41
42
-
- additional top-level `$self` to be used as a base URI for resolving references in the OpenAPI description. If not present, the existing/earlier behaviour of using the retrieval URL as a base applies.
42
+
Additional top-level `$self` to be used as a base URI for resolving references in the OpenAPI description. If not present, the existing/earlier behaviour of using the retrieval URL as a base applies.
43
43
44
-
### **ABNF** (Augmented Backus–Naur Form) formalised for path templating, server variables, and runtime expressions in the Links object.
44
+
### Path templating
45
+
46
+
**ABNF** (Augmented Backus–Naur Form) formalised for path templating, server variables, and runtime expressions in the Links object.
45
47
46
48
### Improvements for APIs using XML as a content format
47
49
48
-
- New `nodeType` field allows maping schemas to all common XML node types (elements, attributes, text, or cdata) or to nothing
49
-
-`attribute: true` deprecated in favor of `nodeType: attribute`
50
-
-`wrapped: true` deprecated in favor of `nodeType: element` (as `nodeType` defaults to `none` for arrays to preserve compatibility)
51
-
- The `xml` keyword can be used in any Schema Object
52
-
- XML namespaces can be IRIs (rather than URIs)
53
-
- Explanation and example on how to handle `null` in XML
54
-
Clarify that the root schema of an XML object should use the component name.
50
+
- New `nodeType` field allows mapping schemas to common XML node types: `element`, `attribute`, `text`, `cdata`, or `none`.
51
+
-`attribute: true` deprecated in favor of `nodeType: attribute`.
52
+
-`wrapped: true` deprecated in favor of `nodeType: element` (as `nodeType` defaults to `none` for arrays to preserve compatibility).
53
+
- The `xml` keyword can be used in any Schema Object.
54
+
- XML namespaces can be IRIs (rather than URIs).
55
+
- Explanation and example on how to handle `null` in XML.
56
+
- Clarify that the root schema of an XML object should use the component name.
55
57
56
-
### Sequential media type
58
+
### Support for sequential media types
57
59
58
-
- Support for sequential mediatypes such as `text/event-stream` for server-sent events (SSE) and `application/jsonl`, `application/json-seq` and others for sequential data.
60
+
- Support for sequential media types such as `text/event-stream` for server-sent events (SSE) and `application/jsonl`, `application/json-seq` and others for sequential data.
59
61
- Responses can be a repeating data structure, and are treated as if they are an array of schema objects.
60
-
- Use `itemSchema` in a mediatype entry to describe each item
61
-
- Related: a new media types registry is published to give more context for each of the media types
62
-
- Also a "Complete vs Streaming Content" section for guidance on streaming binary payloads
62
+
- Use `itemSchema` in a mediatype entry to describe each item.
63
+
- Related: a new media types registry is published to give more context for each of the media types.
64
+
- Also a "Complete vs Streaming Content" section for guidance on streaming binary payloads.
63
65
64
-
### Parameters and Headers
66
+
### Parameter and header changes
65
67
66
-
- additional parameter location `querystring`, to allow parsing the entire query string as a single field similar to the way a request body is handled, using the `content` field. Useful for complex or unconventional query data. Mutually exclusive with the `query` field.
67
-
- parameters can therefore be `in` the `querystring` as an alternative to the existing `header`, `cookie`, `query` and `path` values.
68
-
-`allowReserved` field is now permitted on parameters and headers with any value of `in` (however this many not be a Good Idea (TM) in some scenarios)
68
+
- Additional parameter location `querystring`, to allow parsing the entire query string as a single field similar to the way a request body is handled, using the `content` field. Useful for complex or unconventional query data. Mutually exclusive with the `query` field.
69
+
- Parameters can therefore be `in` the `querystring` as an alternative to the existing `header`, `cookie`, `query` and `path` values.
70
+
-`allowReserved` field is now permitted on headers and on parameters with any value of `in` (however this many not be a Good Idea (TM) in some scenarios).
71
+
- Remove incorrect mention of Reference Object in the header `schema` field. The JSONSchema ref would be the correct thing to use in this context.
69
72
70
-
### Responses
73
+
### Flexible response metadata fields
71
74
72
-
-`description` field for responses are now optional (they used to be required but they could be empty)
73
-
-additional`summary` field for responses, useful when displaying responses in a list context
75
+
-`description` field for responses are now optional (they used to be required but they could be empty).
76
+
-Additional`summary` field for responses, useful when displaying responses in a list context.
74
77
75
-
### Minor edits that are worth a mention:
78
+
### Minor edits that are worth a mention
76
79
77
-
- Streamlined to YAML examples (unless something specific to another format) to try to make it easier to follow
78
-
-`allowReserved` is now supported for any parameter or header, regardless of `in` location
80
+
- Streamlined to YAML examples (unless something specific to another format) to try to make it easier to follow.
79
81
80
-
### In-place updates to existing specifications and standards that we reference:
82
+
### In-place updates to existing specifications and standards that we reference
81
83
82
-
- Update to https://www.ietf.org/archive/id/draft-bhutton-json-schema-01.html of JSON Schema Specification
83
-
- Update to https://www.ietf.org/archive/id/draft-bhutton-json-schema-validation-01.html of JSON Schema Validation Specification
84
-
- Use [RFC8529](https://tools.ietf.org/html/rfc8259) for JSON
85
-
- Use [RFC9110](https://tools.ietf.org/html/rfc9110) for HTTP
84
+
- Update to https://www.ietf.org/archive/id/draft-bhutton-json-schema-01.html of JSON Schema Specification.
85
+
- Update to https://www.ietf.org/archive/id/draft-bhutton-json-schema-validation-01.html of JSON Schema Validation Specification.
86
+
- Use [RFC8529](https://tools.ietf.org/html/rfc8259) for JSON.
87
+
- Use [RFC9110](https://tools.ietf.org/html/rfc9110) for HTTP.
86
88
87
-
### Editorial changes:
89
+
### Editorial changes
88
90
89
-
- Extensive additions around media types, encoding, sequential media types, SSE examples, working with binary data,
91
+
- Extensive additions around media types, encoding, sequential media types, SSE examples, working with binary data.
90
92
- Clarification that Example Objects can be used in Header Objects.
91
93
- Better explanation and examples for using Encoding.
92
-
- Clarify that Request Body Objects need to specify at least one media type to be meaningful
93
-
- How to more clearly indicate that responses will not have a body
94
+
- Clarify that Request Body Objects need to specify at least one media type to be meaningful.
95
+
- How to more clearly indicate that responses will not have a body.
0 commit comments