This repository has been archived by the owner on Aug 13, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswagger.yml
157 lines (150 loc) · 5.1 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
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
swagger: "2.0"
info:
title: TRMAPI
description: |
JSON API para consultar la [Tasa Representativa del Mercado](http://www.banrep.gov.co/es/tasa-cambio-del-peso-colombiano-trm) (TRM) en el [Servicio Web](https://www.superfinanciera.gov.co/inicio/60819) de la Superintendencia Financiera de Colombia (SFC).
Esta API es una función Lambda que se ejecuta en AWS y a la cual se accede por API Gateway, lo que garantiza su estabilidad, escalabilidad y rapidez.
La función lambda solicita la información al servicio web de la SFC y almacena el valor de la TRM en una tabla de Dynamodb.
Al usar esta API se reduce la carga sobre los servidores de la SFC y se garantiza la disponibilidad del servicio.
version: 1.0.0
license:
name: MIT
url: https://opensource.org/licenses/MIT
termsOfService: https://www.trmapi.com/terminos/
contact:
name: trmapi
url: https://www.trmapi.com
email: info@trmapi.com
host: api.trmapi.com
basePath: /
schemes:
- https
paths:
/latest:
get:
summary: Latest Endpoint
description: Responde con el valor de la TRM que aplica para la fecha actual. Si para la fecha actual no hay valor de la TRM se devuelte el valor más reciente.
produces:
- application/json
parameters:
- $ref: "#/parameters/validity"
responses:
200:
description: Ok
schema:
$ref: "#/definitions/TRM"
404:
description: No se encontró la fecha solicitada
422:
description: La fecha solicitada no es una fecha válida
502:
description: Se ha recibido una respuesta inválida del servidor de la SFC
504:
description: Se agotó el tiempo de respuesta para el servidor de la SFC
default:
description: Error inesperado
schema:
$ref: "#/definitions/Error"
/{date}:
get:
summary: Historical Endpoint
description: Devuelve el valor de la TRM que aplica para la fecha solicitada, la cual se debe ingresar en formato `YYYY-MM-DD`.
produces:
- application/json
parameters:
- $ref: "#/parameters/validity"
- name: date
in: path
description: Una fecha del pasado para la cual se desea consultar el valor de la TRM. La fecha se debe ingresar en formato `YYYY-MM-DD`
required: true
type: string
responses:
200:
description: Ok
schema:
$ref: "#/definitions/TRM"
404:
description: No se encontró la fecha solicitada
422:
description: La fecha solicitada no es una fecha válida
502:
description: Se ha recibido una respuesta inválida del servidor de la SFC
504:
description: Se agotó el tiempo de respuesta para el servidor de la SFC
default:
description: Error inesperado
schema:
$ref: "#/definitions/Error"
/timeseries:
get:
summary: Time-Series Endpoint
description: Responde con los valores diarios de la TRM que aplican entre dos fechas. El número máximo de días que se puede solicitar es de 365.
produces:
- application/json
parameters:
- $ref: "#/parameters/validity"
- name: start_date
in: query
description: La fecha inicial del intervalo de tiempo que se desea consultar en formato `YYYY-MM-DD`.
required: true
type: string
- name: end_date
in: query
description: La fecha final del intervalo de tiempo que se desea consultar en formato `YYYY-MM-DD`.
required: true
type: string
responses:
200:
description: Ok
schema:
$ref: "#/definitions/Time-Series"
404:
description: No se encontró la fecha solicitada
422:
description: La fecha solicitada no es una fecha válida
502:
description: Se ha recibido una respuesta inválida del servidor de la SFC
504:
description: Se agotó el tiempo de respuesta para el servidor de la SFC
default:
description: Error inesperado
schema:
$ref: "#/definitions/Error"
parameters:
validity:
name: validity
description: Indica si se muestra las fechas para las que son válidas un valor.
type: boolean
in: query
required: false
default: false
definitions:
TRM:
type: object
title: Tasa Representativa del Mercado
required:
- date
- value
properties:
date:
type: string
title: Fecha para la cual se realizó la solicitud
example: "2018-10-10"
value:
type: number
title: El valor correspondiente a la TRM
example: 3057.55
Time-Series:
type: array
title: Histórico Tasa Representativa del Mercado
items:
$ref: "#/definitions/TRM"
Error:
type: object
required:
- error
properties:
error:
type: string
title: El mensaje del error encontrado
example: "La fecha solicitada no corresponde con el formato YYYY-MM-DD"