-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswagger.yaml
160 lines (151 loc) · 3.46 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
openapi: 3.0.0
info:
title: Clever-Bank API
description: API for managing users, banks, accounts, and transactions.
version: 1.0.0
components:
schemas:
User:
type: object
properties:
id:
type: integer
format: int64
example: 1
name:
type: string
example: "John Doe"
email:
type: string
example: "[email protected]"
accounts:
type: array
items:
$ref: '#/components/schemas/Account'
TransactionType:
type: string
enum:
- DEPOSIT
- WITHDRAW
- INTEREST
Transaction:
type: object
properties:
id:
type: integer
format: int64
example: 1001
amount:
type: number
format: decimal
example: 500.75
createdAt:
type: string
format: date-time
example: "2023-10-14T10:15:30Z"
sourceAccountId:
type: integer
format: int64
example: 2001
destinationAccountId:
type: integer
format: int64
example: 2002
transactionType:
$ref: '#/components/schemas/TransactionType'
Bank:
type: object
properties:
id:
type: integer
format: int64
example: 1
name:
type: string
example: "Clever Bank"
users:
type: array
items:
$ref: '#/components/schemas/User'
Account:
type: object
properties:
id:
type: integer
format: int64
example: 2001
balance:
type: number
format: decimal
example: 1500.00
bankId:
type: integer
format: int64
example: 1
userId:
type: integer
format: int64
example: 1
transactionsIds:
type: array
items:
type: integer
format: int64
example: 1001
isSavingAccount:
type: boolean
example: true
paths:
/users:
get:
summary: Get all users
responses:
'200':
description: A list of all users
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{userId}:
get:
summary: Get user information by ID
parameters:
- name: userId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: User information
content:
application/json:
schema:
$ref: '#/components/schemas/User'
/accounts:
get:
summary: Get all accounts
responses:
'200':
description: A list of all accounts
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Account'
/transactions:
get:
summary: Get all transactions
responses:
'200':
description: A list of all transactions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Transaction'