Skip to content

A Darksky.net (formerly forecast.io) weather API client for Elixir

License

Notifications You must be signed in to change notification settings

techgaun/darkskyx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Darkskyx

Build Status Hex version Hex downloads

A Darksky.net weather api client for Elixir

As of March 31, 2020, Darksky has been acquired by Apple and the API will continue to function through the end of 2021.

Installation

The package can be installed as:

Add darkskyx to your list of dependencies in mix.exs:

def deps do
  [{:darkskyx, "~> 1.0"}]
end

Ensure darkskyx is started before your application:

def application do
  [applications: [:darkskyx]]
end

Usage

You can use darkskyx to perform forecast as well as time machine request. You will need to configure the darksky api key properly.

configuration

The simplest would be to set darksky api key as below:

export DARKSKY_API_KEY=<api_key>

Now, in your config.exs (or environment specific configuration), add the config block to configure Darkskyx. You can pass keyword list of units, lang, excludes and extends for the defaults config block which will be used to override the global default configuration. The default configuration is to use units: auto and lang: en. On top of the default configuration, you can also override the default configuration per request by passing the %Darkskyx{} struct configured to your liking.

config :darkskyx, api_key: System.get_env("DARKSKY_API_KEY"),
  defaults: [
    units: "us",
    lang: "en"
  ]

Examples

Darkskyx.forecast(41.032, -94.234)

Darkskyx.forecast(41.043, -93.23432, %Darkskyx{lang: "ar"})

Darkskyx.forecast(41.032, -94.234, %Darkskyx{exclude: "daily,hourly"})

Darkskyx.time_machine(41.043, -93.23432, 13432423)

Darkskyx.time_machine(41.043, -93.23432, 13432423, %Darkskyx{lang: "ar", units: "si"})

Darkskyx.current(37, -94)

Darkskyx.current(37, -94, %Darkskyx{lang: "ar"})

This package only performs API call and asks consumer of this package to perform things such as handling rate-limiting.

Change on v1.0

All the raw api calls except Darkskyx.current and Darkskyx.forecast now return headers for success calls like: {:ok, body, headers} This gives flexibility for API consumer to handle things such as rate limiting based on the headers.

Author

License

About

A Darksky.net (formerly forecast.io) weather API client for Elixir

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages