Obsah. Kapitola 2 Nakupujeme na Amazonu... 19 XML-RPC... 19



Podobné dokumenty
Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

Michal Krátký, Miroslav Beneš

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Tvorba informačních systémů

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Formy komunikace s knihovnami

NAS 208 WebDAV bezpečné sdílení souborů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

7. Enterprise Search Pokročilé funkce vyhledávání v rámci firemních datových zdrojů

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Obsah. Kapitola 1 Začínáme s jazykem ABAP a systémem SAP Přehled architektury systému SAP...16

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Poznámky k verzi Remote support platform 3.1

Semestrální práce: Mashup. Observatory Star Explorer

DEKRA Emise CIS instalační příručka

Požadavky pro výběrová řízení TerraBus ESB/G2x

Geografické Informační Systémy 2007/ Kačmařík Vojtěch

Úvodem Seznámení s HTML Rozhraní Canvas... 47

1. Webový server, instalace PHP a MySQL 13

Kapitola 1 První kroky v tvorbě miniaplikací 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Maturitní projekt do IVT Pavel Doleček

Úvod do Web Services

Verze dokumentu 0.1 duben 2016

Demoprojekt Damocles 2404

Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008.

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Střední odborná škola a Střední odborné učiliště, Hořovice

Platební systém XPAY [

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

Nastavení DCOM. Uživatelský manuál

ZMODO NVR KIT. Instalační příručka

1 Webový server, instalace PHP a MySQL 13

Vstupní požadavky, doporučení a metodické pokyny

Obsahy kurzů MS Office

Použití Office 365 na telefonu s Androidem

Instalace a konfigurace web serveru. WA1 Martin Klíma

guid Ne Unikátní identifikátor položky. pubdate Ne Datum publikace položky.

Úvod do aplikace SMS/MMS Manager

Stručný obsah. Část I Úvod. Část II Komponenty

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

PROGRAMOVÁNÍ PRO MS WINDOWS 2

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

Self Service Application. Instalační manuál

Geis Web Print Návod na použití

Projekt implementace OS Linux do výuky informačních technologií

Používání u a Internetu

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

Bioadresář. Specifikace požadavků. Verze Datum Projektový tým Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu

StruËn obsah. Část I JavaCo? Vše ohledně JavaScriptu 17. Část II Použití JavaScriptu v praxi 91

MBI - technologická realizace modelu

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

Instalace webové služby Mydlinka

Windows 8.1 (5. třída)

Možnosti aplikací Google pro analýzu (geo(

GTS internet DSL. Návod nastavení modemu a spuštění služby. (platné pro Zyxel Prestige VMG1312-B30B)

Systém elektronického rádce v životních situacích portálu

Správa zařízení Scan Station Pro 550 a Servisní nástroje zařízení Scan Station

Funkční specifikace ABOKWS. Aplikační rozhraní elektronického bankovnictví ABO-K. Verze 0.5

Použití databází na Webu

Návod pro uživatele DS150E. Dangerfield May 2009 V3.0 Delphi PSS

INFORMAČNÍ SYSTÉMY NA WEBU

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

1. Instalace MySQL Serveru Konfigurace MySql Serveru Vytvoření struktury databáze...3

Střední odborná škola a Střední odborné učiliště, Hořovice

B Series Waterproof Model. IP Kamera. Uživatelský manuál

Instalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Nové jazykové brány do Caché. Daniel Kutáč

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Střední odborná škola a Střední odborné učiliště, Hořovice

2. Thunderbird: jak ho získat 19

Návod k instalaci S O L U T I O N S

Ukázka knihy z internetového knihkupectví

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Připojení do PC aplikace Camera Live

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Název Live prez Sear enta Maps

IceWarp Outlook Sync Rychlá příručka

4. lekce Přístup k databázi z vyššího programovacího jazyka

Windows 10 (5. třída)

Rozhraní pro práci s XML dokumenty. Roman Malo

Manuál pro implementaci aplikace Na poštu

TÉMATICKÝ OKRUH Softwarové inženýrství

Instalace a první spuštění Programu Job Abacus Pro

LINUX - INSTALACE & KONFIGURACE

Začínáme s programem QuarkXPress 10.1

JAK AKTUALIZOVAT APLIKACI E-PAY BY EDENRED

HP-2000E UŽIVATELSKÝ MANUÁL

Transkript:

Obsah Úvod.................................................... 9 Co tato kniha obsahuje........................................... 9 Co pro tuto knihu potřebujete................................... 10 Konvence....................................................... 11 Poznámka redakce českého vydání..............................12 Kapitola 1 Úvod do mashupů....................................... 13 Web 2.0 a mashupy.............................................. 15 Důležitost dat................................................... 15 Uživatelské komunity............................................ 16 Jak budeme vytvářet mashupy................................... 17 Více mashupů................................................... 17 Kapitola 2 Nakupujeme na Amazonu................................ 19 XML-RPC........................................................ 19 Struktura XML-RPC............................................ 20 Požadavek XML-RPC....................................... 20 Odpověď XML-RPC........................................24 Práce s XML-RPC v PHP..........................................26 Vytvoření požadavku XML-RPC................................ 27 Serializace dat pro XML-RPC................................27 Vytvoření požadavku XML-RPC s jedním parametrem........27 Vytvoření požadavku XML-RPC s více parametry............ 30 Předávání polí v požadavcích XML-RPC......................31 Předávání struktur v požadavcích XML-RPC..................31 Vytvoření hlavičky požadavku............................. 32 Volání XML-RPC pomocí soketů............................... 33 Zpracování odpovědi XML-RPC..................................35 Vytvoření třídy pro zpracování XML-RPC.........................36 Test třídy pro zpracování XML-RPC............................ 37 Použití PEAR pro zpracování XML-RPC...........................39 REST............................................................41 Využití REST v PHP..............................................43

4 Obsah Vytvoření požadavku REST.................................... 43 Metody GET a POST....................................... 43 Použití soketů pro inicializaci požadavku REST................. 44 Vytvoření funkcí pro požadavky GET a POST.................. 45 Vytvoření třídy pro zpracování REST........................... 46 Testování třídy pro zpracování REST........................... 48 Zpracování odpovědí REST......................................50 Základy použití SAX v PHP.................................... 50 Použití funkcí PHP pro práci s XML............................ 52 Připravení callback funkcí................................. 53 Použití callback funkcí......................................54 Vytvoření třídy pro zpracování SAX............................ 55 Prozkoumání tříd............................................. 57 Použití a testování třídy........................................ 59 Rozhraní API pro Internetovou databázi UPC.....................60 API rozhraní pro Amazon........................................63 Seznámení s ECS................................................63 Struktura požadavku ECS REST..................................64 Umístění služby............................................... 64 Vytvoření mashupu..............................................66 Vyhledání produktu........................................... 66 Zpracování odpovědí od Amazonu..............................70 Odpověď od ECS na žádost o informace o produktu........... 71 Náš vlastní košík pro Amazon................................. 76 Shrnutí..........................................................80 Kapitola 3 Vytvoření vlastního vyhledávače......................... 81 SOAP...........................................................81 Jazyk WSDL a specifikace XSD...................................82 Základní struktura WSDL...................................... 83 Element definitions....................................... 84 Element types............................................. 84 Element message.......................................... 90 Vazba RPC................................................ 90 Vazba Document...........................................91 Element porttype......................................... 92 Element binding.......................................... 93 Element service............................................94 Zpráva SOAP....................................................95 Element Envelope............................................. 95

Obsah 5 Element Header.............................................. 96 Element Body................................................. 96 Vazby RPC.................................................97 Vazby Document...........................................97 Element Fault................................................. 97 Třída SoapClient................................................98 Vytvoření parametrů.......................................... 99 Vytvoření instance třídy SoapClient........................... 100 Vytvoření instance režim WSDL............................. 101 Vytvoření instance režim ne-wsdl.......................... 101 Uskutečnění volání a použití metod třídy SoapClient............102 Volání operací SOAP v režimu WSDL.......................... 105 Volání operací SOAP v režimu ne-wsdl....................... 105 Zpracování odpovědi...........................................105 Zpracování chyb pomocí třídy SoapFault..................... 106 Zpracování úspěšných výsledků.............................. 106 Webová služba Microsoft Live Search............................109 Použití operace Search....................................... 110 Webová služba Yahoo! Search...................................113 Použití webové služby Yahoo! Search......................... 114 Vytvoření mashupu.............................................116 Shrnutí.........................................................121 Kapitola 4 Naše vlastní videotéka.................................. 123 XSPF...........................................................124 RSS............................................................126 Seznámení s YouTube..........................................133 Rozhraní API pro vývojáře.................................... 134 Seznámení s Last.fm............................................137 Webová služba Audioscrobbler.................................137 Parsing pomocí PEAR..........................................139 Instalace a použití balíků.......................................140 Balík File_XSPF.............................................. 141 Balík Services_YouTube...................................... 143 Balík XML_RSS............................................... 146 Vytvoření mashupu.............................................149 Architektura mashupu........................................ 150 Hlavní stránka............................................... 150 Navigační stránka............................................ 151

6 Obsah Obsahová stránka............................................ 153 Používání mashupu............................................155 Shrnutí.........................................................159 Kapitola 5 Informace o dopravních nehodách přes SMS.............. 161 Extrakce obsahu obrazovky v PHP..............................162 Parsing pomocí funkcí DOM....................................165 Základní parsing elementů a atributů......................... 166 Testování validity dokumentu................................ 169 Další informace o implementaci DOM v PHP....................170 Rozhraní API serveru 411Sync.com..............................177 Vytvoření klíčových slov...................................... 177 Název klíčového slova........................................ 180 Formát zprávy SMS........................................... 180 Umístění dokumentu RSS.................................... 180 Stránka s informacemi o dopravních nehodách............... 181 Vytvoření mashupu.............................................188 Třída Nehoda................................................ 189 Třída DomParser............................................. 189 Třída KDHDomParser........................................ 191 Vytvoření skriptu kanal.php.................................. 196 Testování a nasazení............................................197 Shrnutí.........................................................199 Kapitola 6 Fotky z londýnského metra............................. 201 Základní plánování.............................................202 Vyhledání informací o londýnském metru.......................203 Spojení aplikací Google Maps a Flickr.......................... 204 Sekvenční diagram.............................................205 Formát RDF....................................................206 SPARQL........................................................208 Analýza dokumentu..........................................208 Anatomie dotazu pomocí jazyka SPARQL..................... 210 Klauzule WHERE v jazyce SPARQL............................ 211 Základní principy.........................................211 Jednoduchý dotaz........................................ 212 Dotazy s typy................................................ 216 Řazení, posuny a omezení počtu výsledků.................... 217

Obsah 7 UNION a DISTINCT.......................................... 218 Další funkce jazyka SPARQL.................................. 219 Rozhraní API formátu RDF pro PHP.............................220 Objekt XMLHttpRequest........................................223 Základy použití objektu XMLHttpRequest..................... 224 Použití objektu XMLHttpRequest.......................... 224 JSON...........................................................229 Přehled objektů v JavaScriptu.................................229 Struktura JSON...............................................230 Přístup k atributům JSON..................................... 231 Serializace a JSON............................................232 Rozhraní API služby Google Maps..............................232 Vytvoření mapy..............................................233 Geocoding..................................................234 Značky......................................................236 Události.....................................................238 Informační okna.............................................238 Rozhraní API aplikace Flickr....................................242 Vyhledávání................................................. 243 Interpretace výsledků........................................244 Získání adresy obrázku a stránky s obrázkem................. 246 Vytvoření mashupu.............................................248 Vytvoření a zaplnění databáze................................ 248 Prozkoumání dokumentu................................. 248 Vytvoření schématu databáze............................. 249 Vytváření dotazů SPARQL................................. 250 Dotaz na stanice......................................... 250 Dotaz na trasy.............................................251 Dotaz na stanice trasy.................................... 252 Skript pro zaplnění databáze.............................. 253 Třída RozhraniDB............................................258 Uživatelské rozhraní.........................................260 Použití aplikace Flickr společně s Ajaxem.....................264 Vytvoření proxy pro požadavky objektu XMLHttpRequest.. 265 Modifikace kódu v JavaScriptu............................ 266 Vytvoření objektu XMLHttpRequest....................... 267 Souběh.................................................. 268 Zpracování odpovědi..................................... 271 Shrnutí.........................................................275 Rejstřík................................................ 277

Úvod Jako tzv. mashup (česky míchanici) označujeme webovou stránku, která kombinuje data z jednoho nebo více externích online zdrojů do jednoho celku. Tato kniha je vaším vstupním bodem do světa mashupů a Webu 2.0. Budete vytvářet projekty v jazyce PHP, které načtou data z jednoho místa na webu, spojí je s relevantními informacemi z jiného místa na webu a prezentují je v jediné aplikaci. Všechny mashup aplikace použité v této knize jsou vytvořeny pomocí volně dostupných nástrojů a jsou důkladně vysvětleny. Veškeré zdrojové kódy mashup aplikací naleznete na přiloženém CD. Tato kniha je praktickým návodem s pěti detailními a pečlivě vysvětlenými případy užití pro vytvoření nových a efektivních mashup aplikací. Co tato kniha obsahuje Naučíte se, jak psát programový kód v jazyce PHP, který vzdáleně bude komunikovat se službami jako je Google Maps, Flickr, Amazon, YouTube, MSN Search, Yahoo!, Last. fm a internetová databáze UPC, popř. dopravní informace od Kalifornské dálniční hlídky. Dozvíte se také o technologiích, datových formátech a protokolech potřebných pro použití těchto webových služeb a rozhraní API a některých volně dostupných nástrojích pro práci s nimi. Porozumíte tomu, jak tyto technologie spolu navzájem pracují a uvidíte jak použít tyto informace, v kombinaci s vaší představivostí, pro vytváření vašich vlastních průkopnických webových stránek. Kapitola 1 poskytuje přehled mashupů popisuje co to mashup je a proč byste ho chtěli mít. V kapitole 2 vytvoříme základní mashup a půjdeme nakupovat. Jednoduše budeme vyhledávat produkty na stránce Amazon.com na základě jejich UPC (Universal Product Code). Za tímto účelem probereme dvě základní webové služby XML-RPC a REST. Internetová databáze UPC je službou založenou na XML-RPC, zatímco Amazon používá REST. Vytvoříme programový kód, který bude používat služby XML-RPC a REST. Pomocí funkcí frameworku SAX pro jazyk PHP vytvoříme rozšiřitelný objektově orientovaný parser pro XML. Mashup probraný v této kapitole kombinuje informace získané ze služby ECS (Amazon E-commerce Service) s informacemi z internetové databáze UPC. V kapitole 3 vytvoříme vlastní vyhledávač pomocí technologie MSN a Yahoo!. Tato kapitola začíná úvodem do SOAP, jednoho z nejkomplexnějších protokolů pro webové služby. SOAP z velké části spoléhá na standardy jako je WSDL a XSD, které jsou také detailně probrány. Podíváme se jak vypadá dokument WSDL a naučíme se jak určit jaké webové služby jsou z něj dostupné a jaké typy dat se předávají. Pomocí rozšíření PHP5 s názvem SoapClient pak budeme komunikovat se servery SOAP pro získání dat.

10 Úvod Konečně pak vytvoříme mashup, který získá výsledky vyhledávání na webu poskytnuté vyhledávači Microsoft Live a Yahoo!. Pro mashup v kapitole 4 použijeme API stránky YouTube sloužící pro uložení videí a XML pocházející ze stránky pro veřejnou hudbu Last.fm. Podíváme se na tři rozdílné formáty souborů XML z těchto dvou stránek XSPF pro seznamy skladeb, RSS pro zveřejňování často aktualizovaných informací a vlastní formát souboru XML stránky YouTube. Vytvoříme mashup, který načte informace o skladbách ze dvou kanálů RSS stránky Last.fm a dotáže se serveru YouTube na videa pro tyto skladby. Namísto vytváření našich vlastních parserů XML pro zpracování těchto třech formátů použijeme parsery z balíku PEAR, jeden pro každý z těchto tří formátů. Pomocí těchto balíků PEAR vytvoříme objektově orientovanou abstrakci těchto formátů, kterou může zpracovat naše mashup aplikace. V kapitole 5 se zaměříme na webovou stránku Kalifornské dálniční hlídky (KDH). KDH spravuje webovou stránku s informacemi o dopravních nehodách. Tato stránka se každou minutu obnoví, aby zajistila, že uživatel dostane aktuální informace o dopravních nehodách ve státě Kalifornia. To je velmi užitečné pokud sedíte u počítače. Pokud jste však na pochůzkách, byla by tato aplikace vcelku bezcenná. Náš mashup však bude používat webovou službu stránky 411Sync.com pro přijímání zpráv SMS od uživatelů mobilních telefonů pro doručení těchto dopravních informací uživatelům. Do kapitoly 6 jsme vložili téměř vše. V této kapitole použijeme dokumenty RDF, SPARQL, RAP, Google Maps, Flickr, Ajax a JSON. Vytvoříme techniku závislou na geografii pro prezentaci obrázků ze stránky Flickr v Google Maps. Uvidíme, jak číst dokumenty RDF a jak z nich extrahovat data pomocí SPARQL a RAP pro RDF. Tímto způsobem získáme zeměpisnou délku a šířku stanic metra v Londýně. Zobrazíme je v Google Maps a získáme obrázky vybrané stanice ze stránky Flickr. Naše aplikace potřebuje komunikovat se servery pomocí API, k čemuž použijeme Ajax a formát JSON, který se začíná používat jako hlavní datový formát. Největším kamenem úrazu v této aplikaci Ajax je problém souběhu a naučíme se několik technik, jak ho řešit. Co pro tuto knihu potřebujete Abyste mohli postupovat s projekty a použít ukázkový programový kód uvedený v této knize, budete potřebovat webový server Apache 1.3 s PHP 5.0 nebo vyšším. Všechny příklady předpokládají, že máte webový server spuštěný na vaší lokální stanici a veškerý vývoj se provádí lokálně. Dva projekty mají speciální požadavky. V kapitole 5 budete potřebovat přístup k webovému serveru, ke kterému lze přistupovat externě z Internetu. V kapitole 6 budete potřebovat server MySQL. I zde se předpokládá, že provozujete server MySQL lokálně a je správně nakonfigurovaný. Přejete-li si rychle nainstalovat PHP, Apache a MySQL, navštivte stránku XAMPP (http://www.apachefriends.org/en/xampp.html). XAMPP je instalátor, který během jednoho kroku mimo jiné nainstaluje také PHP, Apache a MySQL.

Úvod 11 XAMPP je dostupný pro operační systém Windows, Linux a MAC OS X. Mnoho standardních distribucí Linuxu však již obsahuje PHP, Apache i MySQL. Zkontrolujte dokumentaci své distribuce pro informace týkající se jejich aktivace. Operační systém MAC OS X již má ve výchozím stavu nainstalovaný Apache i PHP. Můžete je zapnout aktivací funkce Web Sharing v části Sharing Preferences. Server MySQL je možné nainstalovat s využitím instalátoru dostupného pro stažení na stránce MySQL.com (http://dev.mysql.com/downloads/mysql/4.1.html). Konvence V této knize naleznete řadu typů zvýraznění textu, které od sebe odlišují různé druhy informací. Zde je několik příkladů těchto typů zvýraznění a vysvětlení jejich významu. Jsou zde tři typy zvýraznění pro programový kód. Výrazy z programového kódu vložené do textu jsou zvýrazněny takto: S využitím direktivy include můžeme připojit další soubory. Blok programového kódu bude zvýrazněn následovně: <?php $adom = new DOMDocument(); try { $adom->loadhtmlfile( ukazka.html ); } catch (Exception $ex) { $adom = false; } Pokud bude žádoucí, aby určitá část bloku programového kódu upoutala vaši pozornost, bude daný řádek nebo položka vyznačena tučně: <parametr> <hodnota><retezec>ahoj světe!</retezec></hodnota> </parametr> Veškerý vstup a výstup z příkazového řádku bude zapsán následovně: Pocitac:~ root# pear list Kde Pocitac:~ root# je výzva shellu na straně počítače autora. Nové termíny a důležitá slova jsou vyznačeny tučně. Slova, která vidíte na obrazovce, např. v nabídkách nebo v dialogových oknech, jsou v našem textu vyznačena takto: Do vyhledávacího pole zadejte klíčové slovo a kód regionu a stiskněte tlačítko Vyhledat. Poznámka: Důležité poznámky jsou ohraničeny tímto způsobem. Tip: Tipy a triky jsou ohraničeny tímto způsobem.

12 Úvod Poznámka redakce českého vydání I nakladatelství Computer Press, které pro vás tuto knihu přeložilo, stojí o zpětnou vazbu a bude na vaše podněty a dotazy reagovat. Můžete se obrátit na následující adresy: Computer Press redakce PC literatury Holandská 8 639 00 Brno nebo knihy@cpress.cz Další informace a případné opravy českého vydání knihy najdete na internetové adrese http://knihy.cpress.cz/k1570. Prostřednictvím uvedené adresy můžete též naší redakci zaslat komentář nebo dotaz týkající se knihy. Na vaše reakce se srdečně těšíme.