# openweather   [![Latest Version]][crates.io] [Latest Version]: https://img.shields.io/crates/v/openweather.svg [crates.io]: https://crates.io/crates/openweather **Openweather is an *unofficial* thin wrapper around OpenWeatherMaps API for requesting current and historical weather data** --- Useful links: - [OpenWeatherMap API's](https://openweathermap.org/api) - [Registering an API key](https://openweathermap.org/appid) ## 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: ```rust 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](LICENSE-MIT) or http://opensource.org/licenses/MIT)