OpenWeather (con base en Londres) es un equipo de tecnólogos que crea productos para negocios flexibles utilizando datos del clima. Por cada punto en el mundo, OpenWeather provee datos hiperlocales actualizados minuto a minuto, históricos, actuales, y desde pronósticos de corto plazo a anuales. Todos los datos son disponibles a través de APIs bajo estándares de la industria.
OpenWeather Ltd. posee más de tres millones de clinetes incluyendo compañías Fortune 500 y miles de compañías globales.
¿Qué datos están disponibles en OpenWeather?
Los datos disponibles son muchísimos:
Current weather ( 😎 vamos a usar este) Minute forecast for 1 hour Hourly forecast for 48 hours Daily forecast for 7 days Historical weather data for 40+ years back
Los datos que utilizaremos en este open lab serán actuales, es decir, del momento en que hagamos la consulta y las : Hora de salida del Sol (en formato Unix Epoch) Hora de puesta del Sol (en formato Unix Epoch)
Configuración de cuenta
Crear usuario
Acceder a la API Key
User > My API Keys
El código que figura en el campo Key es lo que tendremos que tener a mano cada vez que realicemos una consulta a la base de datos por medio de la API.
A buscar datos!
Para comenzar a entender los datos haremos una simple llamada a la base de datos por medio de la API.
Ejemplo clima actual: Buenos Aires
Copiar y pegar en el navegador la siguiente url
https://api.openweathermap.org/data/2.5/weather?q=Buenos%20Aires,ar&appid=2c5d39580bce43c97cd49465e0988434
Respuesta
Si todo salió bien veremos una respuesta parecida a esta:
{
"coord": {
"lon": -58.3772,
"lat": -34.6132
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}
],
"base": "stations",
"main": {
"temp": 289.54,
"feels_like": 287.94,
"temp_min": 288.66,
"temp_max": 291.47,
"pressure": 1022,
"humidity": 27
},
"visibility": 10000,
"wind": {
"speed": 4.63,
"deg": 160
},
"clouds": {
"all": 0
},
"dt": 1665674969,
"sys": {
"type": 1,
"id": 8224,
"country": "AR",
"sunrise": 1665652425,
"sunset": 1665698724
},
"timezone": -10800,
"id": 3435910,
"name": "Buenos Aires",
"cod": 200
}
Todo luce bien pero... con esas temperaturas se va a derretir la ciudad!
Lo que sucedes es que los datos nos llegan en escala Fahrenheit y no en Cº (Celsius) que es lo que solemos usar en Argentina.
Para recibir los datos en Celsius tenemos que especificar la unidad de medida al final de la llamada. Así se ve:
Respuesta en Celsius
{
"coord": {
"lon": -58.3772,
"lat": -34.6132
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}
],
"base": "stations",
"main": {
"temp": 16.36,
"feels_like": 14.78,
"temp_min": 15.51,
"temp_max": 18.32,
"pressure": 1022,
"humidity": 28
},
"visibility": 10000,
"wind": {
"speed": 4.63,
"deg": 160
},
"clouds": {
"all": 0
},
"dt": 1665675401,
"sys": {
"type": 1,
"id": 8224,
"country": "AR",
"sunrise": 1665652425,
"sunset": 1665698724
},
"timezone": -10800,
"id": 3435910,
"name": "Buenos Aires",
"cod": 200
}
Ahora sí tenemos todo correcto en nuestra llamada.
Podemos usar el mismo modelo de la llamada para ver el clima de otras ciudades.
Ejemplo clima actual: Londres
https://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=2c5d39580bce43c97cd49465e0988434&units=metric
Ejemplo clima actual: Madrid
https://api.openweathermap.org/data/2.5/weather?q=Madrid,es&appid=2c5d39580bce43c97cd49465e0988434&units=metric
Ejemplo clima actual: México DF
https://api.openweathermap.org/data/2.5/weather?q=Mexico,mx&appid=2c5d39580bce43c97cd49465e0988434&units=metric