Клиент 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.