🌤️ Sunny
An Open-meteo API client written in Gleam.
Makes it easier to get weather forecasts, current and past weather data with different models anywhere you want !
Installation
Add this package to your gleam project (not online yet)
gleam add sunnyGetting the current temperature in a city
Example code
Here, the function `send` corresponds to a function that makes a HTTP request. For that, you can use HTTP clients such as `gleam_httpc` or `gleam_fetch`. ```gleam import gleam/dict import gleam/io import gleam/option import sunny import sunny/api/forecast import sunny/api/forecast/instant import sunny/api/geocoding import sunny/measurement pub fn main() { let sunny = sunny.new() let assert Ok(location) = sunny |> geocoding.get_first_location( geocoding.params("marseille") |> geocoding.set_language(geocoding.French), ) // Make a HTTP request |> send |> geocoding.get_first_result let assert Ok(forecast_result) = sunny |> forecast.get_forecast( forecast.params(geocoding.location_to_position(location)) |> forecast.set_current([instant.Temperature2m]), ) // Make a HTTP request |> send |> forecast.get_result let assert option.Some(current_data) = forecast_result.current let assert Ok(temperature) = current_data.data |> dict.get(instant.Temperature2m) io.println( location.name <> "'s current temperature is : " <> measurement.to_string(temperature), ) } ```
More examples in the test/examples directory
Further documentation can be found at https://hexdocs.pm/sunny.
Contributing
Contributions are very welcome ! Make a fork, and once you made the changes you wanted, make a PR.
Todo
- Historical forecast API
- Air quality API