Skip to content

Commit 3f09f46

Browse files
committed
Revert embed references as it flattens definition scopes and therefore affects *Of, required behavior
1 parent 2208e08 commit 3f09f46

File tree

2 files changed

+62
-50
lines changed

2 files changed

+62
-50
lines changed

schemas/v3.0/README.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,4 @@ not:
4545

4646
## Combine some definitions as filtered supersets
4747

48-
With same pattern as for Parameter.
49-
50-
## Embed references
51-
52-
In order to simplify `oneOf` logic, many references can be embedded in respective definitions
53-
(with same pattern as for Schema or Reference).
48+
With same pattern as for Parameter.

schemas/v3.0/schema.yaml

+61-44
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,14 @@ patternProperties:
3232
'^x-': {}
3333
additionalProperties: false
3434
definitions:
35-
RefProperty:
36-
type: string
37-
format: uri-reference
38-
3935
Reference:
4036
type: object
4137
required:
4238
- $ref
4339
patternProperties:
4440
'^\$ref$':
45-
$ref: '#/definitions/RefProperty'
46-
41+
type: string
42+
format: uri-reference
4743
Info:
4844
type: object
4945
required:
@@ -143,27 +139,37 @@ definitions:
143139
type: object
144140
patternProperties:
145141
'^[a-zA-Z0-9\.\-_]+$':
146-
$ref: '#/definitions/Response'
142+
oneOf:
143+
- $ref: '#/definitions/Reference'
144+
- $ref: '#/definitions/Response'
147145
parameters:
148146
type: object
149147
patternProperties:
150148
'^[a-zA-Z0-9\.\-_]+$':
151-
$ref: '#/definitions/Parameter'
149+
oneOf:
150+
- $ref: '#/definitions/Reference'
151+
- $ref: '#/definitions/Parameter'
152152
examples:
153153
type: object
154154
patternProperties:
155155
'^[a-zA-Z0-9\.\-_]+$':
156-
$ref: '#/definitions/Example'
156+
oneOf:
157+
- $ref: '#/definitions/Reference'
158+
- $ref: '#/definitions/Example'
157159
requestBodies:
158160
type: object
159161
patternProperties:
160162
'^[a-zA-Z0-9\.\-_]+$':
161-
$ref: '#/definitions/RequestBody'
163+
oneOf:
164+
- $ref: '#/definitions/Reference'
165+
- $ref: '#/definitions/RequestBody'
162166
headers:
163167
type: object
164168
patternProperties:
165169
'^[a-zA-Z0-9\.\-_]+$':
166-
$ref: '#/definitions/Header'
170+
oneOf:
171+
- $ref: '#/definitions/Reference'
172+
- $ref: '#/definitions/Header'
167173
securitySchemes:
168174
type: object
169175
patternProperties:
@@ -175,12 +181,16 @@ definitions:
175181
type: object
176182
patternProperties:
177183
'^[a-zA-Z0-9\.\-_]+$':
178-
$ref: '#/definitions/Link'
184+
oneOf:
185+
- $ref: '#/definitions/Reference'
186+
- $ref: '#/definitions/Link'
179187
callbacks:
180188
type: object
181189
patternProperties:
182190
'^[a-zA-Z0-9\.\-_]+$':
183-
$ref: '#/definitions/Callback'
191+
oneOf:
192+
- $ref: '#/definitions/Reference'
193+
- $ref: '#/definitions/Callback'
184194
patternProperties:
185195
'^x-': {}
186196
additionalProperties: false
@@ -349,18 +359,20 @@ definitions:
349359
headers:
350360
type: object
351361
additionalProperties:
352-
$ref: '#/definitions/Header'
362+
oneOf:
363+
- $ref: '#/definitions/Header'
364+
- $ref: '#/definitions/Reference'
353365
content:
354366
type: object
355367
additionalProperties:
356368
$ref: '#/definitions/MediaType'
357369
links:
358370
type: object
359371
additionalProperties:
360-
$ref: '#/definitions/Link'
372+
oneOf:
373+
- $ref: '#/definitions/Link'
374+
- $ref: '#/definitions/Reference'
361375
patternProperties:
362-
'^\$ref$':
363-
$ref: '#/definitions/RefProperty'
364376
'^x-': {}
365377
additionalProperties: false
366378

@@ -373,7 +385,9 @@ definitions:
373385
examples:
374386
type: object
375387
additionalProperties:
376-
$ref: '#/definitions/Example'
388+
oneOf:
389+
- $ref: '#/definitions/Example'
390+
- $ref: '#/definitions/Reference'
377391
encoding:
378392
type: object
379393
additionalProperties:
@@ -396,8 +410,6 @@ definitions:
396410
type: string
397411
format: uri-reference
398412
patternProperties:
399-
'^\$ref$':
400-
$ref: '#/definitions/RefProperty'
401413
'^x-': {}
402414
additionalProperties: false
403415

@@ -437,10 +449,10 @@ definitions:
437449
examples:
438450
type: object
439451
additionalProperties:
440-
$ref: '#/definitions/Example'
452+
oneOf:
453+
- $ref: '#/definitions/Example'
454+
- $ref: '#/definitions/Reference'
441455
patternProperties:
442-
'^\$ref$':
443-
$ref: '#/definitions/RefProperty'
444456
'^x-': {}
445457
additionalProperties: false
446458
allOf:
@@ -471,7 +483,9 @@ definitions:
471483
parameters:
472484
type: array
473485
items:
474-
$ref: '#/definitions/Parameter'
486+
oneOf:
487+
- $ref: '#/definitions/Parameter'
488+
- $ref: '#/definitions/Reference'
475489
uniqueItems: true
476490
patternProperties:
477491
'^(get|put|post|delete|options|head|patch|trace)$':
@@ -499,16 +513,22 @@ definitions:
499513
parameters:
500514
type: array
501515
items:
502-
$ref: '#/definitions/Parameter'
516+
oneOf:
517+
- $ref: '#/definitions/Parameter'
518+
- $ref: '#/definitions/Reference'
503519
uniqueItems: true
504520
requestBody:
505-
$ref: '#/definitions/RequestBody'
521+
oneOf:
522+
- $ref: '#/definitions/RequestBody'
523+
- $ref: '#/definitions/Reference'
506524
responses:
507525
$ref: '#/definitions/Responses'
508526
callbacks:
509527
type: object
510528
additionalProperties:
511-
$ref: '#/definitions/Callback'
529+
oneOf:
530+
- $ref: '#/definitions/Callback'
531+
- $ref: '#/definitions/Reference'
512532
deprecated:
513533
type: boolean
514534
default: false
@@ -528,10 +548,14 @@ definitions:
528548
type: object
529549
properties:
530550
default:
531-
$ref: '#/definitions/Response'
551+
oneOf:
552+
- $ref: '#/definitions/Response'
553+
- $ref: '#/definitions/Reference'
532554
patternProperties:
533555
'^[1-5](?:\d{2}|XX)$':
534-
$ref: '#/definitions/Response'
556+
oneOf:
557+
- $ref: '#/definitions/Response'
558+
- $ref: '#/definitions/Reference'
535559
'^x-': {}
536560
minProperties: 1
537561
additionalProperties: false
@@ -635,15 +659,15 @@ definitions:
635659
examples:
636660
type: object
637661
additionalProperties:
638-
$ref: '#/definitions/Example'
662+
oneOf:
663+
- $ref: '#/definitions/Example'
664+
- $ref: '#/definitions/Reference'
639665
patternProperties:
640-
'^\$ref$':
641-
$ref: '#/definitions/RefProperty'
642666
'^x-': {}
643667
additionalProperties: false
644-
oneOf:
645-
- required: [$ref]
646-
- required: [name, in]
668+
required:
669+
- name
670+
- in
647671
allOf:
648672
- $ref: '#/definitions/ExampleXORExamples'
649673
- $ref: '#/definitions/SchemaXORContent'
@@ -690,6 +714,8 @@ definitions:
690714

691715
RequestBody:
692716
type: object
717+
required:
718+
- content
693719
properties:
694720
description:
695721
type: string
@@ -701,13 +727,8 @@ definitions:
701727
type: boolean
702728
default: false
703729
patternProperties:
704-
'^\$ref$':
705-
$ref: '#/definitions/RefProperty'
706730
'^x-': {}
707731
additionalProperties: false
708-
oneOf:
709-
- required: ["content"]
710-
- required: ["$ref"]
711732

712733
SecurityScheme:
713734
oneOf:
@@ -924,8 +945,6 @@ definitions:
924945
server:
925946
$ref: '#/definitions/Server'
926947
patternProperties:
927-
'^\$ref$':
928-
$ref: '#/definitions/RefProperty'
929948
'^x-': {}
930949
additionalProperties: false
931950
not:
@@ -937,8 +956,6 @@ definitions:
937956
additionalProperties:
938957
$ref: '#/definitions/PathItem'
939958
patternProperties:
940-
'^\$ref$':
941-
$ref: '#/definitions/RefProperty'
942959
'^x-': {}
943960

944961
Encoding:

0 commit comments

Comments
 (0)