Como obter dados climáticos com a API forecast.io

Conhecendo a API

A API pode ser encontrada no endereço https://developer.forecast.io/

O uso dela é livre e também grátis para até 1000 requisições por dia. A partir da requisição de número 1001 seu uso é cobrado.

Para o caso em que você não queira ser cobrado caso atinja 1000 requisições, não informe seus dados de cobrança, caso contrário será cobrado para os acessos a partir desse limite.

Obtendo a API Key

Após efetuar o cadastro, tenha certeza de estar logado.

Na tela principal da API (no link acima) você poderá visualizar sua API Key que é composta por uma string com 32 caracteres.

Ainda na tela inicial, você pode visualizar uma área onde mostra o relatório de uso e quantos acessos ainda restam para o dia.

Nessa tela tem também uma área de boas vindas que tem um link para acessar a API como forma de teste.

Clique sobre esse link e verá o resultado abaixo

{  
   "latitude":37.8267,
   "longitude":-122.423,
   "timezone":"America/Los_Angeles",
   "offset":-7,
   "currently":{  
      "time":1426551154,
      "summary":"Mostly Cloudy",
      "icon":"partly-cloudy-day",
      "nearestStormDistance":0,
      "precipIntensity":0.0023,
      "precipIntensityError":0.0007,
      "precipProbability":0.04,
      "precipType":"rain",
      "temperature":63.09,
      "apparentTemperature":63.09,
      "dewPoint":52.96,
      "humidity":0.7,
      "windSpeed":4.53,
      "windBearing":307,
      "visibility":9.17,
      "cloudCover":0.67,
      "pressure":1016.73,
      "ozone":305.42
   },
   /// mais um monte de coisas aqui
}

Filtrando o Resultado

A API possui dois endpoints principais, um com os dados da próxima semana e outro com os dados de um dia e horário específico (na documentação é informado que tem dados de 60 anos no passado até 10 anos no futuro).

O endpoint para os dados da próxima semana é https://api.forecast.io/forecast/APIKEY/LATITUDE,LONGITUDE

O endpoint para os dados de um dia e horário específico é https://api.forecast.io/forecast/APIKEY/LATITUDE,LONGITUDE,TIME

Onde:

APIKEY: Sua API Key que é encontrada no seu dashboard

LATITUDE: A latitude do local desejado

LONGITUDE: A longitude do local desejado

TIME: Pode ser utilizado no formato [YYYY]-[MM]-[DD]T[HH]:[MM]:[SS] e pode inclusive informar um timezone específico adicionando os valores para o seguinte formato {+,-}[HH][MM] ao final da string, Ex: 2013-05-06T12:00:00-0400

Personalizando o retorno

As personalizações que mais gosto de utilizar são a tradução e unidade de media.

Para personalizar a unidade de medida, devemos adicionar a querystring units=si, com isso será utilizado o sistema de medidas internacional.

Para personalizar o idioma de retorno, devemos adicionar a querystring lang=pt, agora os dados serão traduzidos para o portugês.

Na documentação https://developer.forecast.io/docs/v2 podemos verificar quais os possíveis valores e outras personalizações.

Um outro parâmetro interessante é o que permite que sejam excluídos dados que não precisamos.

Para isso devemos informar a querystring exclude=[blocks], onde [blocks] deve ser substituído por um ou mais dos seguintes valores currently, minutely, hourly, daily, alerts, flags. Caso escolha mais de um, utilize a vírgula para separá-los sem adicionar espaços entre eles, como por exemplo: exclude=minutely,hourly,daily,alerts,flags

Após toda essa personalização, nosso resultado ficará:

{
   "latitude":37.8267,
   "longitude":-122.423,
   "timezone":"America/Los_Angeles",
   "offset":-7,
   "currently":{
      "time":1426553163,
      "summary":"Chuva Fraca",
      "icon":"rain",
      "nearestStormDistance":0,
      "precipIntensity":0.6807,
      "precipIntensityError":0.0254,
      "precipProbability":1,
      "precipType":"rain",
      "temperature":16.59,
      "apparentTemperature":16.59,
      "dewPoint":11.82,
      "humidity":0.73,
      "windSpeed":1.91,
      "windBearing":303,
      "visibility":14.55,
      "cloudCover":0.76,
      "pressure":1016.69,
      "ozone":306.08
   }
}

 Conclusão

O acesso é bem simples e o retorno muito completo.

No próximo post, farei um chrome extension que utiliza a localização informada pelo browser e faz a chamada à API para apresentar um ícone da condição climática atual na barra de ferramentas do browser.

Deixe seu comentário, crítica ou sugestão que eu responderei com prazer.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: