-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenapi.yml
136 lines (124 loc) · 3.65 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
openapi: 3.0.0
info:
title: Magical Mutations
version: "1.0.0"
description: |
A small API for mutating strings. Primarily used for teaching TDD.
components:
schemas:
GenericApiResponse:
type: object
properties:
message:
type: string
MutationResult:
description: Represents the result of a MutationRequest.
type: object
properties:
id:
description: A randomly generated UUID used to retrieve a previously calculated MutationResult.
type: string
format: uuid
result:
type: string
example:
id: fbe89b26-beb1-4595-a928-f2998a768752
result: DCBA
MutationOperation:
description: Represents a request for the mutation of a desired sequence.
type: object
properties:
sequence:
type: string
operation:
description: The operation to be performed on the sequence.
type: string
enum:
- encode_base64
- decode_base64
- encode_rot13
- decode_rot13
- encode_shift_left
- decode_shift_left
- encode_shift_right
- decode_shift_right
- reverse
- separate
- count
operation_key:
description: |
An integer value for operations which require a numeric key.
Those operations are: encode_shift_left, decode_shift_left, encode_shift_right, and decode_shift_right.
If no value is provided, 0 will be assumed.
type: integer
required:
- sequence
- operation
example:
sequence: ABCD
operation: reverse
operation_key: 0
responses:
200SuccessfulOperation:
description: The requested MutationOperation was completed.
content:
application/json:
schema:
$ref: "#/components/schemas/MutationResult"
400BadRequest:
description: The MutationRequest was malformed or otherwise contained invalid data.
content:
application/json:
schema:
$ref: "#/components/schemas/GenericApiResponse"
example:
message: The request was missing property 'sequence'
500InternalServerError:
description: An error occured on the server.
content:
application/json:
schema:
$ref: "#/components/schemas/GenericApiResponse"
example:
message: Whoopsie
requestBodies:
MutationRequest:
description: Request to attempt a MutationOperation.
content:
application/json:
schema:
$ref: "#/components/schemas/MutationOperation"
required: true
paths:
/mutate:
post:
description: Perform a MutationOperation.
requestBody:
$ref: "#/components/requestBodies/MutationRequest"
responses:
200:
$ref: "#/components/responses/200SuccessfulOperation"
400:
$ref: "#/components/responses/400BadRequest"
500:
$ref: "#/components/responses/500InternalServerError"
/find:
post:
description: Find a previously calculated result.
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
required: true
responses:
200:
$ref: "#/components/responses/200SuccessfulOperation"
400:
$ref: "#/components/responses/400BadRequest"
500:
$ref: "#/components/responses/500InternalServerError"