Popis API

Transkript

Popis API
REST API Českého lakrosu
Úvod
Před nějakým časem se objevil dotaz, zde je možné se nějakým způsobem napojit na výsledkový servis
webu www.ceskylakros.cz. Odpověď je ano. Konkrétně přes REST API.
Upozornění
Jedná se o BETA verzi, API se může změnit  (ale asi nebude, kdo by to měnil). Spíš se bude rozšiřovat.
Poskytované služby
Všechny služby vrací data ve formátu JSON. Některé podporují i JSONP.
V současné době poskytuje web českého lakrosu následující služby:
Seznam lig
URI: http://www.ceskylakros.cz/utils/leaguesLoader.php
GET Parametry: callback (nepovinný)
Popis: Vrací seznam lig v aktuální sezóně
Struktura odpovědi: Vrací dvourozměrné pole. První sloupec je ID ligy a druhý název ligy. Data jsou
zakódovaná stejně jako URL.
Formát odpovědi:
a) JSONP – pokud je specifikován callback parametr a jeho hodnota začíná jsonp a následuje
libovolný počet číslic. Funkce obalující data má pak název stejný jako hodnota parametru callback.
b) JSON – pokud neplatí a)
Příklad:
URI: http://www.ceskylakros.cz/utils/leaguesLoader.php
Odpověď:
[["9","1. pra\u017esk\u00e1 liga"],
["10","2. pra\u017esk\u00e1 liga"],
…
]
Příklad 2:
URI: http://www.ceskylakros.cz/utils/leaguesLoader.php?callback=jsonp12
Odpověď:
jsonp12(
[["9","1. pra\u017esk\u00e1 liga"],
["10","2. pra\u017esk\u00e1 liga"],
…
])
Pořadí týmů v lize
URI: http://www.ceskylakros.cz/utils/leagueResultTabLoader.php
GET Parametry: idLeague (povinný) – id ligy, callback (nepovinný)
Popis: Vrací aktuální pořadí týmů v lize specifikované pomocí id v parametru idLeague. Navíc vrací počty
zápasů, bodů apod.
Struktura odpovědi: Vrací dvourozměrné pole. Jendotlivé elementy v řádku pole (indexované od 0) mají
po řadě následující význam:
Index
0
1
2
3
4
5
6
7
8
Popis
Pořadí týmu
Název týmu
Počet odehraných zápasů
Počet výher
Počet remíz
Počet prohraných zápasů
Počet vstřelených gólů
Počet obdržených gólů
Počet bodů
Formát odpovědi:
a) JSONP – pokud je specifikován callback parametr a jeho hodnota začíná jsonp a následuje
libovolný počet číslic. Funkce obalující data má pak název stejný jako hodnota parametru callback.
b) JSON – pokud neplatí a)
Odehrané zápasy týmů
URI: http://www.ceskylakros.cz/utils/leagueMatchesTabLoader.php
GET Parametry: idLeague (povinný) – id ligy, callback (nepovinný)
Popis: Vrací odehrané zápasy mezi jednotlivými týmy. V podstatě je to přímo model křížové tabulky
s výsledky.
Struktura odpovědi: Vrací dvourozměrné pole ovšem některé elementy jsou opět pole. Jendotlivé
elementy v řádku (indexované od 0) mají po řadě následující význam:
Index
0
1
2 .. N
Popis
Zkratka týmu
Název týmu
N je počet týmů v lize. Každý element obsahuje buď znak ‘X‘ pokud se jedná v křížové tabulce
o stejný tým v řádku i sloupci nebo dvourozměrné pole s výsledky zápasů, kde jednotlivé
sloupce v řádku (indexováno od 0) mají po řadě následující význam:
Index
0
1
Popis
Výsledek zápasu
Relativní odkaz k doméně www.ceskylakros.cz na obrázek zápisu
nebo znak ‘x’, není-li k dispozici.
Příklady
Pro usnadnění vaší práce jsem zpracoval 2 příklady, které zobrazují kompletní výsledky aktuálních lig
stejně jako na českém lakrosu. Ke stažení jsou k dispozici na webu českého lakrosu v sekci dokumenty
poblíž dokumentu k REST API.
POZOR: Příklady jsou psané tak, abych to měl co nejdřív. V praxi by se zřejmě slušelo oddělit javascripty,
styly apod.
a) vysledkyLigy.html – řešení využívající JSONP. Funguje jako samotná HTML stránka, nepotřebuje
dokonce ani webserver, stránku si můžete otevřít z disku na svém počítači. Pro snadnější
zpracování příchozích dat používá jQuery. Po změně ligy se nová liga načte pomocí AJAXu bez
znovunačtení celé stránky.
+ moderní efektní řešení 
+ menší přenos dat po síti (když už se jednou natáhne jQuery)
+ nepotřebuje PHP, dokonce, což asi nevyužijete, ani webserver
- potřebuje javascript
- spoléhá na JSONP což je víceméně hack
b) vysledkyLigy.php – pro tradičně založené vývojáře, využívá JSON formátu. Potřebuje webserver,
který podporuje PHP.
+ výstupem je pouze HTML bez javascriptu
- větší přenos dat
- potřebuje webserver s PHP
Jako poslední možnost, kterou jsem neimplementoval, je využít váš server jako proxy pro
XMLHTTPRequesty a tím získat ajax bez JSONP.
Odkazy
-
REST - http://en.wikipedia.org/wiki/Representational_State_Transfer
jQuery - http://jquery.com/
JSONP - http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/

Podobné dokumenty

10. Přílohy

10. Přílohy soubory .class, mohou být i další) do jednoho zkompresovaného, je odvozen z formátu souborů ZIP. Soubory JAR jsou přenositelné mezi jednotlivými platformami a mohou obsahovat další doplňující infor...

Více

Soutěžní řád SK SALH pro sezónu 2015 / 2016

Soutěžní řád SK SALH pro sezónu 2015 / 2016 Kapitán a asistent - kterýkoliv hráč z družstva, napsaný v zápise o utkání, určený a označený před začátkem zápasu Střelec gólu - hráč družstva, které vstřelilo gól, který se dotkl míče jako posled...

Více

jQuery

jQuery – Přeměna objektů "podobných poli" (mají length a vlastnosti 0, 1, …) na pole.

Více

Návod na používání a správu databáze ČLU

Návod na používání a správu databáze ČLU V zobrazeném dialogu vyplňte svůj e-mail (uveďte svůj e-mail uvedený v tabulce E, není-li to váš e-mail, obraťte se na [email protected]). Opište kontrolní kód a potvrďte. Na váš e-mail bude vzá...

Více

2010 - Vienna Insurance Group

2010 - Vienna Insurance Group (bez provizí zajišťovnám, včetně nákladů na správu majetku)

Více

Zápis II. schůze Juniorské komise ČŽL Datum: 19. 1. 2010 Místo

Zápis II. schůze Juniorské komise ČŽL Datum: 19. 1. 2010 Místo JK udělala návrh rozpočtu na rok 2010 (jarní část ligy 2009/2010 a podzimní část začátku ligy 2010/2011, rozvoj lakrosu, příspěvky pro týmy na dopravné, ceny a diplomy). Rozpočet bude předložen Výk...

Více

Zápis z Výroční valné hromady Českého svazu mužského lakrosu

Zápis z Výroční valné hromady Českého svazu mužského lakrosu Co se týče organizace soutěže, konkrétně té části, na které se podílí kluby, jsem z počátku nevěřil svým očím a uším. Jakoby nastal věk lemplismu, a to přestože se veškerá administrativa kolem ligy...

Více