public class KaiterraTelemetry
{
public string Param {get;set;}
public string Units{get;set;}
public int Span {get;set;}
public KaiterraTelemetryPoint[] Points {get;set;}
}
public class KaiterraTelemetryPoint {
public DateTime ts { get; set; }
public float value {get;set;}
}
public class KaiterraResponse
{
public KaiterraTelemetry[] Data {get;set;}
}
using System;
using Microsoft.Extensions.Configuration;
using System.Threading.Tasks;
using System.Net.Http;
using System.Text.Json;
public class KaiterraService
{
public HttpClient Client { get; }
private string _uuid { get; }
private string _apikey { get; }
public KaiterraService(HttpClient client, IConfiguration configuration)
{
_uuid = configuration["Kaiterra:UUID"];
_apikey = configuration["Kaiterra:ApiKey"];
client.BaseAddress = new Uri("https://api.kaiterra.com/");
Client = client;
}
public async Task<KaiterraResponse> GetTelemetry()
{
var response = await Client.GetAsync(
"/v1/devices/" + _uuid + "/top?key=" + _apikey
);
response.EnsureSuccessStatusCode();
using var responseStream = await response.Content.ReadAsStreamAsync();
var deserializeOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
return await JsonSerializer.DeserializeAsync
<KaiterraResponse>(responseStream, deserializeOptions);
}
}