-
Notifications
You must be signed in to change notification settings - Fork 937
/
using-traits.yaml
142 lines (142 loc) · 3.46 KB
/
using-traits.yaml
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
openapi: 3.0.0
info:
title: 'Example of using traits in swagger-php'
version: 1.0.0
paths:
'/entities/{id}':
delete:
tags:
- Entities
operationId: deleteEntity
parameters:
-
name: id
in: path
description: 'ID of entity to delete'
required: true
schema:
type: string
responses:
default:
description: 'successful operation'
'/products/{product_id}':
get:
tags:
- Products
operationId: 1395fb672d283f343885d77e3a1ce8a5
parameters:
-
name: product_id
in: path
description: 'ID of product to return'
required: true
schema:
type: string
responses:
default:
description: 'successful operation'
content:
application/json:
schema:
oneOf:
- { $ref: '#/components/schemas/SimpleProduct' }
- { $ref: '#/components/schemas/Product' }
- { $ref: '#/components/schemas/TrickyProduct' }
components:
schemas:
BellsAndWhistles:
title: 'Bells and Whistles trait'
type: object
allOf:
-
$ref: '#/components/schemas/Bells'
-
$ref: '#/components/schemas/Whistles'
-
properties:
plating:
description: 'The plating.'
example: gold
type: object
CustomName/Blink:
title: 'Blink trait'
properties:
frequency:
description: 'The frequency.'
example: 1
type: object
Colour:
title: 'Colour trait'
properties:
colour:
description: 'The colour.'
example: red
type: object
Bells:
title: 'Bells trait'
properties:
bell:
description: 'The bell (clashes with Product::bell).'
example: chime
type: object
Whistles:
title: 'Whistles trait'
properties:
whistle:
description: 'The bell.'
example: 'bone whistle'
type: object
Product:
title: 'Product model'
type: object
allOf:
-
$ref: '#/components/schemas/Colour'
-
$ref: '#/components/schemas/BellsAndWhistles'
-
properties:
id:
description: 'The unique identifier of a product in our catalog.'
type: integer
format: int64
example: 1
bell:
description: 'The product bell.'
example: gong
type: object
SimpleProduct:
title: 'SimpleProduct model'
type: object
allOf:
-
$ref: '#/components/schemas/Bells'
-
properties:
id:
description: 'The unique identifier of a simple product in our catalog.'
type: integer
format: int64
example: 1
type: object
TrickyProduct:
title: 'TrickyProduct model'
type: object
allOf:
-
$ref: '#/components/schemas/SimpleProduct'
-
$ref: '#/components/schemas/CustomName~1Blink'
-
properties:
trick:
description: 'The trick.'
example: 'recite poem'
type: object
tags:
-
name: Entities
description: Entities
-
name: Products
description: Products