Skip to content

Commit 7e6f60f

Browse files
committed
feat(ls): provide OpenAPI 3.1 Responses docs rules
Refs #2063
1 parent ae4c69b commit 7e6f60f

File tree

1 file changed

+170
-0
lines changed

1 file changed

+170
-0
lines changed

packages/apidom-ls/src/config/openapi/responses/documentation.ts

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,171 +9,341 @@ const httpCode3_0DocsRule = {
99
],
1010
};
1111

12+
// eslint-disable-next-line @typescript-eslint/naming-convention
13+
const httpCode3_1DocsRule = {
14+
docs: '[Response Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#responseObject) \\| [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#referenceObject)\n\\\n\\\nThe documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses.',
15+
targetSpecs: [{ namespace: 'openapi', version: '3.1.0' }],
16+
};
17+
1218
const documentation = [
1319
{
1420
target: 'default',
1521
...httpCode3_0DocsRule,
1622
},
23+
{
24+
target: 'default',
25+
...httpCode3_1DocsRule,
26+
},
1727
{
1828
target: '100',
1929
...httpCode3_0DocsRule,
2030
},
31+
{
32+
target: '100',
33+
...httpCode3_1DocsRule,
34+
},
2135
{
2236
target: '101',
2337
...httpCode3_0DocsRule,
2438
},
39+
{
40+
target: '101',
41+
...httpCode3_1DocsRule,
42+
},
2543
{
2644
target: '1XX',
2745
...httpCode3_0DocsRule,
2846
},
47+
{
48+
target: '1XX',
49+
...httpCode3_1DocsRule,
50+
},
2951
{
3052
target: '201',
3153
...httpCode3_0DocsRule,
3254
},
55+
{
56+
target: '201',
57+
...httpCode3_1DocsRule,
58+
},
3359
{
3460
target: '202',
3561
...httpCode3_0DocsRule,
3662
},
63+
{
64+
target: '202',
65+
...httpCode3_1DocsRule,
66+
},
3767
{
3868
target: '203',
3969
...httpCode3_0DocsRule,
4070
},
71+
{
72+
target: '203',
73+
...httpCode3_1DocsRule,
74+
},
4175
{
4276
target: '204',
4377
...httpCode3_0DocsRule,
4478
},
79+
{
80+
target: '204',
81+
...httpCode3_1DocsRule,
82+
},
4583
{
4684
target: '205',
4785
...httpCode3_0DocsRule,
4886
},
87+
{
88+
target: '205',
89+
...httpCode3_1DocsRule,
90+
},
4991
{
5092
target: '2XX',
5193
...httpCode3_0DocsRule,
5294
},
95+
{
96+
target: '2XX',
97+
...httpCode3_1DocsRule,
98+
},
5399
{
54100
target: '300',
55101
...httpCode3_0DocsRule,
56102
},
103+
{
104+
target: '300',
105+
...httpCode3_1DocsRule,
106+
},
57107
{
58108
target: '301',
59109
...httpCode3_0DocsRule,
60110
},
111+
{
112+
target: '301',
113+
...httpCode3_1DocsRule,
114+
},
61115
{
62116
target: '302',
63117
...httpCode3_0DocsRule,
64118
},
119+
{
120+
target: '302',
121+
...httpCode3_1DocsRule,
122+
},
65123
{
66124
target: '303',
67125
...httpCode3_0DocsRule,
68126
},
127+
{
128+
target: '303',
129+
...httpCode3_1DocsRule,
130+
},
69131
{
70132
target: '305',
71133
...httpCode3_0DocsRule,
72134
},
135+
{
136+
target: '305',
137+
...httpCode3_1DocsRule,
138+
},
73139
{
74140
target: '306',
75141
...httpCode3_0DocsRule,
76142
},
143+
{
144+
target: '306',
145+
...httpCode3_1DocsRule,
146+
},
77147
{
78148
target: '307',
79149
...httpCode3_0DocsRule,
80150
},
151+
{
152+
target: '307',
153+
...httpCode3_1DocsRule,
154+
},
81155
{
82156
target: '3XX',
83157
...httpCode3_0DocsRule,
84158
},
159+
{
160+
target: '3XX',
161+
...httpCode3_1DocsRule,
162+
},
85163
{
86164
target: '400',
87165
...httpCode3_0DocsRule,
88166
},
167+
{
168+
target: '400',
169+
...httpCode3_1DocsRule,
170+
},
89171
{
90172
target: '402',
91173
...httpCode3_0DocsRule,
92174
},
175+
{
176+
target: '402',
177+
...httpCode3_1DocsRule,
178+
},
93179
{
94180
target: '403',
95181
...httpCode3_0DocsRule,
96182
},
183+
{
184+
target: '403',
185+
...httpCode3_1DocsRule,
186+
},
97187
{
98188
target: '404',
99189
...httpCode3_0DocsRule,
100190
},
191+
{
192+
target: '404',
193+
...httpCode3_1DocsRule,
194+
},
101195
{
102196
target: '405',
103197
...httpCode3_0DocsRule,
104198
},
199+
{
200+
target: '405',
201+
...httpCode3_1DocsRule,
202+
},
105203
{
106204
target: '406',
107205
...httpCode3_0DocsRule,
108206
},
207+
{
208+
target: '406',
209+
...httpCode3_1DocsRule,
210+
},
109211
{
110212
target: '408',
111213
...httpCode3_0DocsRule,
112214
},
215+
{
216+
target: '408',
217+
...httpCode3_1DocsRule,
218+
},
113219
{
114220
target: '409',
115221
...httpCode3_0DocsRule,
116222
},
223+
{
224+
target: '409',
225+
...httpCode3_1DocsRule,
226+
},
117227
{
118228
target: '410',
119229
...httpCode3_0DocsRule,
120230
},
231+
{
232+
target: '410',
233+
...httpCode3_1DocsRule,
234+
},
121235
{
122236
target: '411',
123237
...httpCode3_0DocsRule,
124238
},
239+
{
240+
target: '411',
241+
...httpCode3_1DocsRule,
242+
},
125243
{
126244
target: '413',
127245
...httpCode3_0DocsRule,
128246
},
247+
{
248+
target: '413',
249+
...httpCode3_1DocsRule,
250+
},
129251
{
130252
target: '414',
131253
...httpCode3_0DocsRule,
132254
},
255+
{
256+
target: '414',
257+
...httpCode3_1DocsRule,
258+
},
133259
{
134260
target: '415',
135261
...httpCode3_0DocsRule,
136262
},
263+
{
264+
target: '415',
265+
...httpCode3_1DocsRule,
266+
},
137267
{
138268
target: '417',
139269
...httpCode3_0DocsRule,
140270
},
271+
{
272+
target: '417',
273+
...httpCode3_1DocsRule,
274+
},
141275
{
142276
target: '426',
143277
...httpCode3_0DocsRule,
144278
},
279+
{
280+
target: '426',
281+
...httpCode3_1DocsRule,
282+
},
145283
{
146284
target: '4XX',
147285
...httpCode3_0DocsRule,
148286
},
287+
{
288+
target: '4XX',
289+
...httpCode3_1DocsRule,
290+
},
149291
{
150292
target: '500',
151293
...httpCode3_0DocsRule,
152294
},
295+
{
296+
target: '500',
297+
...httpCode3_1DocsRule,
298+
},
153299
{
154300
target: '501',
155301
...httpCode3_0DocsRule,
156302
},
303+
{
304+
target: '501',
305+
...httpCode3_1DocsRule,
306+
},
157307
{
158308
target: '502',
159309
...httpCode3_0DocsRule,
160310
},
311+
{
312+
target: '502',
313+
...httpCode3_1DocsRule,
314+
},
161315
{
162316
target: '503',
163317
...httpCode3_0DocsRule,
164318
},
319+
{
320+
target: '503',
321+
...httpCode3_1DocsRule,
322+
},
165323
{
166324
target: '504',
167325
...httpCode3_0DocsRule,
168326
},
327+
{
328+
target: '504',
329+
...httpCode3_1DocsRule,
330+
},
169331
{
170332
target: '505',
171333
...httpCode3_0DocsRule,
172334
},
335+
{
336+
target: '505',
337+
...httpCode3_1DocsRule,
338+
},
173339
{
174340
target: '5XX',
175341
...httpCode3_0DocsRule,
176342
},
343+
{
344+
target: '5XX',
345+
...httpCode3_1DocsRule,
346+
},
177347
{
178348
docs: '#### [Responses Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#responses-object)\n\nA container for the expected responses of an operation.\nThe container maps a HTTP response code to the expected response.\n\nThe documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance.\nHowever, documentation is expected to cover a successful operation response and any known errors.\n\nThe `default` MAY be used as a default response object for all HTTP codes\nthat are not covered individually by the specification.\n\nThe `Responses Object` MUST contain at least one response code, and it\nSHOULD be the response for a successful operation call.\n\n##### Fixed Fields\nField Name | Type | Description\n---|:---:|---\ndefault | [Response Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#responseObject) \\| [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#referenceObject) | The documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses. A [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#referenceObject) can link to a response that the [OpenAPI Object\'s components/responses](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#componentsResponses) section defines.\n\n##### Patterned Fields\nField Pattern | Type | Description\n---|:---:|---\n[HTTP Status Code](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#httpCodes) | [Response Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#responseObject) \\| [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#referenceObject) | Any [HTTP status code](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#httpCodes) can be used as the property name, but only one property per code, to describe the expected response for that HTTP status code. A [Reference Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#referenceObject) can link to a response that is defined in the [OpenAPI Object\'s components/responses](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#componentsResponses) section. This field MUST be enclosed in quotation marks (for example, "200") for compatibility between JSON and YAML. To define a range of response codes, this field MAY contain the uppercase wildcard character `X`. For example, `2XX` represents all response codes between `[200-299]`. Only the following range definitions are allowed: `1XX`, `2XX`, `3XX`, `4XX`, and `5XX`. If a response is defined using an explicit code, the explicit code definition takes precedence over the range definition for that code.\n\n\nThis object MAY be extended with [Specification Extensions](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions).\n\n##### Responses Object Example\n\nA 200 response for a successful operation and a default response for others (implying an error):\n\n\n\\\nJSON\n```json\n{\n "200": {\n "description": "a pet to be returned",\n "content": {\n "application/json": {\n "schema": {\n "$ref": "#/components/schemas/Pet"\n }\n }\n }\n },\n "default": {\n "description": "Unexpected error",\n "content": {\n "application/json": {\n "schema": {\n "$ref": "#/components/schemas/ErrorModel"\n }\n }\n }\n }\n}\n```\n\n\n\\\nYAML\n```yaml\n\'200\':\n description: a pet to be returned\n content:\n application/json:\n schema:\n $ref: \'#/components/schemas/Pet\'\ndefault:\n description: Unexpected error\n content:\n application/json:\n schema:\n $ref: \'#/components/schemas/ErrorModel\'\n```',
179349
targetSpecs: [

0 commit comments

Comments
 (0)