-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswagger.yml
120 lines (120 loc) · 3.23 KB
/
swagger.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
openapi: 3.0.3
info:
title: Rinha Backend 2024 Q1
version: v1
paths:
/clientes/{id}/transacoes:
post:
summary: Efetuar transações de crédito ou débito
parameters:
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/transacaoRequest"
responses:
200:
$ref: "#/components/responses/transacaoResponse"
400:
description: Requisição com parâmetros inválidos ou não informados
404:
description: Cliente não encontrado
422:
description: Saldo insuficiente
/clientes/{id}/extrato:
get:
summary: Efetuar consultas de extrato
parameters:
- $ref: '#/components/parameters/id'
responses:
200:
$ref: "#/components/responses/extratoResponse"
400:
description: Requisição com parâmetros inválidos ou não informados
404:
description: Cliente não encontrado
components:
parameters:
id:
name: id
in: path
description: identificador de cliente
schema:
type: integer
required: true
schemas:
transacaoRequest:
type: object
properties:
valor:
type: integer
example: 1000
description: Valor representado em centavos
tipo:
type: string
enum: ['c','d']
description: c -> crédito, d -> débito
descricao:
type: string
minimum: 1
maximum: 10
example: descricao
required:
- valor
- tipo
- descricao
responses:
transacaoResponse:
description: Transação efetuada
content:
application/json:
schema:
type: object
properties:
limite:
type: integer
example: 100000
saldo:
type: integer
example: -9098
extratoResponse:
description: Extrato efetuado
content:
application/json:
schema:
type: object
properties:
saldo:
type: object
properties:
total:
type: integer
example: -9098
data_extrato:
type: string
format: date-time
limite:
type: integer
example: 100000
ultimas_transacoes:
type: array
items:
type: object
properties:
valor:
type: integer
example: 10
tipo:
type: string
enum: ['c','d']
description: c -> crédito, d -> débito
descricao:
type: string
minimum: 1
maximum: 10
example: 'descricao'
realizada_em:
type: string
format: date-time