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
メソッドを呼び出し、地域の郵便番号、開始時刻、終了時刻を渡すことで、特定の期間の地域のすべての州を取得できます。
開始時刻と終了時刻は 2 つの日付にすることができます。
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 は 1 分あたり約 6 リクエストに制限されています。
関連するプロジェクトをいくつか紹介します。
使用される API は、StromGedacht、TransnetBW GmbH によって提供されます。