-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.yaml
142 lines (141 loc) · 4.52 KB
/
openapi.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
openapi: 3.0.0
info:
title: Air Quality API
description: |
REST API responsible for exposing
the air information of a nearest
city to GPS coordinates using iqair
version: 1.0.0
paths:
/healthy:
get:
summary: check that app is up and running
tags:
- health
responses:
'200':
description: A successful response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: "Thanks for checking, I'm good and alive"
/nearest-city/air/pollution:
get:
summary: get Air Pollution data for city by its lat, lon
description: Fetch nearest city details from iqair and just return back pollution data
tags:
- AirPollution
responses:
'200':
description: A successful response
content:
application/json:
schema:
type: object
properties:
Result:
type: object
properties:
Pollution:
type: object
properties:
ts:
type: string
example: 2023-05-06T09:00:00.000Z
aquis:
type: number
example: 19
mainus:
type: string
example: p2
aqicn:
type: number
example: 19
maincn:
type: string
example: p2
'409':
description: Conflict |
Maybe while integrating with iqair
or pollution key doesn't returned from iqair
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: error message
example:
"Pollution key doesn't returned from IqAir, nearest city data: {}"
'400':
description: validation error, lat or lon not provided as URL query params
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: error message
example: Error validating incoming request, \"lat\" is required
'500':
description: server error
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: error message
/nearest-city/most-polluted-date:
get:
summary: get the time and date where the city is most polluted, default city is Paris
tags:
- AirPollution
responses:
'200':
description: A successful response
content:
application/json:
schema:
type: object
properties:
Result:
type: object
properties:
Pollution:
type: object
properties:
date:
type: string
example: Sun May 07 2023
time:
type: string
example: 06:21:00 GMT+0200 (Eastern European Standard Time)
'404':
description: if there's no citites recorded in db
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: error message
example: "No cities recorded in db for city: Cairo"
'500':
description: server error
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: error message