Označuje, jak je počasí vhodné k fyzické zátěži, předpověď biozátěže je důležitá hlavně pro lidi s nemocemi srdce, a jedince fyzicky slabé, ale snadno ji mohou pocítit i ti zdraví. Biozátěž má 3 stupně (1 - 3), API automaticky stahuje tuto informaci z několika zdrojů a tím je možné zprůměrovat stav v dané oblasti, taktéž zaručuje alternativní data při výpadku zdroje a přidává doprovodné informace, které mohou být užitečné při specifickém použití API (např.: pro zobrazení ikony biozátěže na webové stránce).
1) Maximální počet dotazů je 5x za hodinu na 1 klíč.
2) Testovací období (první měsíc) je bez jakéhokoli omezení.
3) API si aktualizuje své data od zdrojů 1x za hodinu.
4) Data se vztahují na celou republiku, neliší se v regionech.
API používá jednostrannou komunikaci pomocí metody HTTP GET REQUEST. Vstupní nastavení se předává
v URL adrese parametrem options (malým písmem) ve formátu JSON.
Odpověď serveru je ve formátu JSON a vždy se liší podle vstupního nastavení (viz. příklady odpovědi serveru).
Jediný povinný parametr je apikey, ostatní jsou volitelné.
URL vstupní brány
https://www.txpetr.cz/api/bio/
Ukázková URL
https://www.txpetr.cz/api/bio/?options={"apikey":"YOUR_API_KEY", "icon":"2"}
Vstupní parametry
1) APIKEY
String | Musí být vyplněn!
Licenční klíč, který slouží jako "heslo" pro vstup do API.
------------------------------------------------------------------
2) FORECAST
Integer | [0 - 1, default = 0]
Upřesnění délky předpovědi biozátěže.
0 = Předpověď na dnešní den
1 = Předpověď na celý týden
------------------------------------------------------------------
3) UPDATED
Integer | [0 - 2, default = 0]
Datum poslední aktualizace dat v API.
0 = Vypnuto
1 = Datum (YYYY-MM-DD HH:MM:SS)
2 = Datum (unix time)
------------------------------------------------------------------
4) TITLE
Boolean | [1 / 0, default = 0]
Krátký, upřesňující titulek předpovědi.
------------------------------------------------------------------
5) INFO
Boolean | [1 / 0, default = 0]
Popisek aktuální zátěže / rizika + doporučení.
------------------------------------------------------------------
6) ICON
Integer | [0 - 4, default = 0]
Odkaz na ikonu pro grafické zobrazení, číslo určuje velikost.
0 = Vypnuto
1 = 48x48 px
2 = 128x128 px
3 = 256x256 px
4 = 1024x1024 px
Přiklady odpovědi serveru
{"status":"ERROR","message":"Nebyly nalezeny žádné aktuální data."}
{"status":"ERROR","message":"Potřebujete funkční licenční klíč pro vstup do API."}
{"status":"OK", bio: "1", "day": "2019-11-23"}
{"status":"OK", bio: "1", "day": "2019-11-23","updated":"2019-10-31 04:02:22"}
{"status":"OK", bio: "1", "day": "2019-11-23","updated":"1573173214"}
{"status":"OK", bio: "1", "day": "2019-11-23","title":"Nízká zátěž"}
{"status":"OK", bio: "1", "day": "2019-11-23","icon":"https://www.txpetr.cz/api/bio/icon/1/48x48.png"}
Funkce pro ziskani dat z API serveru
<php
/**
* @param array $options [apikey, updated, title, info, icon, forecast]
* @return stdClass|NULL [json, podle zadanych parametru ($options)]
*/
function getDataFrom($options = [])
{
$query = @json_encode($options);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.txpetr.cz/api/bio/?options=$query");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 7);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)');
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($code == 200 ? @json_decode($result) : NULL);
}
Stažení předpovědi na dnešní den
$options =
[
'apikey' => '2TCmeYB37a51BSEYLlxy', // vas zakoupeny licencni klic
'updated' => 1, // posledni aktualizace dat
'title' => 1, // bio - textově
'info' => 1, // doplnujici text, riziko
'forecast' => 0 // pouze dnesni den, nemusi byt vyplneno
];
$json = getDataFrom($options);
if($json->status == 'OK')
{
$data = $json->data;
echo "Biopředpověď na dnešní den ($data->day):<br/>";
echo "---------------------------<br/>";
echo "<strong>BIO:</strong> $data->bio, $data->title<br/>";
echo "$data->info<br/>";
echo "Poslední aktualizace: $data->updated";
}
else
{
if(!$json)
echo 'Chyba serveru!';
else
echo "Chyba: $json->message";
}
Stažení dlouhodobé předpovědi
$options =
[
'apikey' => '2TCmeYB37a51BSEYLlxy', // vas zakoupeny licencni klic
'updated' => 1, // posledni aktualizace dat
'title' => 1, // bio - textově
'info' => 1, // doplnujici text, riziko
'forecast' => 1 // data za cely tyden
];
$json = getDataFrom($options);
if($json->status == 'OK')
{
foreach($json->data as $data)
{
echo "Biopředpověď na den $data->day:<br/>";
echo "---------------------------<br/>";
echo "<strong>BIO:</strong> $data->bio, $data->title<br/>";
echo "$data->info<br/>";
echo "Poslední aktualizace: $data->updated<br/><br/>";
}
}
else
{
if(!$json)
echo 'Chyba serveru!';
else
echo "Chyba: $json->message";
}