StromGedacht.NET
v1.1.0
StromGedacht API 的 C# 用戶端
在 NuGet 上可用。
dotnet add package StromGedacht.NET
或者
PM > Install-Package StromGedacht.NET
客戶端可以提供當前時間的區域狀態或給定時間段內的所有狀態。
該期限最多可延長至未來 2 天和過去 4 天。
每次提出請求時,您都需要提供您想要要求所在州的地區的郵遞區號。
首先透過將HttpClient
的實例傳遞給其建構函數來建立StromGedachtClient
的實例。
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 ) ;
您可以使用類型化的HttpClient
在 Startup 中註冊StromGedachtClient
。
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 提供。