-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathskeleton__v1.yml
195 lines (190 loc) · 4.87 KB
/
skeleton__v1.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
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
openapi: 3.0.0
info:
version: "1"
title: "Skeleton"
description: Skeleton to write manifests
servers:
- url: http://server-host/openapi/Skeleton/v1
tags:
- name: Resource
paths:
"/resource":
post:
tags:
- Resource
summary: "Make an resource"
description: ""
requestBody:
description: ""
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePostRequest'
responses:
"200":
description: "Order successfully created"
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceResult'
"500":
description: 'Some internal error'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResult'
get:
tags:
- Resource
summary: "Get list of resource"
description: "Get list of resource"
parameters:
- in: query
name: "filter"
description: "Returning orders with by a specific filter."
required: false
schema:
type: string
responses:
"200":
description: "Success"
content:
application/json:
schema:
$ref: "#/components/schemas/ResourceListResult"
'500':
description: "Internal error"
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResult'
"/resource/{id}":
get:
tags:
- Resource
summary: 'Get info about specific resource'
description: "Returns information of resource by id"
parameters:
- in: path
name: id
description: Id of resource
required: true
schema:
type: string
responses:
"200":
description: 'Success'
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceResult'
"500":
description: 'Some internal error'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResult'
components:
schemas:
# Basic results components
ErrorResult:
type: object
properties:
messages:
type: array
items:
$ref: "#/components/schemas/Message"
description: "Message field is not required"
Message:
type: object
properties:
level:
type: string
enum:
- emergency
- alert
- critical
- error
- warning
- notice
- info
type:
type: string
enum:
- UNDEFINED
- LOGGER_MESSAGE
description: >
You can expose this enum for all your errors
UNDEFINED - Any undefined message type
LOGGER_MESSAGE - Same as undefined
text:
type: string
description: Message, that describes what went wrong
SuccessResult:
allOf:
- $ref: '#/components/schemas/ErrorResult'
type: object
properties:
data:
type: object
## One resource result
ResourceResult:
allOf:
- $ref: '#/components/schemas/SuccessResult'
type: object
properties:
data:
$ref: '#/components/schemas/Resource'
## Result with list of resource
ResourceListResult:
allOf:
- $ref: '#/components/schemas/SuccessResult'
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Resource'
## Body for post request
ResourcePostRequest:
type: object
required:
- requiredField
properties:
requiredField:
type: string
description: required
optionalField:
type: string
nullable: true
description: optional
## Resource object
Resource:
type: object
properties:
id:
type: string
description: Unique identificator of order (generated by server).
example: "AP7734"
requiredField:
type: string
description: Order number received from supplier
optionalField:
type: string
nullable: true
example: null
objectField:
$ref: '#/components/schemas/NestedObject'
arrayField:
type: array
description: List of ordered products
items:
$ref: '#/components/schemas/NestedObject'
NestedObject:
type: object
properties:
name:
type: string
description: Some name
example: "name"