-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathswagger.yaml
341 lines (341 loc) · 7.71 KB
/
swagger.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
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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
---
# this is an API for ditup.org/api
# the repository https://github.com/ditup/ditapi
swagger: "2.0"
info:
title: ditup API
description: the REST JSON API for ditup.org online platform for real-world collaboration
version: "1.0.0"
# the domain of the service
host: ditup.org
# array of all schemes that your API supports
schemes:
- http
- https
# will be prefixed to all paths
basePath: /api
securityDefinitions:
basicAuth:
type: basic
description: HTTP Basic Authentication
consumes:
- application/vnd.api+json
produces:
- application/vnd.api+json
paths:
# CRUD users
/users:
get:
tags:
- users
summary: users
description: The users collection
security:
- basicAuth: []
responses:
200:
description: An array of users
schema:
type: array
items:
$ref: '#/definitions/User'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
tags:
- users
description: Create a new user
security:
- basicAuth: []
parameters:
- in: body
name: body
description:
required: true
schema:
$ref: '#/definitions/NewUser'
responses:
201:
description: A new user
schema:
$ref: '#/definitions/User'
/users/{username}:
get:
tags:
- users
description: get user by username
security:
- basicAuth: []
parameters:
- in: path
name: username
description: The username of the user we want to GET. Use user1 for testing.
required: true
type: string
responses:
200:
description: OK
patch:
tags:
- users
description: update the user data
security:
- basicAuth: []
parameters:
- in: path
name: username
description: The username of the user we want to GET. Use user1 for testing.
required: true
type: string
- in: body
name: body
description: profile or settings parameter(s) to update. Must update only profile XOR settings XOR email
required: true
schema:
$ref: '#/definitions/User'
responses:
200:
description: OK
schema:
$ref: '#/definitions/User'
delete:
tags:
- users
description: delete user by username
security:
- basicAuth: []
parameters:
- in: path
name: username
description: The username of the user we want to DELETE
required: true
type: string
responses:
204:
description: No Content
# CRUD tags
/tags:
get:
tags:
- tags
description: get list of tags (should be filtered by parameters)
security:
- basicAuth: []
responses:
200:
description: OK
post:
tags:
- tags
description: create a new tag
security:
- basicAuth: []
parameters:
- in: body
name: body
description: data for creating a new tag
required: true
schema:
$ref: '#/definitions/NewTag'
responses:
201:
description: Created
schema:
$ref: '#/definitions/Tag'
/tags/{tagname}:
get:
tags:
- tags
description: get a tag by tagname
security:
- basicAuth: []
parameters:
- in: path
name: tagname
description: The tagname of the tag to get
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/Tag'
404:
description: Not Found
patch:
tags:
- tags
description: update a tag
parameters:
- in: body
name: body
description: tag object with attributes to update
required: true
schema:
$ref: '#/definitions/Tag'
- in: path
name: tagname
description: The tagname of the tag to update
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/Tag'
403:
description: Not Authorized
404:
description: Not Found
delete:
tags:
- tags
description: delete tag by tagname
security:
- basicAuth: []
parameters:
- in: path
name: tagname
description: The tagname of the tag we want to DELETE
required: true
type: string
responses:
204:
description: No Content
403:
description: Not Authorized
404:
description: Not Found
definitions:
User:
type: object
required:
- data
properties:
data:
type: object
required:
- id
- type
- attributes
properties:
id:
type: string
description: the username
type:
type: string
enum:
- users
attributes:
type: object
required:
- username
properties:
username:
type: string
description: description
email:
type: string
description: description
givenName:
type: string
description: description
familyName:
type: string
description: description
description:
type: string
description: description
NewUser:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- attributes
properties:
type:
type: string
enum:
- users
attributes:
type: object
required:
- username
- email
- password
properties:
username:
type: string
email:
type: string
password:
type: string
Tag:
type: object
required:
- data
properties:
data:
type: object
required:
- id
- type
- attributes
properties:
id:
type: string
description: a unique tagname of the tag
type:
type: string
enum:
- tags
attributes:
type: object
required:
- tagname
- description
properties:
tagname:
type: string
description:
type: string
description: description of the tag
NewTag:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- attributes
properties:
type:
type: string
enum:
- tags
attributes:
type: object
required:
- tagname
properties:
tagname:
type: string
description:
type: string
Error:
properties:
code:
type: integer
format: int32
message:
type: string
fields:
type: string