Comparison

mod_rest/openapi.yaml @ 4487:f877a4d3770b

mod_rest/openapi: Deduplicate things using references
author Kim Alvefur <zash@zash.se>
date Tue, 02 Mar 2021 18:35:54 +0100
parent 4486:4f41678ba00d
child 4492:9d576af18611
comparison
equal deleted inserted replaced
4486:4f41678ba00d 4487:f877a4d3770b
11 name: MIT 11 name: MIT
12 paths: 12 paths:
13 /rest: 13 /rest:
14 post: 14 post:
15 requestBody: 15 requestBody:
16 required: true 16 $ref: '#/components/requestBodies/common'
17 content:
18 application/x-www-form-urlencoded:
19 schema:
20 description: A subset of the JSON schema, only top level string fields.
21 application/xmpp+xml:
22 schema:
23 description: Single XMPP stanza in XML format.
24 application/json:
25 schema:
26 $ref: '#/components/schemas/stanza'
27 security: 17 security:
28 - basic: [] 18 - basic: []
29 - token: [] 19 - token: []
30 summary: Send stanzas and receive responses. Webhooks work the same way. 20 summary: Send stanzas and receive responses. Webhooks work the same way.
31 responses: 21 responses:
32 200: 22 200:
33 content: 23 $ref: '#/components/responses/success'
34 text/plain:
35 schema:
36 description: Plain text response used as message body.
37 example: Hello
38 type: string
39 application/x-www-form-urlencoded:
40 schema:
41 description: A subset of the JSON schema, only top level string fields.
42 example: body=Hello
43 application/xmpp+xml:
44 schema:
45 description: Single XMPP stanza in XML format.
46 example: <message><body>Hello</body></message>
47 application/json:
48 schema:
49 $ref: '#/components/schemas/stanza'
50 description: The stanza was sent and returned a response.
51 401:
52 description: No credentials or auth token were provided.
53 202: 24 202:
54 description: The stanza was sent without problem, and without response, 25 $ref: '#/components/responses/sent'
55 so an empty reply. 26 /rest/{kind}/{type}/{to}:
56 403: 27 post:
57 description: Provided credentials or token not accepted. 28 security:
58 400: 29 - basic: []
59 description: There was a syntax problem in the payload. 30 - token: []
60 422: 31 summary: Even more RESTful mapping with certain components in the path.
61 description: The was a problem with the format (but not the syntax) of the 32 parameters:
62 payload. 33 - $ref: '#/components/parameters/kind'
63 415: 34 - $ref: '#/components/parameters/type'
64 description: Unsupported mediatype. 35 - $ref: '#/components/parameters/to'
36 responses:
37 200:
38 $ref: '#/components/responses/success'
65 /rest/ping/{to}: 39 /rest/ping/{to}:
66 get: 40 get:
67 security: 41 security:
68 - basic: [] 42 - basic: []
69 - token: [] 43 - token: []
70 summary: Ping a local or remote server or other entity 44 summary: Ping a local or remote server or other entity
71 responses: 45 responses:
72 200: 46 200:
73 content: 47 $ref: '#/components/responses/success'
74 application/json: 48 202:
75 schema: 49 $ref: '#/components/responses/sent'
76 type: object
77 application/xmpp+xml:
78 schema:
79 description: Single XMPP stanza in XML format.
80 example: |
81 <iq type="result"/>
82 description: OK
83 parameters: 50 parameters:
84 - name: to 51 - $ref: '#/components/parameters/to'
85 in: path
86 required: true
87 schema:
88 $ref: '#/components/schemas/to'
89 /rest/disco/{to}: 52 /rest/disco/{to}:
90 get: 53 get:
91 security: 54 security:
92 - basic: [] 55 - basic: []
93 - token: [] 56 - token: []
94 summary: Query a remote entity for supported features 57 summary: Query a remote entity for supported features
95 responses: 58 responses:
96 200: 59 200:
97 content: 60 $ref: '#/components/responses/success'
98 application/json:
99 schema:
100 type: object
101 properties:
102 disco:
103 $ref: '#/components/schemas/disco'
104 application/xmpp+xml:
105 schema:
106 description: See XEP-0030
107 description: OK
108 parameters: 61 parameters:
109 - name: to 62 - $ref: '#/components/parameters/to'
110 in: path
111 required: true
112 schema:
113 $ref: '#/components/schemas/to'
114 /rest/items/{to}: 63 /rest/items/{to}:
115 get: 64 get:
116 security: 65 security:
117 - basic: [] 66 - basic: []
118 - token: [] 67 - token: []
119 summary: Query an entity for related services, chat rooms or other items 68 summary: Query an entity for related services, chat rooms or other items
120 responses: 69 responses:
121 200: 70 200:
122 content: 71 $ref: '#/components/responses/success'
123 application/json:
124 schema:
125 type: object
126 properties:
127 disco:
128 $ref: '#/components/schemas/items'
129 application/xmpp+xml:
130 schema:
131 description: See XEP-0030
132 description: OK
133 parameters: 72 parameters:
134 - name: to 73 - $ref: '#/components/parameters/to'
135 in: path
136 required: true
137 schema:
138 $ref: '#/components/schemas/to'
139 /rest/version/{to}: 74 /rest/version/{to}:
140 get: 75 get:
141 security: 76 security:
142 - basic: [] 77 - basic: []
143 - token: [] 78 - token: []
144 summary: Ask what software version is used 79 summary: Ask what software version is used.
145 responses: 80 responses:
146 200: 81 200:
147 content: 82 $ref: '#/components/responses/success'
148 application/json:
149 schema:
150 $ref: '#/components/schemas/stanza'
151 application/xmpp+xml:
152 schema:
153 description: Single XMPP stanza in XML format.
154 example: |
155 <iq type="result">
156 <query xmlns="jabber:iq:version">
157 <name>Exodus</name>
158 <version>0.7.0.4</version>
159 </query>
160 </iq>
161 description: OK
162 parameters: 83 parameters:
163 - name: to 84 - $ref: '#/components/parameters/to'
164 in: path
165 required: true
166 schema:
167 $ref: '#/components/schemas/to'
168 /rest/{kind}/{type}/{to}:
169 post:
170 responses:
171 200:
172 description: Okay
173 security:
174 - basic: []
175 - token: []
176 summary: Even more RESTful mapping.
177 parameters:
178 - name: kind
179 in: path
180 required: true
181 schema:
182 $ref: '#/components/schemas/kind'
183 - name: type
184 in: path
185 required: true
186 schema:
187 $ref: '#/components/schemas/type'
188 - name: to
189 in: path
190 required: true
191 schema:
192 $ref: '#/components/schemas/to'
193 components: 85 components:
194 schemas: 86 schemas:
195 stanza: 87 stanza:
196 properties: 88 properties:
197 delay: 89 delay:
573 type: http 465 type: http
574 basic: 466 basic:
575 description: Use JID as username. 467 description: Use JID as username.
576 scheme: Basic 468 scheme: Basic
577 type: http 469 type: http
470 requestBodies:
471 common:
472 required: true
473 content:
474 application/x-www-form-urlencoded:
475 schema:
476 description: A subset of the JSON schema, only top level string fields.
477 application/xmpp+xml:
478 schema:
479 description: Single XMPP stanza in XML format.
480 application/json:
481 schema:
482 $ref: '#/components/schemas/stanza'
483 responses:
484 success:
485 description: The stanza was sent and returned a response.
486 content:
487 application/json:
488 schema:
489 $ref: '#/components/schemas/stanza'
490 application/xmpp+xml:
491 schema:
492 description: Single XMPP stanza in XML format.
493 example: <message><body>Hello</body></message>
494 application/x-www-form-urlencoded:
495 schema:
496 description: A subset of the JSON schema, only top level string fields.
497 example: body=Hello
498 text/plain:
499 schema:
500 description: Plain text response used as message body.
501 example: Hello
502 type: string
503 sent:
504 description: The stanza was sent without problem, and without response,
505 so an empty reply.
506 parameters:
507 to:
508 name: to
509 in: path
510 required: true
511 schema:
512 $ref: '#/components/schemas/to'
513 kind:
514 name: kind
515 in: path
516 required: true
517 schema:
518 $ref: '#/components/schemas/kind'
519 type:
520 name: type
521 in: path
522 required: true
523 schema:
524 $ref: '#/components/schemas/type'
525
578 ... 526 ...