-
Notifications
You must be signed in to change notification settings - Fork 9.2k
v3.3: edits to parameter sections #5122
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
Open
karenetheridge
wants to merge
10
commits into
OAI:v3.3-dev
Choose a base branch
from
karenetheridge:ether/3.3-parameter-styles-more
base: v3.3-dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
83ef7a0
remove unneeded span markup
karenetheridge 37b058d
"undefined" in URI Templates is not just null, but can be other things
karenetheridge b55b141
the schema isn't just for specifying the expected type
karenetheridge bcdfd40
as per section 4.8.2, path parameter names cannot contain braces
karenetheridge 38ad364
allowReserved only permitted where percent-encoding is done
karenetheridge e24e5bb
fix style, explode, allowReserved defaults for parameter and encoding…
karenetheridge c5b0fa5
working examples of parameter and encoding object permutations with a…
karenetheridge c564b80
fix broken examples
karenetheridge e6cc2e0
mention deserialization too
karenetheridge 6603f70
specify how query parameters are added to the URL
karenetheridge File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: allowReserved only permitted with in and style values that percent-encode | ||
| version: 1.0.0 | ||
| components: | ||
| headers: | ||
| Style: | ||
| schema: | ||
| type: array | ||
| style: simple | ||
| explode: true | ||
| allowReserved: true |
12 changes: 12 additions & 0 deletions
12
tests/schema/fail/parameter-object-cookie-allowReserved.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: allowReserved only permitted with in and style values that percent-encode | ||
| version: 1.0.0 | ||
| components: | ||
| parameters: | ||
| my_cookie: | ||
| name: my_cookie | ||
| in: cookie | ||
| style: cookie | ||
| allowReserved: true | ||
| schema: {} |
11 changes: 11 additions & 0 deletions
11
tests/schema/fail/parameter-object-header-allowReserved.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: allowReserved only permitted with in and style values that percent-encode | ||
| version: 1.0.0 | ||
| components: | ||
| parameters: | ||
| header: | ||
| name: my-header | ||
| in: header | ||
| allowReserved: false | ||
| schema: {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
tests/schema/pass/parameter-object-cookie-form-allowReserved.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: allowReserved only permitted with in and style values that percent-encode | ||
| version: 1.0.0 | ||
| components: | ||
| parameters: | ||
| style_form: | ||
| name: my_form_cookie | ||
| in: cookie | ||
| # default style is form, therefore allowReserved is allowed | ||
| allowReserved: true | ||
| schema: {} | ||
| style_cookie: | ||
| name: my_cookie_cookie | ||
| in: cookie | ||
| style: cookie | ||
| # no percent decoding for style=cookie, therefore allowReserved is not allowed | ||
| schema: {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
tests/schema/pass/parameter-object-path-allowReserved.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: api | ||
| version: 1.0.0 | ||
| components: | ||
| parameters: | ||
| path: | ||
| name: my-path | ||
| in: path | ||
| required: true | ||
| allowReserved: false | ||
| schema: {} |
11 changes: 11 additions & 0 deletions
11
tests/schema/pass/parameter-object-query-allowReserved.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| openapi: 3.3.0 | ||
| info: | ||
| title: allowReserved only permitted with in and style values that percent-encode | ||
| version: 1.0.0 | ||
| components: | ||
| parameters: | ||
| my_query: | ||
| name: my_query | ||
| in: query | ||
| allowReserved: true | ||
| schema: {} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 in other places we have used "serialization and parsing" or "parsing and serialization." Do you think "deserialization" is a better term here? Is there a distinction between that and "parsing"? I have no idea what the answer is, I either copied "parsing" or picked it without much thought, so I'm open to changing it as long as we're consistent.
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 searched the document and found that "deserialize" was used more often than "parse". I've standardized on the former in my implementation (after waffling a few times) as I think the symmetry makes more sense. Also I think "parse" is a little more vague -- you parse a string for any number of reasons, but what we're really doing here when we parse a parameter string is deserializing it into the json document model so we can then validate it against a json schema, or pass it to the user application in a format closer to its final form.
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 doublechecked this assertion and it's false. We talk a lot about "parsing an OAD", and that's definitely the correct language there, but we say both "parse a parameter" and "deserialize a parameter".
I think I still prefer "deserialize" for its extra specificity though, when it is applicable -- an OAD is parsed to interpret its rules, and parts of an HTTP message are deserialized to be applied against the OAD rules.