-
Notifications
You must be signed in to change notification settings - Fork 0
/
swagger.yaml
163 lines (151 loc) · 3.43 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
openapi: 3.0.3
info:
title: Books API
version: 1.0.0
servers:
- url: http://127.0.0.1:8000/api/v2
paths:
/books/:
get:
summary: Method for get list of books
tags:
- Books
operationId: getallbooks
responses:
"200":
description: Successful list of books
content:
application/json:
schema:
$ref: "#/components/schemas/Books"
post:
summary: Method for add new book
tags:
- Books
operationId: createbook
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/BookCreate"
responses:
"200":
description: Successful created book
content:
application/json:
schema:
$ref: "#/components/schemas/Book"
"400":
description: missing name field
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/order/:
post:
tags:
- Payment
summary: Place order
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Order"
examples:
"Buy one book with id 34":
value:
order:
[ { "book_id": 34, "quantity": 1 } ]
"Buy three books, one with id 4 and two with id 50":
value:
order:
[ { "book_id": 4, "quantity": 1 }, { "book_id": 50, "quantity": 2 } ]
responses:
"200":
description: Place order for a book
content:
application/json:
schema:
$ref: "#/components/schemas/OrderResponse"
components:
schemas:
BookCreate:
type: object
required:
- title
- author
- quantity
- price
properties:
title:
type: string
example: Wild animals
author:
type: string
example: Connal Macenel
quantity:
type: integer
example: 42
price:
type: integer
example: 1000
Book:
type: object
required:
- title
- author
- quantity
- price
properties:
id:
type: integer
example: 12
title:
type: string
example: Wild animals
author:
type: string
example: Connal Macenel
quantity:
type: integer
example: 42
price:
type: integer
example: 1000
Order:
type: object
required:
- order
properties:
order:
type: array
items:
type: object
required:
- book_id
- quantity
properties:
book_id:
type: integer
example: 12
quantity:
type: integer
example: 2
OrderResponse:
type: object
properties:
order_id:
type: integer
example: 100
Books:
type: array
items:
$ref: "#/components/schemas/Book"
Error:
type: object
required:
- error
properties:
error:
type: string