Tip liga – ročník 2014/2015

Znáte Tip ligu? Sportovní nadšenci a sázkaři určitě ano. Jedná se o Facebookovou aplikaci, která je v provozu většinou od září do července. Na každý den je vypsán 1 zápas a uživatelé tipují jeho výsledek (výhra domácích, remíza, výhra hostů). Za každý správný tip získá uživatel 1 bod. Podle počtu bodů se vypočítá pořadí. Za nesprávný tip se body nestrhávají.

tip-liga

Bylo to v roce 2012 kdy chtěl ZdendaKoran utrati jeho nechtěné dítě jménem Tip liga (s kým si ho udělal mi nikdy neřekl – asi je to tak lepší 🙂 ).  Již neměl chuť tuto hru dále rozvíjet a proto jsem se jí s radostí zhostil a začal dělat adoptivního otce. V tu dobu jsem začínal koketovat s Nette. Přepsal jsem Tip ligu do Nette + MySQL a začal se učit Facebook API. Uf, byla to fuška ale zvládl jsem to.

Od té doby uplynulo hodně času a Tip liga začínala fungovat bez chyb a se správně zadanými výsledky. Celý proces zadávání nových zápasů + zadávání výsledků jsem si maximálně ulehčil a zautomatizoval. Prakticky nemusím vůbec psát a pouze klikám. Zadávání výsledků mám rovněž v lite verzi a není problém odkliknout správný výsledek přes telefon odkudkoliv. Tím mám solidní přehled o sportovním dění 🙂

Jenomže 30.dubna 2015 ukončí Facebook podporu api v1.0 ve kterém Tip liga fungovala. Spuštění ročníku 2014/2015 jsem naplánoval na 1.9.2014 a nasadil rovnou api v 2.1 které má být funkční do 7.8.2016. Z nového api jsem trochu zmatený. U tipů proto zatím není možné sdílet tipovaný výsledek zápasu na zdi, ani není možné vidět pořadí mezi přáteli. Pokusím se tyto vlastnosti co nejrychleji zapracovat aby Tip liga neztratila žádnou funkčnost a přibývali spokojení hráči.

V ročníku 2014/2015 přeji hráčům hodně správně tipnutých výsledků a co nejlepší možné umístění.

Nette – jak vytvořit REST API – json

Co to je REST

REST neboli Representational state transfer je způsob jak jednoduše číst (GET), editovat (PUT), mazat (DELETE) a vytvářet (POST) obsah na serveru pomocí HTTP volání.

REST je vhodný pro jednotný a snadný přístup ke zdrojům. Na rozdíl od SOAP či XML-RPC je REST orientován datově, nikoli procedurálně. Všechny REST zdroje mají jednoznačný identifikátor (URL)

Jak na to v Nette?

Zapomeňte na nějaké složité generování v šabloně. Dokonce nebudete potřebovat ani funkci json-encode. V Nette uděláte JSON výstup velice jednoduše.

Ukázka vygenerování JSONu:

public function actionJson()
{
   $a = array( "date" => "20.8.2014 22:34", "temp_in" => "24.2°C", "temp_out" => "14.9°C" );

   $this->sendResponse( new Nette\Application\Responses\JsonResponse( $a ) );
}

Důležité je, že response je možné vygenerovat pouze metodou sendResponse které předhodíte response

TIP: pokud budete chtít posílat i kódování, provedete to následujícím způsobem:

$this->sendResponse( new Nette\Application\Responses\JsonResponse( $a, "application/json;charset=utf-8" ) );