-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathappwrite-spectral-rules.yml
More file actions
149 lines (132 loc) · 3.48 KB
/
Copy pathappwrite-spectral-rules.yml
File metadata and controls
149 lines (132 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
rules:
info-title-required:
description: API title must be present
severity: error
given: $.info
then:
field: title
function: truthy
info-version-required:
description: API version must be specified
severity: error
given: $.info
then:
field: version
function: truthy
info-description-required:
description: API description should be present
severity: warn
given: $.info
then:
field: description
function: minLength
functionOptions:
min: 20
info-license-required:
description: Open source APIs should specify a license
severity: warn
given: $.info
then:
field: license
function: truthy
servers-required:
description: At least one server must be defined
severity: error
given: $
then:
field: servers
function: truthy
servers-https:
description: Server URLs must use HTTPS
severity: warn
given: $.servers[*]
then:
field: url
function: pattern
functionOptions:
match: "^https://"
paths-kebab-case:
description: Path segments must use kebab-case
severity: warn
given: $.paths
then:
field: "@key"
function: pattern
functionOptions:
match: "^(/[a-z0-9{}/_-]+)+$"
operation-summary-required:
description: Every operation must have a summary
severity: error
given: $.paths[*][get,post,put,patch,delete]
then:
field: summary
function: truthy
operation-id-required:
description: Every operation must have an operationId
severity: error
given: $.paths[*][get,post,put,patch,delete]
then:
field: operationId
function: truthy
operation-description-required:
description: Every operation must have a description
severity: warn
given: $.paths[*][get,post,put,patch,delete]
then:
field: description
function: truthy
operation-tags-required:
description: Every operation must have at least one tag
severity: warn
given: $.paths[*][get,post,put,patch,delete]
then:
field: tags
function: truthy
parameter-description-required:
description: Every parameter must have a description
severity: warn
given: $.paths[*][get,post,put,patch,delete].parameters[*]
then:
field: description
function: truthy
operation-success-response-required:
description: Every operation must have a 2xx response
severity: error
given: $.paths[*][get,post,put,patch,delete].responses
then:
function: schema
functionOptions:
schema:
anyOf:
- required: ['200']
- required: ['201']
- required: ['204']
response-description-required:
description: Every response must have a description
severity: error
given: $.paths[*][get,post,put,patch,delete].responses[*]
then:
field: description
function: truthy
schema-title-required:
description: Component schemas should have a title
severity: warn
given: $.components.schemas[*]
then:
field: title
function: truthy
http-get-no-request-body:
description: GET operations must not have a request body
severity: error
given: $.paths[*].get
then:
field: requestBody
function: falsy
no-empty-descriptions:
description: Descriptions must not be empty strings
severity: warn
given: $..description
then:
function: pattern
functionOptions:
match: ".+"