Openweather is an unofficial thin wrapper around OpenWeatherMaps API for requesting current and historical weather data
Useful links:
How to use
To request weather data a LocationSpecifier
needs to be defined for the location of interest. The available methods of specifiying a location are:
- CityAndCountryName (
{city: "CITY_NAME", country: "COUNTRY_CODE"}
) - CityId (
CITY_ID_CODE
) - Coordinates (
{lat: LATITUDE, lon: LONGITUDE}
) - ZipCode (
{zip: "ZIP_CODE", country: "COUNTRY_CODE"}
) - BoundingBox (
{lon_left: LEFT_LONGITUDE, lat_bottom: BOTTOM_LATITUDE, lon_right: RIGHT_LONGITUDE, lat_top: TOP_LATITUDE}
) - Circle (
{lat: CENTER_LATITUDE, lon: CENTER_LONGITDE, count: NUMBER_OF_CITIES_OF_INTEREST}
) - CityIds (
[CITY_ID_1, CITY_ID_2]
)
Once a LocationSpecifier
has been created it can be used to querry any of available API endpoints:
- get_current_weather
- get_5_day_forecast
- get_16_day_forecast
- get_historical_data
- get_accumulated_temperature_data
- get_accumulated_precipitation_data
- get_current_uv_index
- get_forecast_uv_index
- get_historical_uv_index
An example of querrying the current temperature in Minneapolis, MN:
extern crate openweather;
use openweather::LocationSpecifier;
static API_KEY: &str = "YOUR_API_KEY_HERE";
fn main()
{
let loc = LocationSpecifier::CityAndCountryName{city:"Minneapolis", country:"USA"};
let weather = openweather::get_current_weather(loc, API_KEY).unwrap();
println!("Right now in Minneapolis, MN it is {}K", weather.main.temp);
}
License
openweather is licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)