Skip to content

Commit 136371f

Browse files
committed
Use $ref to definitions in oneOf for Parameter loc
I'd like to use a JSON Merge Patch (RFC 7386) document to add keywords for the OAS compliance parser project. JSON Merge Patch does not handle arrays well, so moving these to their own definitions and having the "oneOf" directly in the "Parameter" definition (avoiding duplicate "description" fields on the same instance ___location) allows merge-patch to work where I need it. Otherwise, JSON Patch (RFC 6902) will be needed, which is less intuitive. The 3.1 schema already uses "$defs" here.
1 parent 40984f4 commit 136371f

File tree

1 file changed

+41
-36
lines changed

1 file changed

+41
-36
lines changed

schemas/v3.0/schema.yaml

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -706,46 +706,51 @@ definitions:
706706
allOf:
707707
- $ref: '#/definitions/ExampleXORExamples'
708708
- $ref: '#/definitions/SchemaXORContent'
709-
- $ref: '#/definitions/ParameterLocation'
710-
711-
ParameterLocation:
712-
description: Parameter ___location
713709
oneOf:
714-
- description: Parameter in path
715-
required:
716-
- required
717-
properties:
718-
in:
719-
enum: [path]
720-
style:
721-
enum: [matrix, label, simple]
722-
default: simple
723-
required:
724-
enum: [true]
710+
- $ref: '#/definitions/PathParameter'
711+
- $ref: '#/definitions/QueryParameter'
712+
- $ref: '#/definitions/HeaderParameter'
713+
- $ref: '#/definitions/CookieParameter'
725714

726-
- description: Parameter in query
727-
properties:
728-
in:
729-
enum: [query]
730-
style:
731-
enum: [form, spaceDelimited, pipeDelimited, deepObject]
732-
default: form
715+
PathParameter:
716+
description: Parameter in path
717+
required:
718+
- required
719+
properties:
720+
in:
721+
enum: [path]
722+
style:
723+
enum: [matrix, label, simple]
724+
default: simple
725+
required:
726+
enum: [true]
733727

734-
- description: Parameter in header
735-
properties:
736-
in:
737-
enum: [header]
738-
style:
739-
enum: [simple]
740-
default: simple
728+
QueryParameter:
729+
description: Parameter in query
730+
properties:
731+
in:
732+
enum: [query]
733+
style:
734+
enum: [form, spaceDelimited, pipeDelimited, deepObject]
735+
default: form
741736

742-
- description: Parameter in cookie
743-
properties:
744-
in:
745-
enum: [cookie]
746-
style:
747-
enum: [form]
748-
default: form
737+
HeaderParameter:
738+
description: Parameter in header
739+
properties:
740+
in:
741+
enum: [header]
742+
style:
743+
enum: [simple]
744+
default: simple
745+
746+
CookieParameter:
747+
description: Parameter in cookie
748+
properties:
749+
in:
750+
enum: [cookie]
751+
style:
752+
enum: [form]
753+
default: form
749754

750755
RequestBody:
751756
type: object

0 commit comments

Comments
 (0)