This repository has been archived by the owner on Feb 15, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.yml
243 lines (241 loc) · 8.49 KB
/
openapi.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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
openapi: 3.0.0
info:
title: JavaScript Frameworks API
description: Example of Spring Boot app
version: 0.1.0
servers:
- url: http://localhost:8080
description: local
paths:
/frameworks:
get:
summary: Get a list of stored frameworks with ability to filter results
parameters:
- name: name
in: query
description: Case ignored name of the framework
required: false
example:
$ref: '#/components/schemas/framework/properties/name/example'
schema:
$ref: "#/components/schemas/framework/properties/name"
- name: version
in: query
description: Case ignored version of the framework
required: false
example:
$ref: '#/components/schemas/framework/properties/version/example'
schema:
$ref: "#/components/schemas/framework/properties/version"
- name: deprecationDate
in: query
description: Deprecation date in Unix Epoch format
required: false
example:
$ref: '#/components/schemas/framework/properties/deprecationDate/example'
schema:
$ref: "#/components/schemas/framework/properties/deprecationDate"
- name: deprecated
in: query
description: Filter deprecated or not deprecated frameworks
required: false
example: false
schema:
type: boolean
- name: hypeLevel
in: query
description: |
Filter by hypeLevel fiels. It is also **possible to send**
*hypeLevel* parameter **twice** for filtering frameworks
with hypeLevel between parameters values. For example
`hypeLevel=1&hypeLevel=5` filter frameworks like
`(1 <= framework.hypeLevel <= 5)`. **Order is not matter.**
required: false
example:
$ref: '#/components/schemas/framework/properties/hypeLevel/example'
schema:
$ref: "#/components/schemas/framework/properties/hypeLevel"
responses:
200:
description: List of all frameworks
content:
'application/json':
schema:
type: array
items:
$ref: "#/components/schemas/framework"
post:
summary: Create the new framework.
requestBody:
description: JSON object for creating the framework
content:
'application/json':
schema:
type: object
properties:
name:
$ref: "#/components/schemas/framework/properties/name"
version:
$ref: "#/components/schemas/framework/properties/version"
deprecationDate:
$ref: "#/components/schemas/framework/properties/deprecationDate"
hypeLevel:
$ref: "#/components/schemas/framework/properties/hypeLevel"
required:
- name
- version
- deprecationDate
- hypeLevel
responses:
201:
description: Rule was created.
content:
'application/json':
schema:
$ref: "#/components/schemas/framework"
400:
description: Request body doesn't have fields from specification.
/frameworks/{id}:
get:
summary: Get specific framework
parameters:
- name: id
in: path
required: true
description: The id of the framework to retrieve
example:
$ref: '#/components/schemas/framework/properties/id/example'
schema:
$ref: '#/components/schemas/framework/properties/id'
responses:
200:
description: Rule with specified {id} exist and will be returned in body
content:
'application/json':
schema:
$ref: "#/components/schemas/framework"
404:
description: Framework with specified `{id}` wasn't found
put:
summary: Put full framework entity for creating new or updating existing.
parameters:
- name: id
in: path
required: true
description: The id of the framework to retrieve
example:
$ref: '#/components/schemas/framework/properties/id/example'
schema:
$ref: '#/components/schemas/framework/properties/id'
requestBody:
description: JSON object for creating the framework. `id`'s in the body and in the path must equal.
content:
'application/json':
schema:
type: object
properties:
id:
$ref: "#/components/schemas/framework/properties/id"
name:
$ref: "#/components/schemas/framework/properties/name"
version:
$ref: "#/components/schemas/framework/properties/version"
deprecationDate:
$ref: "#/components/schemas/framework/properties/deprecationDate"
hypeLevel:
$ref: "#/components/schemas/framework/properties/hypeLevel"
required:
- id
- name
- version
- deprecationDate
- hypeLevel
responses:
200:
description: Rule wtih specified {id} was succesfully updated and will be returned in body
content:
'application/json':
schema:
$ref: "#/components/schemas/framework"
400:
description: Request body doesn't have fields from specification.
patch:
summary: Patch value of the framework with specified {id}
parameters:
- name: id
in: path
required: true
description: The id of the framework to patch
example:
$ref: '#/components/schemas/framework/properties/id/example'
schema:
$ref: '#/components/schemas/framework/properties/id'
requestBody:
description: Object that contains any of parameters specified below
content:
'application/json':
schema:
type: object
properties:
name:
$ref: "#/components/schemas/framework/properties/name"
version:
$ref: "#/components/schemas/framework/properties/version"
deprecationDate:
$ref: "#/components/schemas/framework/properties/deprecationDate"
hypeLevel:
$ref: "#/components/schemas/framework/properties/hypeLevel"
responses:
200:
description: Rule wtih specified {id} was succesfully updated and will be returned in body
content:
'application/json':
schema:
$ref: "#/components/schemas/framework"
400:
description: Request body doesn't have fields from specification.
404:
description: Framework with specified `{id}` wasn't found
delete:
summary: Delete the framework with specified {id}
parameters:
- name: id
in: path
required: true
description: The id of the rule to delete
example:
$ref: '#/components/schemas/framework/properties/id/example'
schema:
$ref: '#/components/schemas/framework/properties/id'
responses:
204:
description: Framework with specified `{id}` was succesfully deleted
404:
description: Framework with specified `{id}` wasn't found
components:
schemas:
framework:
type: object
properties:
id:
type: number
description: Unique identificator of the framework in system
example: 1
name:
type: string
description: Name of the JavaScript framework
example: Angular
version:
type: string
description: Version of the JavaScript framework
example: 6.0.0
deprecationDate:
type: number
description: Unix Epoch timestamp of the deprecation date
example: 1572735600
hypeLevel:
type: number
description: Level of the fantastic irratioanal admiration for the framework
minimum: 1
maximum: 10
example: 2