Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.
/ dark-sky-core Public archive

A .NET Standard Library for using the Dark Sky API.

License

Notifications You must be signed in to change notification settings

amweiss/dark-sky-core

Repository files navigation

Dark Sky Core

NuGet Build Status codecov

A .NET Standard Library for using the Dark Sky API.

Usage

The main class is DarkSkyService. When using it you will need provide your API key after signing up for a dev account. You can also provide an implementations of IHttpClient and IJsonSerializerService if you want to replace the default ZipHttpClient and JsonNetJsonSerializerService for testing or other purposes.

Once you have an instance of the class, use GetForecast to use the API. The method by default is a forecast request. If you specify a value for ForecastDateTime in an OptionalParameters instance it will become a time machine request.

The responses all take the form of a CamelCase version of the Dark Sky Response in DarkSkyResponse. This includes the headers and properties for the required text and link to use based on the Terms of Service.

var darkSky = new DarkSky.Services.DarkSkyService(apiKey);
var forecast = await darkSky.GetForecast(42.915, -78.741);

if (forecast?.IsSuccessStatus == true)
{
    Console.WriteLine(forecast.Response.Currently.Summary);
}
else
{
    Console.WriteLine("No current weather data");
}
Console.WriteLine(forecast.AttributionLine);
Console.WriteLine(forecast.DataSource);

You can see more examples of usage in the integration tests.

Additional Information

Code of Conduct and Contributing Guidelines for the project.