forked from VNG-Realisatie/Haal-Centraal-common
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.spectral.yml
104 lines (97 loc) · 3.17 KB
/
.spectral.yml
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
extends: spectral:oas
rules:
oas3-unused-components-schema: off
tag-description: off
oas3-api-servers: off
openapi-tags: off
info-description: off
schema-names-pascal-case:
description: Schema names MUST be written in PascalCase, only extensions _links, _embedded, _enum and _tabel are allowed outside PascalCase
message: '{{property}} is niet PascalCase (UpperCamelCase): {{error}}'
recommended: true
type: style
given: '$.components.schemas.*~'
then:
function: pattern
functionOptions:
match: '/^([A-Z][a-z0-9]+)+(_embedded|_links|_enum|_tabel)?$/'
property-of-object-type:
description: Properties MUST not be of object type
message: '{{path}} is gedefinieerd als een inline object. Definieer deze als een schema component en verwijs hiernaar met $ref'
type: style
resolved: false
given: '$.components.schemas..properties[*].properties'
then:
function: falsy
parameter-names-camel-case:
description: Parameter names MUST be written in camelCase
message: '{{value}} is niet camelCase: {{error}}'
recommended: true
type: style
given: '$.components.parameters[?(@.in == "query")]'
then:
field: name
function: casing
functionOptions:
type: camel
enum-value-snake-case:
description: Enumeration values SHOULD be in snake case
message: 'Enumeratiewaarde "{{value}}" is niet snake_case: {{path}}'
recommended: true
resolved: false
type: style
given: '$.components.schemas..enum[*]'
then:
function: casing
functionOptions:
type: snake
allof-extends-object:
description: allOf must extend an object and add at least one property
message: '{{path}} moet beginnen met $ref'
resolved: false
type: style
given: '$..allOf[0]'
then:
- field: "$ref"
function: truthy
allof-adds-property:
description: allOf must extend an object and add at least one property
message: '{{path}}: het tweede item in een allOf moet ten minste één property toevoegen'
resolved: false
type: style
given: '$..allOf[1]'
then:
- field: "properties"
function: truthy
allof-single-extension:
description: allOf must extend from exactly one object
message: '{{path}}: allOf mag niet meer dan twee items bevatten, de eerste met $ref, de tweede met properties'
resolved: false
type: style
given: '$..allOf[2]'
then:
function: falsy
too-much-information:
description: properties of GET responses should not use pattern, minimum, maximum, minLength, maxLength, minItems or required
resolved: false
type: style
message: 'Gebruik geen {{property}} in response definitie: {{path}}'
given: '$.components.schemas..properties[*]'
then:
- field: "minItems"
function: falsy
- field: "maxItems"
function: falsy
- field: "maxLength"
function: falsy
- field: "maxLength"
function: falsy
- field: "minimum"
function: falsy
- field: "maximum"
function: falsy
- field: "required"
function: falsy
- field: "pattern"
function: falsy
no-$ref-siblings: off