[Powered by Google Translate] [Seminár] [A Programmer Úvod do API] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [To je CS50.] [CS50.TV] Ahoj, všetci, ja som Billy, a dnes budem hovoriť o API, alebo rozhranie pre programovanie aplikácií, najmä v súvislosti s CS50 záverečných prác a podobné veci. Všeobecne to, čo je API? Vo veľmi širokom zmysle, je to niečo ako sprostredkovateľa, ktorý umožňuje 2 kusy softvér pre komunikáciu medzi sebou navzájom. To je druh veľmi širokú definíciu, a nie je to relevantné pre to, čo sa pozeráme na. To, čo naozaj chcem, je nejaký druh užitočného strednej ceste komunikovať s nejakým databázy niekde. Tu je graf, a v podstate myšlienka je, že sme žiadosť, a chceme získať dáta z databázy, ale nechceme vyhľadávať v databáze priamo. Namiesto toho chceme ísť cez tento druh stredného človeka, API. Myšlienka, že sú čísla 2 a 3 na grafe sú obaja bude veľmi komplikovaný a chaotický. Inými slovami, ak je API je dotazovanie databázy, je to asi bude pomocou SQL tabuľky a všetky uvedené druhu veci, a my sme sa naučili niečo o tom v CS50, ale celkovo, ste si všimli, že je to trochu bolesti. To dostane veľmi, veľmi zložité a komplikované, najmä keď robíš zložité otázky a také veci. To, čo naozaj chcem, je nejaký užitočný a jednoduchý spôsob, ako získať tieto dáta, a to je myšlienka čísla 1 a 4 na grafe. Inými slovami, chceme naozaj jednoduchý spôsob, ako povedať API, čo si pre nás a naozaj jednoduchý spôsob, ako sa dostať, že dáta späť. Je tam jeden hlavný spôsob, ako že uvedené údaje sú zvyčajne odoslali a prijali, ktorá je JSON, alebo JavaScript Object notácie. To môže líšiť trochu, ak, ako ste poslať požiadavku na API. Inými slovami, ak chcete nejaké určité množstvo dát, Ako poviete API sa dostať, že parametre sa môžu líšiť trochu. Obvykle to zahŕňa výrobu nejakú sieťového požiadavke. Inými slovami, prístup k nejakej URL, ktorá to povie API presne to, čo chcete, ale dáta sú takmer vždy vrátený späť, Inými slovami, číslo 4 v JSON. Čo je to JSON presne? Ako som už povedal, JavaScript Object notácie. Je to v podstate univerzálny štandard pre vysielanie a príjem dát. Myšlienka je, že máte tieto 3 kategórie vecí. Máte pole, hashmaps, a primitíva. Polia a hashmaps ste sa pozerali na trochu v CS50, ale vy ste nejako dostal veľmi prísnu zmysel toho, čo oni sú. Inými slovami, s poľami viete, že to typ viazaný, takže máte len jeden druh typu, ktorý ide v celom poli. JSON je oveľa zhovievavejší také veci. V podstate myšlienka je si postaviť tento objekt, , Ktoré môžu byť zložené z niektorej z týchto 3 vecí a môže byť zložená z viac tie z nich, a môžu byť vnorené. Tu je akýsi príklad JSON, ktorá je sa tieto Zložené zátvorky tu predstavujú svoje HashMap a HashMap je v podstate mapovania z nejakej kľúče k nejakému hodnoty. Budete vidieť, že máme vlastnosti kľúč, a že je mapovanie na pole, ktoré je to celé. Vidíme ďalší prvok HashMap, ktorý je tento kľúč isAwesome, ktoré sa mapuje na primitívne hodnotu true, inými slovami, boolean. Primitives môžu byť reťazca. Môžu byť celé čísla. Môžu byť bools, niečo také. A vidíte obsah tohto poľa, ktoré vlastnosti bodov má 2 reťazca v ňom, self-podobný a nádherné. Tí sú 2 vlastnosti JSON, a vidíme, že JSON je úžasné. Pozrieť sa na to trochu podrobnejšie budem konštruovať zložitejšie príklad JSON tu. Začnime poľa, napríklad, len prázdne pole. Ale to je trochu nudné, takže budeme sa naplní trochu, a ako som povedal, polia v JSON sú typu medze, takže sa môže tiež mať reťazec tu, čo je hi, a to je ďalší prvok tohto poľa. A podobne by sme mohli pridať hashmapping sem, ktorý bude mať niekoľko mapovanie. Bude to mať mapovanie z názvu na reťazec Billy. Máme mapovania z názvu na Billyho, a máme mapovanie obľúbená farba na modrú. To je v podstate dobrý príklad JSON. Je to druh dostane do-jejda, potrebujú čiarku tam, všetky z rôznych častí. Opäť, to nie je typ viazané vôbec, takže môžete mať nejaký druh typy vnútri, čo chcete, a myšlienka je, že je to self-podobný. Inými slovami, to tu je objekt JSON, ako je to celé, ako je práve tento, takže môžete mať primitívne byť objekt, pole je objekt alebo HashMap byť objekt. Ako môžete trochu vidieť, JSON je naozaj, ale naozaj užitočné v tom, že je to tak univerzálny. Môžete mať všetky možné údaje, ktoré si môžete otehotnieť uložené v JSON. To robí to naozaj krásny jazyk pre použitie s API pretože to skoro znamená, že bez ohľadu na to, čo údaje, ktoré chcete tam to bude nejaký spôsob, ako sa dostať späť do formátu JSON. Niekoľko vlastnosti, ktoré robia JSON zvlášť vhodné pre tento druh veci. Ako môžete vidieť, v porovnaní s mnohých vecí, ktoré ste pracovali s vo CS50 je to pomerne veľmi dobre čitateľný a tiež veľmi jednoduché písať. Môžete zarážka to, ak chcete, ako by som robil v tej príklade, , Ktorá vám dáva pekný, pekný verziu, ktorú môžete vidieť naozaj dobre. Ale naviac, je to tiež jednoduché čítať a písať na počítači. Inými slovami, je ľahké analyzovať a ľahko kódovanie, , Čo znamená, že je to dosť rýchlo, pokiaľ ide o čítanie dát sa týka, a JSON môžu byť generované veľmi rýchlo. Je to tiež veľmi ľahký prístup rôznych častí JSON a podobné veci. To je pekné, a ďalej skutočnosť, že je to self-podobný, Inými slovami, skutočnosť, že je možné v rámci JSON JSON v JSON je naozaj pekný pre ukladanie dát. Ďalšia časť, ktorá je všeobecne veľmi užitočné pri práci s API je jQuery. Ste sa naučili trochu JavaScriptu, ktorý je príjemný spôsob, ako manipulovať HTML a CSS v rámci webovej stránky. Ale to môže byť trochu bolesť kódu v prostom JavaScript, predovšetkým preto, že JavaScript je naozaj podrobný jazyk. Musíte sa naučiť veľa syntaxe, a len preto, aby si veľmi jednoduché veci to trvá veľa kódu, takže jQuery je knižnica pre JavaScript. Inými slovami, je to JavaScript súbor, ktorý môžete načítať a potom použiť jQuery funkcie robiť určité veci. A jQuery podstate robí váš život oveľa jednoduchší. To zjednodušuje to, čo by sa stovky riadkov v JavaScripte do niekoľkých riadkov v jQuery. To je obzvlášť užitočné, ak používate rozhranie API, pretože všeobecne ako budete pristupovať k rozhranie API je tým, že AJAX požiadaviek, a verím, že David je uvedené v prednáške, že AJAX požiadavky sú všeobecne, keď robíte siete požiadavku na nejaké servera a dostať späť nejaké dát a aktualizáciu stránky okamžite. Vzhľadom k tomu, v prostom JavaScriptom, ktorý by sa bláznivé čísla liniek overiť všetky hlavičky a robiť všetko tento druh vecí, jQuery má naozaj jednoduchú funkciu nazvanú AJAX, a všetko, čo musíte urobiť, AJAX, je dať parametre, ktoré chcete dať API, umiestnenie API a akékoľvek ďalšie druh volieb, ktoré chcete konfigurovať. Je to naozaj, naozaj pekné a veľmi užitočné pre takéto veci. To je všetko, čo potrebujeme začať sa naše ruky špinavé API. Idem vychovať niekoľko príkladov a preskúmať ich rôzne vlastnosti a prečo sú užitočné pre rôzne druhy vecí. Prvá vec, ktorú som vám vlastne ukážem, je niečo, čo som pracoval na V mojej výskumnej laboratóriu, ktorá je Viewer Ngram, av podstate myšlienka Viewer Ngram ich môžete vyhľadávať nejaké slovo alebo frázy a uvidíte, ako často sa to objavilo v určitom súbore textu v priebehu času. Tento príklad je tu tieto dáta sada detí ktorí sa narodili v New Yorku v rokoch 1920 a 2000. Môžeme hľadať, napríklad u názvu Jennifer, a vidíme, že pre-1960 naozaj to nebol použitý tak moc, a potom ako sme sa dostali do ďalších rokov je to stále viac používa. Môžeme tiež vykonať porovnanie, takže keď porovnáme Jennifer, napríklad, Thomas, môžeme vidieť Thomas bol celkom prevládajúci skrz históriu, vzhľadom k tomu, Jennifer je novšia názov. Môžeme to urobiť takú vec. Ako sa táto aplikácia funguje? V podstate to funguje cez API. Inými slovami, majú určité parametre tu. Máme parametre toho, čo sme vlastne hľadá, ktoré sú tieto mená, a potom máme niekoľko ďalších vlastností, ako osi Y a osou X. Môžete vidieť, že majú niekoľko rôznych možností, pokiaľ ide o časové rozlíšenie používať a také veci. Máme tieto možnosti, pokiaľ ide o to, čo vlastne chceme dát z databázy, a chceme sa dostať, že dáta späť nejakým užitočným spôsobom. Zvyčajne, keď sme boli dotazovanie databázy priamo, že by nejako byť bolesť robiť pretože všetkého to údaje o detská mena žije v nejakom databáze niekde, a to by bolo naozaj zložité mať na dotaz ručne a rozhodnúť, čo presne údaje k návratu. Inými slovami, len o Jennifer a Thomas v tomto prípade, a my sme len o na určitej osi a všetky tohto druhu vecí. Ako sa dostaneme okolo tohto? Ak chcete kopať do tohto API trochu viac ja vám ukážem ďalší príklad tejto platformy ktorý používa mierne odlišný súbor dát. Táto dátová sada, namiesto toho, aby detská mená, je v skutočnosti len celá tlač publikácie databázy Open Library, ktorá je obrovská zdrojom texty uverejnené počas posledných 100 rokov, alebo tak. Myšlienka je, že sme túto compository o milióny a milióny textu, ktoré môžeme teraz hľadať rôznych slov a fráz v Tu je príklad, ktorý sa líši trochu odlišne od predchádzajúceho príkladu Ukázal som vám, čo ich máme tieto 3 vyhľadávacích dotazov, vojna, vojna, a francúzske slovo pre vojnu, ktorá je guerre. A my hľadáme do 3 rôznych častí celkového databázy. Inými slovami, v tomto prvom dotaze sme iba vyhľadávanie v USA, v druhom iba vo Veľkej Británii, a tretí iba z prác publikovaných vo Francúzsku. Vidíme niektoré zaujímavé vzory vznikajú. Napríklad, vidíme priamo tu, ktoré- pardon, som zpackal osi trochu, ale môžete vidieť priamo v tomto rozsahu tu okolo občianskej vojny je tu veľký bodec v americkom vydaní ale nie je tak veľký hrot v ďalších dvoch, a to preto, že zrejme americká občianska vojna sa deje v tomto bode. Môžeme vidieť nejaké cool veci tam, ale to, čo naozaj záleží je to, ako sme sa dostali na tieto dáta. Vezmem ťa do zákulisia v tejto aplikácii v trochu. Pekný trik je, ak pracujete s webom a druhu chcete vedieť čo sa deje v zákulisí, môžete otvoriť Nástroje pre vývojárov. Budem používať Chrome vývojárske nástroje, a aby sa k tým môžete urobiť kontrolu, posun, J, a že vás zavedie do konzoly JavaScript. Existuje niekoľko kariet tu. Môžu byť všetci celkom užitočné za iných okolností, ale ja sa starám o sieti Karta teraz, a ja som vlastne musieť aktualizovať, aby si túto prácu. Oh, ospravedlňujem sa. Má rád, aby náhodný príklad. Dobre, budeme chcete použiť tento príklad miesto potom. Myšlienka je, že je to API tu, a môžete vidieť presne to, čo API vracia. To je to, čo aplikácie sa vracia z API, čo poslal túto žiadosť. Dovoľte mi, aby som priblížiť trochu, a my môžeme v podstate vidieť, že je to len rad kľúčových dvojíc hodnôt v JSON. Inými slovami, máme túto HashMap tu to je mapovanie hodnôt. Inými slovami, je to mapovanie rokov na hodnoty. V roku 1765, čo slovo, ktoré pôvodne hľadali sa používa 90 krát z 1000000, takže sme sa vrátiť tento výsledok. Nie je to presne to, JSON, pretože máme tento malý výsledok hlavičke tu, ale všimnite si, že celý tento objekt je tu len velikánsky JSON klbko. Máme rad tu, ktorý obsahuje celú túto prvok, a môžete vidieť, že celý element končí tam, a potom máme ďalší veľký prvok že ide celú cestu až do konca, a že tu končí. Máme naozaj veľkú pole s 2 objekty v ňom, a každý z týchto predmetov je HashMap. Môžete vidieť v rámci každej z týchto hashmaps máme mapovanie tohto indexu hodnotu 0 a táto hodnota je na inú HashMap, ktorá je opäť zmapovanie hodnôt os X na os Y hodnoty. Môžete vidieť JSON je trochu trochu zložitejšie, ale celkovo, je to vlastne veľmi užitočné, a to je veľmi ľahký prístup v porovnaní s ďalšie rôzne formy zápisu. Pokiaľ ide o to, čo sme vlastne odosielanie dát do API dostať, Ja idem do zadnej koniec trochu tu. To je veľká JavaScript súbor, ktorý je uspokojenie všetkých interakcií webové aplikácie, a tak sme sa nestarajú o väčšinu, ale my starať o niektoré z nich. Napríklad, staráme sa o tomto buildQuery funkciu, a myšlienka tejto funkcie je v podstate to vyzerá po stránke, zisťuje, čo užívateľ chce dotaz, inými slovami, kontrolu týchto políčok, kde som Input svoje vyhľadávacie termíny, kontrola odlišný Y a os X hodnoty, ktoré ste si vybrali a všetci také veci, a bude to vypľuje túto dopytu hodnotu, ktorá potom môžem poslať preč do API. Tento vyzerá komplikovane, a to je docela komplikované ale čo budem robiť v tom, ja už som robil to, čo je skvelé, je to, že budem získať konzoly vytlačiť presne túto hodnotu dopytu že to vyšle do rozhrania API. To je vlastne tu. Ospravedlňujeme sa, ale dodá veľa vecí. Ale to je to, čo nás zaujíma, je tento objekt priamo tu. To je otázka objekt. Inými slovami, to je presne to, čo webové aplikácie odosiela na API, a tak sa poďme pozrieť dovnútra trochu, a vidíme, máme pár hodnoty tu. Vidíme máme tento počet, typ, ktorý je výskyty na milión slov, čo je presne to, čo sme si vybrali v osi Y tu. To je miesto, kde to je pochádza. Máme databázy hodnotu, čo znamená, že tam je nejaký určitej databázy že tieto údaje sú bývanie, a chceme, aby prístup k dátam konkrétne na rozdiel od tých zdrobneniny údajov, napríklad. Potom je tu skupiny hodnotu, ktorý hovorí, že ak chceme vyhľadávať podľa roku oproti iný X hodnota osi. Potom máme metódu, ktorá niektoré API bude robiť viac vecí. Inými slovami, môže toto rozhranie API tiež vrátiť iné druhy dát, ale v tomto prípade, chceme, aby mapovanie hodnoty osi X na osi y hodnoty. To je to, čo to hovorí, aby robil tam, a máme toto vyhľadávanie medze pole, ktoré obsahuje 2 hodnoty. Prvá z nich je to, čo vidíme tu, čo je všetky hodnoty obsiahnuté v tomto prvom malé pole v hornej časti. Inými slovami, chceme sa pozrieť na slovo bitke, a chceme filtrovať anglickými textami v americkej literatúre. Máme v tejto krajine, ktorá je USA. Máme jazyk, ktorým je angličtina, takže máme všetky tieto rôzne časti ktoré sú všetky hovoriť API presne to, čo chceme. Nevieme, aké údaje, ktoré sme sa vrátili ešte, ale vieme, že dáta bude trvať určitú formu. Tento príklad je druh na zložité strane, a vy by ste nutne byť pomocou rozhrania API tento komplex, ale to je ukázať vám rozsah a silu toho, čo API vie. Inými slovami, pomocou pomerne jednoduchého dopytu systému sme v podstate majú vstupné pole s niekoľkými ďalšími selektorov v rôznych miestach. Dovoľte mi, aby som približovanie tu. Máme vstupné pole s niekoľkými rôznymi metadát výbery, a máme os Y a os x výbery. Nemáme vlastne majú, že mnoho polí, a my môžeme vidieť veľmi ľahko sme schopní dotaz nejaký API a získať dáta späť a potom ju do tohto grafu, ktorý je potom bude zobrazovať vo užitočným spôsobom. Pozrieť sa na ďalší príklad, ktorý by mohol byť trochu známejšia na vás budeme sa obrátiť na Facebooku. Facebook je API sa nazýva graf Facebook, av podstate to, čo to znamená, že je Facebook vidí seba ako tento rozsiahlej databáze z mnohých rôznych častí, ktoré všetky majú určité vzťahy ku každému iný. Inými slovami, ja som užívateľ na Facebooku, tak som si profil, a tiež mám isté priateľov, a každý z nich má profil, a každý z mojich priateľov má stenu, ktorá má rôzne pripomienky na to, a každý z týchto pripomienok má likes a všetky tieto veci. Tam je veľa rôznych dielov na Facebook. Je to veľmi zložitá API, a tam je tony, ktoré môžete urobiť s ním, ale je to vlastne celkom jednoduché na používanie. Chystám sa začať tým, že bude graph.facebook.com / billyjanitsch, čo je môj jedinečný názov účtu, a vaše užívateľské meno bude buď nejaká slová, ak ste si vybrali to, alebo to môže byť len reťazec čísel. To, čo sme sa vrátiť, je docela základné informácie. Vidíme, že mám meno, ktoré je Billy, priezvisko, ktoré je Janitsch. Je tu jedinečná Facebook ID, ktoré mám. Môžete vidieť, že som muž, a že mám nastavenie jazyka britská angličtina. Inými slovami, vidíme veľmi základné informácie tu. Nie je to moc, ale to sa nám dať predstavu o tom, čo tam je. Môžeme to urobiť to isté s Davidom Malan, napríklad. Myslím, že jeho meno je dmalan. Vidíme David Malan má unikátne ID. Má názov, meno, druhé meno, priezvisko. Vidíme tiež, že on je muž a má svoje sady jazykov na americkú angličtinu. Inými slovami, vidíme docela základné informácie tu. A teraz, čo sa stane, keď sa snažíme vyskúšať niečo iné? Povedzme, že mám záujem o to, čo David Malan sa rád na Facebooku. Môžem robiť / rád. Teraz sme narazíte na problém. Máme nejaké chyby, ktorá hovorí, že prístupový token je nutné požiadať o tento zdroj. Ale ak si myslíte, o tom, že vlastne dáva zmysel, pretože to by bolo divné ak by ste mohli pristupovať každý časť databázy Facebooku je len z akejsi jednoduché API, nie? Inými slovami, pravdepodobne vaše informácie nemožno získať prístup každý, kto chce. Táto chyba je presne to, čo to znamená. Niektoré API vyžadujú určité povolenie, aby sa prístup k ich dátam. A ešte pokročilejšie API, rovnako ako Facebook jeden, bude vyžadovať určité povolenie robiť určité veci. Vidím tieto základné informácie o David Malan. Vidím, že je to muž, a že žije v USA, ale ja nemôžem nič vidieť minulosť, ktorá. Ak chcete získať okolo to pre teraz, Facebook má tento pekný nástroj čo je graf API prieskumník, a myšlienka, že ich môžete triediť z tvorí oprávnenia pre seba na základe Vašej vlastný účet a potom pozerať sa na veci, ktoré sa špecificky váš účet môže zobraziť. Napríklad, keď som to graph.facebook.com/billyjanitsch/likes- jejda, myslím, že budem musieť znova overiť svoj žetón tu. Dobre. Ak sa mi to znovu, skvelé, teraz vidím, že som si tento objekt späť ktorý hovorí, že sa mi páči bazén rezance, ktoré sú v kategórii Hry a hračky. Páči sa mi mroža, ktoré sú v kategórii Animal. Jedná sa o môj skutočný Facebook rád. Sú trochu trápne. Ale môžeme vidieť dáta sa všetci vrátili do formátu JSON. Je to celkom čitateľný. Inými slovami, máme toto mapovanie dát na nejaký pole, a každý prvok tohto poľa je HashMap, ktorý mapuje meno páči a kategórie ako. Každý, ako má unikátne ID. Tam sú všetky druhy rôznych vecí, dát, ktoré môžeme získať, a ak máte záujem o využitie Facebook API pre CS50 záverečného projektu alebo niečo podobné, že je to vlastne celkom realizovateľné. V podstate, ako sa dostať okolo overovania vec je Facebook používa systém zvaný OAuth, alebo Open Authentication, a ja nechcem, aby sa do nej hneď, pretože OAuth alebo iný typ overovanie tendenciu sa veľa líšia medzi rôznymi API, takže som mohol stráviť dlhú dobu idete po každej z nich, ale oni sú vlastne celkom samozrejmý. Ak Google Facebook API je veľmi čitateľný. Existuje celá špec. Napríklad, to je dokumentácia pre Facebook API, a môžete vidieť, že som na stránke Užívateľ, takže som sa môžete dozvedieť všetko o rôznych druhoch vecí ktoré sú k dispozícii sa dostať, ak to bude dát a tiež rôzne oprávnenia, ktoré potrebujem, aby sa prístup k nim. Ako sme videli, nepotrebujeme oprávnenie k prístupu k názvu alebo pohlavia, ale za tým potrebujeme oprávnenia pre väčšinu vecí. Táto stránka, alebo skôr, tento web vám tiež povie, ako sa dostať token môcť overiť sami. Väčšina systémov overovania použiť nejaký tokenu kde dostanete jedinečnú hodnotu, čo je naozaj dlhá a náhodný reťazec, a že spôsob, akým sa môžu združovať požiadavku, že ste sa s tebou. Inými slovami, oni vedia, že nerobíte nič podozrivého s ich dátami. Vedia presne, čo ste sa dostal. Vedia tiež, že máte povolenie na zobrazenie týchto informácií. Ak ste vykonali Facebook app a vaša aplikácia má určitých užívateľov, a títo užívatelia majú možnosť, že aplikácie pre prístup k niektorej časti ich profilu, potom čokoľvek API kľúč alebo token, že aplikácia používa budú mať prístup k údajom pre týchto užívateľov. To môže znieť komplikovane, ale nie je to tak zlé, a ak chcete používať Facebook by som vrelo odporúčam, aby ste zvážte hrať sa s ich API. Je to veľmi cool, a môžete robiť veľa rôznych vecí s ňou. Pokiaľ užívateľ poskytne vám táto oprávnenia, môžete sa dokonca vrátiť späť do rozhrania API a povedať, že som v skutočnosti chcieť poslať na tohto užívateľa stene, alebo chcem nechať zverejniť fotografiu, a to je dôvod, prečo na noviniek budete niekedy dostanem tie otravné veci porekadlá váš priateľ sledoval toto video na nejaké podivné stránky, alebo niečo také. To je preto, že aplikácie bol povolený prístup k pošte na jeho príslušnosti k stene. Myšlienka celkovo je Facebook API dosť zložité, ale aj naozaj užitočné. Rozhodne stojí mimo kontroly, ak ešte hľadáte pre konečného projektu. Ďalšie sada rozhrania API, ktoré som idem cez je CS50 API. Dovoľte mi, aby som priblížite tu. CS50 skutočne dať dohromady celý rad rozhraní API ktoré môžete použiť pre finálnu projekt, alebo len pre všetko, čo robíte. A oni to väčšinou Harvard súvisiace, a oni sa líši od ponuky Huds, Napríklad v tomto Harvard Akcie API, ktoré vám umožní prístup k zoznamu rôzne akcie, ktoré sa chystáte na na Harvarde a také veci. A tak môžeme kliknúť na niektorú z nich a získať spec pre to, ktoré budete môcť nájsť pre všetky API, a myšlienka je to vám vedieť, čo konkrétne požadovať od API a ako sa o ne požiadať. Inými slovami, ak chcem všetky udalosti, ktoré sa dejú zajtra potom som sa dostal do samozrejme dať mu, že dátum, ktorý chcem v určitom formáte, a B, bude to mi presne to, čo sa deje, aby sa ku mne. Bude sa hovoriť Chystám sa vrátiť vám tento objekt JSON, alebo ako vidíte, existujú rôzne formáty. Môžete sa tiež vrátiť dáta ako CSV, napríklad. Ale presne viete, ako tieto dáta bude vyzerať, keď sa dostanete späť takže môžete očakávať, že robiť určité veci s ním. Môžeme posunúť dole a vidieť, napríklad, ak chceme dotaz API získať kalendár, potom môžeme použiť túto konkrétnu adresu URL a dať mu určité parametre, ktoré sa chystáte byť dáta, ktoré chceme presne. A podobne, ak chceme dáta späť v určitom formáte, potom sa môžeme pýtať, do výstupu dát v CSV, a to je len ďalší parameter, ktorý sme okolo na API. Veľa skvelých vecí, ktoré sa tam. Ja by som určite odporučil pozrieť sa na CS50 API. Idem sa pozrieť na tohto API potravín Harvard najmä pre trochu. Jedna vec, ktorú som vlastne určený, je to Harvard Nomata stránky, ktorý používa CS50 potravín API načítať Huds menu pre deň. A pre ľudí, rozšírenie školy, Huds je jedálenský servis na Harvarde. Čo dostanete, je to stránka, ktorá obsahuje všetky jedál za deň, a tak môžeme vidieť obed. Máme niekoľko rôznych kategórií. Máme fazuľa a celozrnné stanice. Máme hnedá ryža stanicu. Vidíme na brunch máme tieto málo potraviny. Ak by sme na ne kliknete, potom sme si o nutričné ​​údaje. Môžete vidieť, je nutričné ​​informácie pre grapefruity, v prípade, že ste boli zvedaví. A tak znova, budeme nahliadnuť do zadnej koniec sem trochu a zistiť, čo presne to robí, aby sa tieto dáta. A to dopadá byť skutočne veľmi zložité vôbec. Tento súbor vyzerá trochu chaotický, ale majte na pamäti, že je to manipulácia na celý web, a keď som posunúť dole vidíme túto zmenu dát funkciu. Teraz, len aby bolo jasno, toto je napísané v CoffeeScript, čo je jazyk, ktorý ste pravdepodobne ešte nevideli. Ale je to celkom čitateľné, takže budem chodiť cez to, ako by to bolo pseudokód. Zmeniť dátum je funkcia, ktorá bude trvať v tomto časovom hodnoty, a je to tiež bude, aby sa v prvej, ktoré nemáme starať o toľko. Ale dôležité je, že to má tento dátum, a tento dátum je deň, ktorý chceme požiadať všetkých potravín pre. A potom vidíte, máme trochu syntaxe tu, ktorý je v podstate analýze tento dátum do čitateľného formátu. Inými slovami, API vyžaduje dáta v určitom formáte. Nemôžeš len tak povedať, 16.listopadu 2012 AD. To nebude vedieť, čo robiť s tým. To chce dáta v určitom formáte. Všetko čo robíme tu je to, že ho presne, že formát, ktorý je rok hodnota a potom spojovník, mesiac hodnota, ďalšie pomlčka a hodnotu dáta. A tiež, že chceme, aby údaje boli výstup JSON. Teraz robíme túto žiadosť AJAX, a ako som už spomenul, jQuery má túto super užitočnú AJAX funkciu, ktorá všetko, čo potrebujete urobiť, je určiť niekoľko parametrov tu dole, a to sa vám späť presne to, čo chcete. Hovoríme to, že URL chceme, aby to ísť je to CS50 Jedlo API, ktoré sme dostali od špec. Hovoríme, že chceme, aby dáta v JSON, a že budeme ho tieto dáta, ktoré sme definovali tu. To je deň, kedy chceme, aby potraviny pre. A potom všetko, čo musíte urobiť, je definovať nejaký úspech funkcií, čo je v podstate to, čo sa stane, keď API vráti, aby údaje. Inými slovami, sme baliť až všetky parametre, ktoré chceme, čo je v tomto prípade je deň, ktorý chceme, a skutočnosť, že chceme v JSON, a poslali sme ho na API, takže teraz API hovorí, jo, Tu sú vaše dáta, som späť pre teba. Máme úspech funkciu, čo znamená, vzhľadom, že API úspešne vráti niektoré údaje, čo budeme robiť s tým? A ukázalo sa, že všetko, čo urobiť, je zavolať táto aktualizácia funkcie menu s tým, čo API sa vrátil, tak môžeme hľadať, že a uvidíte, že všetko robíme používa veľa nových syntaxe tu aktualizovať HTML a vložte týchto nových údajov. Čo to umožňuje je, že sme tieto šípky na oboch stranách, a môžeme kliknite na tlačidlo, a teraz sa pozeráme na dáta pre ďalší deň a opäť ďalší deň, a zakaždým, keď je to aktualizácia, že hodnoty dátumu a dopytovania API, dostať späť niektoré údaje a uvedenie do areálu. Opäť, môžete vidieť, super, super užitočné. Táto aplikácia Trvalo mi niekoľko hodín hack spoločne, a mám trochu viac skúseností, samozrejme, ale na CS50 záverečný projekt môže vyzerať veľmi podobne ako to. API sú super výkonný pre množstvo úsilia, ktoré oni vezmú. Posledná vec, ktorú som idem cez je niekoľko ďalších API všeobecne. Nebudem sa až do nich, pokiaľ ide o to, čo robia konkrétne, ale dám vám predstavu o tom, čo je tam vonku. 2 naozaj užitočné tie, ak máte záujem o analýzu dát alebo vizualizácia alebo niečo podobné, sú Freebase a Wikipedia. Wikipedia-pravdepodobne všetci viete-je bezplatná on-line encyklopédia, a to skutočne má API, takže ak chcete, napríklad, získať všetky texty a články pre chobotnice môžete veľmi ľahko urobiť. Len povedať, hej, Wikipedia API, rád by som dáta vrátená ako to, a rád by som ho v tomto formáte, a článok by som rád, je chobotnice, a veľmi rýchlo to bude vám späť tieto informácie. To môže byť veľmi užitočné, ak chcete, aby sa nejaký webe že je to lepšie prehliadač pre Wikipédiu, alebo niečo také. Freebase je trochu podobná, aj keď je to trochu ťažšie, pokiaľ ide o API. Freebase je ako Wikipédie v tom, že je to on-line encyklopédia ktorý obsahuje veľa a veľa rôznych údajov o všetkých možných tém, ale to sú uložené v relačnej databáze, ktorá je mierne odlišná od Wikipédie. Wikipedia má svoje články a články spojené s inými výrobkami, ale pre najviac sa rozdeliť, ak chcete dáta pre chobotnice, idete na chobotnice článku, sa tieto dáta, a máte veľa textu o chobotníc, tak to je skvelé. Freebase pracuje v mierne komplikovanejšie spôsobom v tom, že všetko sa vzťahuje k sebe navzájom. Inými slovami, ak budeme hľadať chobotnice potom má veľa kategórií s ňou spojená. Napríklad, je to zviera, žije pod vodou, má určitú telesnú teplotu. Neviem. A všetky z týchto kategórií sú odkazy na ďalšie miesta, kde si môžete ísť vidieť veci s tým rovnakej kategórie. Inými slovami, chobotnice súbor dát obsahuje odkaz na súbor dát pre všetky zvieratá, a že by ma nechal pohybovať v databáze naozaj rýchlo. To môže byť veľmi užitočné, ak robíte niečo ako porovnanie. Inými slovami, rovnako istá vec, ktorú chcete vidieť čo iného to súvisí a vidieť, čo ešte to nie je vhodný. Takéto veci. To môže byť užitočné v niekoľkých smeroch. Ak hľadáte väčšie výzvou a byť schopní robiť nejaké zložitejšie veci Ja by som zvážiť pozrieť na Freebase API. Ale väčšinou, Wikipedia je veľmi jednoduché miesto, kam ísť tak ďaleko, ako dostať informácie. Ďalším miestom, ktoré budem je pozrieť sa na Last.fm, a ja som vlastne ísť na webe v prípade, niektorí ľudia nie sú oboznámení, ale Last.fm je v podstate hudobné chute a odporúčania webové stránky. Môžete vytvoriť účet. Môžete začať nahrávanie hudby z hudobného prehrávača na webových stránkach, a v podstate začne dávať vám hudobné odporúčania základe toho, čo počúvať. Napríklad, keď idete do svojho profilu stránky toto je moja- môžete vidieť, že máte zoznam naposledy počúval skladby. Môžete vidieť celkovej obľúbené umelca, všetky tieto veci, a znova, je tu veľká API za Last.fm,  a môžete ho použiť na to veľa a veľa naozaj skvelých vecí. Napríklad, pôjdem za kamarátom, ktorý má túto stránku Last.fm Nástroje webové stránky. To je vlastne ďalšia platforma, ktorá je postavená na Last.fm API, a to sa množstvo celkom zaujímavé veci. Ak som sa prihlásiť do môjho užívateľského mena, napríklad, Môžem požiadať ju vytvoriť tag cloud, napríklad, a čo že sa to urobiť, je dať mi obraz všetky rôzne žánre a také veci, že som chcel počúvať. Ako sa to robí toto? Veľmi podstate to hovorí na Last.fm API tu je to užívateľ. Chcel by som vedieť, žáner každej piesne, ktoré som kedy počúval, a môžete to urobiť, že tým, že pomerne jednoduchý AJAX volania na Last.fm API. Dostanete späť veľký zoznam, a potom samozrejme niektoré ďalšie veci sa vykonáva premeniť slovo mrak, ale môžete vidieť celkovú je to veľmi ľahký prístup a veľmi jednoduché použitie. Naozaj pekný pre rad vecí. Myslím, že je to asi všetko, čo poviem celkovo. Jedna posledná vec, ktorú spomeniem o API všeobecne je to, že budete niekedy dostanete do niečoho s názvom Obmedzenie rýchlosti, a myšlienka miera obmedzenia je nechcete zneužívať API. Inými slovami, je to naozaj pekné, že mnoho z týchto stránok majú API že môžete ísť do a používať zadarmo. Avšak, ak ste zarábali milióny alebo miliardy žiadostí denne, Napríklad, ak ste uviazol v nekonečnej slučke, ktorá je nekonečne dopytovania nejaký API a dostať späť obrovské množstvo dát, samozrejme, že to nie je dobré, takže to, čo veľa API urobiť, je sa táto miera obmedzenia funkcie ktoré hovorí, že je možné len so 1000 požiadaviek za deň na IP adresu, alebo niečo také. A ak robíte veľa testovania a také veci, budete niekedy beh do toho, a zrazu sa to vypne ťa a povedať nie, nedám vám žiadne ďalšie údaje. Čo chcete urobiť, je hrať podľa pravidiel. Chcete, aby sa ubezpečil, že budete čítať API spec opatrne. Ak má určité pravidlá k nemu pripojené, ako vás môže vykonať iba X otázok denne alebo môžete pristupovať iba časť databázy určitý počet čias alebo niečo podobné, že chcete, aby sa ubezpečil, že sa budete držať. Tak dlho, ako budete hrať v rámci týchto pravidiel, budete pravdepodobne mať naozaj pekný čas pomocou API. Vaše celkové stánok s jedlom, je API sú naozaj užitočné. Tam je API pre takmer všetky veľké webové služby vonku. Docela veľa akákoľvek časť Google Tools Suite, Google Maps, Google Earth, GMail, Google Calendar, všetky tie veci majú API. Môžete ich použiť ako získať dáta zo servera a odosielať dáta na server. Inými slovami, ak ste chceli, aby sa kalendára aplikácie, ktoré je možné aktualizovať niečí Google Calendar, je tu API pre to. Ak chcete, aby sa niečo, čo sa deje, aby vám povedal, kde umiestnenie určitej adresy ich môžete použiť Google Maps API pre to. API sú fantasticky užitočné, a sú všade. Ak máte záujem o nejaké myšlienky, je to asi súvisiace API, ktoré môžete použiť na získanie veľké množstvo dát veľmi rýchlo a veľmi jednoducho. Ak stále hľadáte projektu, alebo ak si len chcete pohrať s niečím všeobecne, API sú rozhodne stojí za to. Vďaka, a ja som rád zodpovie všetky otázky, ktoré ste môže mať. Dobre, vďaka moc. [CS50.TV]