YandexWeatherApi.DependencyInjection
0.0.2
dotnet add package YandexWeatherApi.DependencyInjection --version 0.0.2
NuGet\Install-Package YandexWeatherApi.DependencyInjection -Version 0.0.2
<PackageReference Include="YandexWeatherApi.DependencyInjection" Version="0.0.2" />
paket add YandexWeatherApi.DependencyInjection --version 0.0.2
#r "nuget: YandexWeatherApi.DependencyInjection, 0.0.2"
// Install YandexWeatherApi.DependencyInjection as a Cake Addin #addin nuget:?package=YandexWeatherApi.DependencyInjection&version=0.0.2 // Install YandexWeatherApi.DependencyInjection as a Cake Tool #tool nuget:?package=YandexWeatherApi.DependencyInjection&version=0.0.2
YandexWeatherApi C# wrapper
YandexWeatherApi | |
---|---|
YandexWeatherApi.DependencyInjection |
Create a request
var request = YandexWeather.CreateBuilder()
.UseApiKey("your api key")
.Build()
.Forecast(); // or Informers()
Adding parameters
To add parameters you can use extension or set it to fields
request.WeatherLocale = WeatherLocale.be_BY;
request.Extra = true;
request.Hours = true;
Or
request
.WithLocale(WeatherLocale.be_BY)
.Hours()
.Extra(false)
.WithLocality(55, 21);
Send request
Just call Send
var result = await request.Send(cancellationToken);
Result
Result contains response or error if something goes wrong
var isSuccess = result.IsSuccess;
var isFail = result.IsFail;
var data = result.Data; //throw if error
var dataOrDefault = result.DataOrDefault; //null if error
var error = result.Error; //throw if success
var errorOrDefault = result.ErrorOrDefault; //null if success
YandexWeatherApi.DependencyInjection
builder.Services.AddYandexWeather(options =>
{
options.ClientFactory = factory
options.Logger = loger
options.Client = client
options.ApiKey = "key";
});
Or you can use service provider to resolve dependencies
builder.Services.AddYandexWeather((provider, options) =>
{
options.ClientFactory = provider.GetRequiredService<IHttpClientFactory>();
options.ApiKey = "key";
});
After registration just resolve IYandexWeatherRequestCreator
private readonly IYandexWeatherRequestCreator _requestCreator;
public WeatherForecastController(IYandexWeatherRequestCreator requestCreator)
{
_requestCreator = requestCreator;
}
[HttpGet(Name = "GetWeatherForecast")]
public async Task<ForecastResponse> Get(CancellationToken ct)
{
var result = await _requestCreator.Forecast()
.Extra()
.WithLocality(55, 21)
.Send(ct);
return result.Data;
}
Default behaviour
If HttpClient
and IHttpClientFactory
wasn't send it will try to resolve IHttpClientFactory
from Services, if factory wasn't found it will create new HttpClient()
License
Authored by: Dmitry Kaznacheev (dmitry-bym)
This project is under MIT license. You can obtain the license copy here.
This work based on Yandex.Weather API: https://yandex.com/dev/weather
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0.0)
- YandexWeatherApi (>= 0.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.