Клиент C# для API StromGedacht
Доступно на NuGet.
dotnet add package StromGedacht.NET
или
PM > Install-Package StromGedacht.NET
Клиент может предоставить состояние региона на текущий момент или все состояния за заданный период времени.
Этот период может продлиться максимум на 2 дня в будущее и на 4 дня в прошлое.
Каждый раз, когда вы делаете запрос, вам нужно будет указать почтовый индекс региона, для которого вы хотите запросить штат.
Сначала создайте экземпляр StromGedachtClient
, передав экземпляр HttpClient
его конструктору.
var httpClient = new HttpClient ( ) ;
var client = new StromGedachtClient ( httpClient ) ;
Вы можете получить текущее состояние региона, вызвав методы Now
/ NowAsync
и передав почтовый индекс региона.
var state = client . Now ( "70173" ) ;
var state = await client . NowAsync ( "70173" ) ;
Если API возвращает ошибку, этот метод возвращает null
. Это может произойти, если почтовый индекс недействителен/не поддерживается.
Вы можете получить все штаты региона за определенный период времени, вызвав методы States
/ StatesAsync
и передав почтовый индекс региона, время начала и время окончания.
Время начала и окончания может быть двумя датами:
var from = new DateTimeOffset ( 2023 , 1 , 1 , 0 , 0 , 0 , TimeSpan . FromHours ( 2 ) ) ;
var to = new DateTimeOffset ( 2023 , 1 , 3 , 23 , 59 , 59 , TimeSpan . FromHours ( 2 ) ) ;
var states = client . States ( "70173" , from , to ) ;
var from = new DateTimeOffset ( 2023 , 1 , 1 , 0 , 0 , 0 , TimeSpan . FromHours ( 2 ) ) ;
var to = new DateTimeOffset ( 2023 , 1 , 3 , 23 , 59 , 59 , TimeSpan . FromHours ( 2 ) ) ;
var states = await client . StatesAsync ( "70173" , from , to ) ;
или часы относительно этого момента:
var hoursInPast = 24 ;
var hoursInFuture = 48 ;
var states = client . States ( "70173" , hoursInPast , hoursInFuture ) ;
var hoursInPast = 24 ;
var hoursInFuture = 48 ;
var states = await client . StatesAsync ( "70173" , hoursInPast , hoursInFuture ) ;
Если API возвращает ошибку, этот метод возвращает пустой список. Это может произойти, если почтовый индекс недействителен/не поддерживается или истек поддерживаемый период.
Вы можете получить прогноз региона на определенный период времени, вызвав методы Forecast
/ ForecastAsync
и передав почтовый индекс региона, время начала и время окончания.
var from = new DateTimeOffset ( 2023 , 1 , 1 , 0 , 0 , 0 , TimeSpan . FromHours ( 2 ) ) ;
var to = new DateTimeOffset ( 2023 , 1 , 3 , 23 , 59 , 59 , TimeSpan . FromHours ( 2 ) ) ;
var forecast = client . Forecast ( "70173" , from , to ) ;
var from = new DateTimeOffset ( 2023 , 1 , 1 , 0 , 0 , 0 , TimeSpan . FromHours ( 2 ) ) ;
var to = new DateTimeOffset ( 2023 , 1 , 3 , 23 , 59 , 59 , TimeSpan . FromHours ( 2 ) ) ;
var forecast = await client . ForecastAsync ( "70173" , from , to ) ;
Вы можете зарегистрировать StromGedachtClient
в своем стартапе с помощью типизированного HttpClient
.
builder . Services . AddHttpClient < StromGedachtClient > ( ) ;
Затем внедрите клиента куда захотите. Например, в контроллере:
[ Route ( "Home" ) ]
[ ApiController ]
public class HomeController : ControllerBase
{
private readonly StromGedachtClient _client ;
public HomeController ( StromGedachtClient client )
{
_client = client ;
}
}
API ограничен примерно 6 запросами в минуту.
Вот некоторые связанные проекты:
Используемый API предоставлен StromGedacht, TransnetBW GmbH.