Skip to content

Commit 52c89a3

Browse files
committed
Fixes OAI#4463
and adds test
1 parent 97982a5 commit 52c89a3

File tree

2 files changed

+113
-1
lines changed

2 files changed

+113
-1
lines changed

src/schemas/validation/schema.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ $defs:
630630
requestBody: true
631631
description:
632632
type: string
633-
body:
633+
server:
634634
$ref: '#/$defs/server'
635635
oneOf:
636636
- required:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
openapi: 3.1.0
2+
info:
3+
title: API
4+
version: 1.0.0
5+
paths:
6+
/things:
7+
summary: Lots of things
8+
servers:
9+
- url: https://things.example.com
10+
get:
11+
summary: Get a list of things
12+
externalDocs:
13+
description: Find more info here
14+
url: https://example.com
15+
parameters:
16+
- $ref: '#/components/parameters/biscuit'
17+
summary: The maximum number of things to return
18+
description: The maximum number of things to return
19+
responses:
20+
default:
21+
description: A list of things
22+
servers:
23+
- url: https://things.example.com
24+
post:
25+
deprecated: false
26+
requestBody:
27+
$ref: '#/components/requestBodies/ThingRequestBody'
28+
responses:
29+
'201':
30+
$ref: '#/components/responses/ThingResponse'
31+
callbacks:
32+
myCallback:
33+
'{$request.query.queryUrl}':
34+
post:
35+
requestBody:
36+
description: Callback payload
37+
content:
38+
application/json:
39+
schema:
40+
$ref: '#/components/schemas/SomePayload'
41+
responses:
42+
'200':
43+
description: callback successfully processed
44+
transactionCallback:
45+
$ref: '#/components/callbacks/transactionCallback'
46+
patch: {}
47+
delete: {}
48+
head: {}
49+
options: {}
50+
trace: {}
51+
components:
52+
callbacks:
53+
transactionCallback:
54+
'http://notificationServer.com?transactionId={$request.body#/id}&email={$request.body#/email}':
55+
post:
56+
requestBody:
57+
description: Callback payload
58+
content:
59+
application/json:
60+
schema:
61+
$ref: '#/components/schemas/SomePayload'
62+
responses:
63+
'200':
64+
description: callback successfully processed
65+
examples:
66+
ThingExample:
67+
summary: A thing
68+
description: A thing
69+
value:
70+
id: 1
71+
name: Thing
72+
links:
73+
ThingLink:
74+
description: A link to a thing
75+
operationId: getThing
76+
parameters:
77+
thingId: '$response.body#/id'
78+
server:
79+
url: https://things.example.com
80+
ThingyLink:
81+
$ref: '#/components/links/ThingLink'
82+
parameters:
83+
limit:
84+
name: limit
85+
in: query
86+
required: false
87+
allowEmptyValue: false
88+
allowReserved: false
89+
deprecated: true
90+
description: The maximum number of list items to return
91+
schema:
92+
type: integer
93+
minimum: 0
94+
biscuit:
95+
name: biscuit
96+
in: cookie
97+
style: form
98+
schema:
99+
type: string
100+
requestBodies:
101+
ThingRequestBody:
102+
content:
103+
application/json:
104+
schema:
105+
type: object
106+
responses:
107+
ThingResponse:
108+
description: A thing
109+
content:
110+
application/json:
111+
schema:
112+
type: object

0 commit comments

Comments
 (0)