API - BIOMETEOROLOGICKÁ PŘEDPOVĚĎ POČASÍ

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).

Důležité informace

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.

Návod k použití

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"}

Příklad použítí v jazyce PHP Stáhnout soubory

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";
}