Software /
code /
prosody-modules
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 ... |