Crates.io | openweather_sdk |
lib.rs | openweather_sdk |
version | 0.1.8 |
source | src |
created_at | 2023-04-27 03:33:54.205665 |
updated_at | 2024-06-01 05:37:27.758784 |
description | a fully typed SDK for the OpenWeather API |
homepage | |
repository | https://github.com/jt-rose/openweather_sdk |
max_upload_size | |
id | 849994 |
size | 84,569 |
This library is a small rust wrapper for making requests to the OpenWeather API. This library includes:
use openweather_sdk::{OpenWeather, Units, Language};
let openweather = OpenWeather::new(
"MY_PRIVATE_API_KEY".to_string(),
Units::Imperial,
Language::English
);
let lat = 38.795021;
let lon = -77.273300;
let count = 10;
let forecast_response = openweather.forecast.call(lat, lon, count).await;
let lat = 38.795021;
let lon = -77.273300;
let historical_date = 1606223802;
let date = "2024-05-31" // YYYY-MM-DD format
// get one call data for current weather
let res = openweather.one_call.call(lat, lon).await;
// get one call data for historical weather
let res2 = openweather.one_call.historical(lat, lon, historical_date).await;
// get one call data for daily aggregation
let res3 = openweather.one_call.call_daily_aggregation(lat, lon, date, None).await;
// get one call data for weather overview
let res4 = openweather.one_call.weather_overview(lat, lon, date).await;
// customize response fields
openweather.one_call.fields.minutely = false;
openweather.one_call.fields.hourly = false;
let res5 = openweather.one_call.call(lat, lon).await;
let lat = 38.795021;
let lon = -77.273300;
let count = 10;
// get forecast data with specified number of timestamps
let res = openweather.forecast.call(lat, lon, count).await;
let lat = 38.795021;
let lon = -77.273300;
// get current forecast data
let res = openweather.current.call(lat, lon).await;
let lat = 38.795021;
let lon = -77.273300;
let zoom = 1;
let x_tiles = 1;
let y_tiles = 1;
// get various types of map data
let cloud_map = openweather.maps.get_cloud_map(zoom, x_tiles, y_tiles).await;
let precip_map = openweather.maps.get_precipitation_map(zoom, x_tiles, y_tiles).await;
let temp_map = openweather.maps.get_temperature_map(zoom, x_tiles, y_tiles).await;
let wind_spd_map = openweather.maps.get_wind_speed_map(zoom, x_tiles, y_tiles).await;
let pressure_map = openweather.maps.get_pressure_map(zoom, x_tiles, y_tiles).await;
let lat = 38.795021;
let lon = -77.273300;
// get current and forecast air pollution data
let res = openweather.air_pollution.get_current_air_pollution(lat, lon).await;
let res2 = openweather.air_pollution.get_forecast_air_pollution(lat, lon).await;
// get historical air pollution data with start and end timestamps
let start = 1606223802;
let end = 1606482999;
let res3 = openweather.air_pollution.get_historical_air_pollution(lat, lon, start, end).await;
let lat = 38.795021;
let lon = -77.273300;
let city = "Washington";
let state = "DC";
let country = "US";
let limit = 5;
let res = openweather.geocoding.get_geocoding(city, Some(state), Some(country), limit).await;
let res2 = openweather.geocoding.get_geocoding_by_zip_code("20001", None).await;
let res3 = openweather.geocoding.get_location_data(lat, lon, limit).await;