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 提供。