Skip to content

Commit 5f38d1d

Browse files
authored
Merge pull request #4959 from karenetheridge/ether/v3.2-spec-markup
2 parents 153c4ca + 259ea07 commit 5f38d1d

File tree

1 file changed

+96
-78
lines changed

1 file changed

+96
-78
lines changed

src/oas.md

Lines changed: 96 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -766,8 +766,8 @@ See [Appendix E](#appendix-e-percent-encoding-and-form-media-types) for a detail
766766
There are five possible parameter locations specified by the `in` field:
767767

768768
* path - Used together with [Path Templating](#path-templating), where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`, the path parameter is `itemId`.
769-
* query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`; MUST NOT appear in the same operation as an `in: "querystring"` parameter.
770-
* querystring - A parameter that treats the entire URL query string as a value which MUST be specified using the `content` field, most often with media type `application/x-www-form-urlencoded` using [Encoding Objects](#encoding-object) in the same way as with request bodies of that media type; MUST NOT appear more than once, and MUST NOT appear in the same operation as any `in: "query"` parameters.
769+
* query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`; MUST NOT appear in the same operation (or in the operation's path-item) as an `in: "querystring"` parameter.
770+
* querystring - A parameter that treats the entire URL query string as a value which MUST be specified using the `content` field, most often with media type `application/x-www-form-urlencoded` using [Encoding Objects](#encoding-object) in the same way as with request bodies of that media type; MUST NOT appear more than once, and MUST NOT appear in the same operation (or in the operation's path-item) as any `in: "query"` parameters.
771771
* header - Custom headers that are expected as part of the request. Note that [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#section-5.1) states header names are case-insensitive.
772772
* cookie - Used to pass a specific cookie value to the API.
773773

@@ -833,18 +833,18 @@ For use with `in: "querystring"` and `application/x-www-form-urlencoded`, see [E
833833

834834
#### Style Values
835835

836-
In order to support common ways of serializing simple parameters, a set of `style` values are defined.
836+
In order to support common ways of serializing simple parameters, a set of `style` values are defined. Combinations not represented in this table are not permitted.
837837

838838
| `style` | [`type`](#data-types) | `in` | Comments |
839839
| ---- | ---- | ---- | ---- |
840-
| matrix | `primitive`, `array`, `object` | `path` | Path-style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.7) |
841-
| label | `primitive`, `array`, `object` | `path` | Label style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.5) |
842-
| simple | `primitive`, `array`, `object` | `path`, `header` | Simple style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.2). This option replaces `collectionFormat` with a `csv` value from OpenAPI 2.0. |
843-
| form | `primitive`, `array`, `object` | `query`, `cookie` | Form style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.8). This option replaces `collectionFormat` with a `csv` (when `explode` is false) or `multi` (when `explode` is true) value from OpenAPI 2.0. |
844-
| spaceDelimited | `array`, `object` | `query` | Space separated array values or object properties and values. This option replaces `collectionFormat` equal to `ssv` from OpenAPI 2.0. |
845-
| pipeDelimited | `array`, `object` | `query` | Pipe separated array values or object properties and values. This option replaces `collectionFormat` equal to `pipes` from OpenAPI 2.0. |
846-
| deepObject | `object` | `query` | Allows objects with scalar properties to be represented using form parameters. The representation of array or object properties is not defined (but see [Extending Support for Querystring Formats](#extending-support-for-querystring-formats) for alternatives). |
847-
| cookie | `primitive`, `array`, `object` | `cookie` | Analogous to `form`, but following [[RFC6265]] `Cookie` syntax rules, meaning that name-value pairs are separated by a semicolon followed by a single space (e.g. `n1=v1; n2=v2`), and no percent-encoding or other escaping is applied; data values that require any sort of escaping MUST be provided in escaped form. |
840+
| `matrix` | primitive, `array`, `object` | `path` | Path-style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.7) |
841+
| `label` | primitive, `array`, `object` | `path` | Label style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.5) |
842+
| `simple` | primitive, `array`, `object` | `path`, `header` | Simple style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.2). This option replaces `collectionFormat` with a `csv` value from OpenAPI 2.0. |
843+
| `form` | primitive, `array`, `object` | `query`, `cookie` | Form style parameters defined by [RFC6570](https://tools.ietf.org/html/rfc6570#section-3.2.8). This option replaces `collectionFormat` with a `csv` (when `explode` is false) or `multi` (when `explode` is true) value from OpenAPI 2.0. |
844+
| `spaceDelimited` | `array`, `object` | `query` | Space separated array values or object properties and values. This option replaces `collectionFormat` equal to `ssv` from OpenAPI 2.0. |
845+
| `pipeDelimited` | `array`, `object` | `query` | Pipe separated array values or object properties and values. This option replaces `collectionFormat` equal to `pipes` from OpenAPI 2.0. |
846+
| `deepObject` | `object` | `query` | Allows objects with scalar properties to be represented using form parameters. The representation of array or object properties is not defined (but see [Extending Support for Querystring Formats](#extending-support-for-querystring-formats) for alternatives). |
847+
| `cookie` | primitive, `array`, `object` | `cookie` | Analogous to `form`, but following [[RFC6265]] `Cookie` syntax rules, meaning that name-value pairs are separated by a semicolon followed by a single space (e.g. `n1=v1; n2=v2`), and no percent-encoding or other escaping is applied; data values that require any sort of escaping MUST be provided in escaped form. |
848848

849849
#### URL Percent-Encoding
850850

@@ -956,7 +956,9 @@ schema:
956956
style: simple
957957
examples:
958958
Tokens:
959-
dataValue: [12345678, 90099]
959+
dataValue:
960+
- 12345678
961+
- 90099
960962
serializedValue: "12345678,90099"
961963
```
962964

@@ -982,10 +984,9 @@ examples:
982984
to "%2C" in the data, as it is forbidden in
983985
cookie values. However, the exclamation point (!)
984986
is legal in cookies, so it can be left unencoded.
985-
dataValue: {
986-
"greeting": "Hello%2C world!",
987-
"code": 42
988-
}
987+
dataValue:
988+
greeting: Hello%2C world!
989+
code: 42
989990
serializedValue: "greeting=Hello%2C world!; code=42"
990991
```
991992
@@ -1004,7 +1005,7 @@ examples:
10041005
pre-percent-encoded. This results in all non-URL-safe
10051006
characters, rather than just the one non-cookie-safe
10061007
character, getting percent-encoded.
1007-
dataValue: "Hello, world!"
1008+
dataValue: Hello, world!
10081009
serializedValue: "greeting=Hello%2C%20world%21"
10091010
```
10101011

@@ -1044,7 +1045,9 @@ style: form
10441045
explode: true
10451046
examples:
10461047
ObjectList:
1047-
dataValue: ["one thing", "another thing"]
1048+
dataValue:
1049+
- one thing
1050+
- another thing
10481051
serializedValue: "thing=one%20thing&thing=another%20thing"
10491052
```
10501053

@@ -1060,10 +1063,9 @@ schema:
10601063
style: form
10611064
examples:
10621065
Pagination:
1063-
dataValue: {
1064-
"page": 4,
1065-
"pageSize": 50
1066-
}
1066+
dataValue:
1067+
page: 4
1068+
pageSize: 50
10671069
serializeValue: page=4&pageSize=50
10681070
```
10691071
@@ -1085,16 +1087,14 @@ content:
10851087
long:
10861088
type: number
10871089
examples:
1088-
dataValue: {
1089-
"lat": 10,
1090-
"long": 60
1091-
}
1090+
dataValue:
1091+
lat: 10
1092+
long: 60
10921093
serializedValue: '{"lat":10,"long":60}'
10931094
examples:
1094-
dataValue: {
1095-
"lat": 10,
1096-
"long": 60
1097-
}
1095+
dataValue:
1096+
lat: 10
1097+
long: 60
10981098
serializedValue: coordinates=%7B%22lat%22%3A10%2C%22long%22%3A60%7D
10991099
```
11001100

@@ -1152,17 +1152,19 @@ content:
11521152
examples:
11531153
TwoNoFlag:
11541154
description: Serialize with minimized whitespace
1155-
dataValue: {
1156-
"numbers": [1, 2],
1157-
"flag": null
1158-
}
1155+
dataValue:
1156+
numbers:
1157+
- 1
1158+
- 2
1159+
flag: null
11591160
serializedValue: '{"numbers":[1,2],"flag":null}'
11601161
examples:
11611162
TwoNoFlag:
1162-
dataValue: {
1163-
"numbers": [1, 2],
1164-
"flag": null
1165-
}
1163+
dataValue:
1164+
numbers:
1165+
- 1
1166+
- 2
1167+
flag: null
11661168
serializedValue: "%7B%22numbers%22%3A%5B1%2C2%5D%2C%22flag%22%3Anull%7D"
11671169
```
11681170

@@ -2426,10 +2428,9 @@ content:
24262428
examples:
24272429
noRating:
24282430
summary: A not-yet-rated work
2429-
dataValue: {
2430-
"author": "A. Writer",
2431-
"title": "The Newest Book"
2432-
}
2431+
dataValue:
2432+
author: A. Writer
2433+
title: The Newest Book
24332434
withRating:
24342435
summary: A work with an average rating of 4.5 stars
24352436
dataValue:
@@ -3912,7 +3913,7 @@ application/xml:
39123913
examples:
39133914
pets:
39143915
dataValue:
3915-
animals: "dog, cat, hamster"
3916+
animals: dog, cat, hamster
39163917
serializedValue: |
39173918
<document>
39183919
<animals>dog, cat, hamster</animals>
@@ -3935,7 +3936,10 @@ application/xml:
39353936
examples:
39363937
pets:
39373938
dataValue:
3938-
animals: [dog, cat, hamster]
3939+
animals:
3940+
- dog
3941+
- cat
3942+
- hamster
39393943
externalValue: ./examples/pets.xml
39403944
```
39413945

@@ -3965,7 +3969,10 @@ application/xml:
39653969
examples:
39663970
pets:
39673971
dataValue:
3968-
animals: [dog, cat, hamster]
3972+
animals:
3973+
- dog
3974+
- cat
3975+
- hamster
39693976
externalValue: ./examples/pets.xml
39703977
```
39713978

@@ -4041,7 +4048,10 @@ application/xml:
40414048
examples:
40424049
pets:
40434050
dataValue:
4044-
animals: [dog, cat, hamster]
4051+
animals:
4052+
- dog
4053+
- cat
4054+
- hamster
40454055
externalValue: ./examples/pets.xml
40464056
```
40474057

@@ -4075,7 +4085,10 @@ application/xml:
40754085
examples:
40764086
pets:
40774087
dataValue:
4078-
animals: [dog, cat, hamster]
4088+
animals:
4089+
- dog
4090+
- cat
4091+
- hamster
40794092
externalValue: ./examples/pets.xml
40804093
```
40814094

@@ -4107,7 +4120,10 @@ application/xml:
41074120
examples:
41084121
pets:
41094122
dataValue:
4110-
animals: [dog, cat, hamster]
4123+
animals:
4124+
- dog
4125+
- cat
4126+
- hamster
41114127
externalValue: ./examples/pets.xml
41124128
```
41134129

@@ -4143,7 +4159,10 @@ application/xml:
41434159
examples:
41444160
pets:
41454161
dataValue:
4146-
animals: [dog, cat, hamster]
4162+
animals:
4163+
- dog
4164+
- cat
4165+
- hamster
41474166
externalValue: ./examples/pets.xml
41484167
```
41494168

@@ -4180,7 +4199,10 @@ application/xml:
41804199
examples:
41814200
pets:
41824201
dataValue:
4183-
animals: [dog, cat, hamster]
4202+
animals:
4203+
- dog
4204+
- cat
4205+
- hamster
41844206
externalValue: ./examples/pets.xml
41854207
```
41864208

@@ -4215,7 +4237,10 @@ application/xml:
42154237
examples:
42164238
pets:
42174239
dataValue:
4218-
animals: [dog, cat, hamster]
4240+
animals:
4241+
- dog
4242+
- cat
4243+
- hamster
42194244
externalValue: ./examples/pets.xml
42204245
```
42214246

@@ -4323,9 +4348,8 @@ paths:
43234348
$ref: "#/components/schemas/Documentation"
43244349
examples:
43254350
stored:
4326-
dataValue: {
4327-
"content": "<html><head><title>Awesome Docs</title></head><body></body><html>"
4328-
}
4351+
dataValue:
4352+
content: <html><head><title>Awesome Docs</title></head><body></body><html>
43294353
externalValue: ./examples/stored.xml
43304354
put:
43314355
requestBody:
@@ -4339,9 +4363,8 @@ paths:
43394363
$ref: "#/components/schemas/Documentation"
43404364
examples:
43414365
updated:
4342-
dataValue: {
4343-
"content": "<html><head><title>Awesome Docs</title></head><body></body><html>"
4344-
}
4366+
dataValue:
4367+
content: <html><head><title>Awesome Docs</title></head><body></body><html>
43454368
externalValue: ./examples/updated.xml
43464369
responses:
43474370
"201": {}
@@ -4418,12 +4441,10 @@ application/xml:
44184441
- "null"
44194442
examples:
44204443
OneTwoThree:
4421-
dataValue: [
4422-
"Some text",
4423-
{
4424-
"unit": "cubits"
4425-
"value": 42
4426-
},
4444+
dataValue:
4445+
- Some text
4446+
- unit: cubits
4447+
value: 42
44274448
null
44284449
]
44294450
externalValue: ./examples/OneTwoThree.xml
@@ -4460,11 +4481,10 @@ application/xml:
44604481
type: string
44614482
examples:
44624483
Report:
4463-
dataValue: [
4464-
"Some preamble text.",
4465-
42,
4466-
"Some postamble text."
4467-
]
4484+
dataValue:
4485+
- Some preamble text.
4486+
- 42
4487+
- Some postamble text.
44684488
externalValue: ./examples/Report.xml
44694489
```
44704490

@@ -4509,18 +4529,16 @@ application/xml:
45094529
- "null"
45104530
examples:
45114531
productWithNulls:
4512-
dataValue: {
4513-
"count": null,
4514-
"description": "Thing",
4515-
"related": null
4516-
}
4532+
dataValue:
4533+
count: null
4534+
description: Thing
4535+
related: null
45174536
externalValue: ./examples/productWithNulls.xml
45184537
productNoNulls:
4519-
dataValue: {
4520-
"count": 42,
4521-
"description: "Thing"
4522-
"related": {}
4523-
}
4538+
dataValue:
4539+
count: 42
4540+
description: Thing
4541+
related: {}
45244542
externalValue: ./examples/productNoNulls.xml
45254543
```
45264544

0 commit comments

Comments
 (0)