1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminár] [A Programmer Úvod do API] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Harvard University] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [To je CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Ahoj, všetci, ja som Billy, a dnes budem hovoriť o API, 5 00:00:12,100 --> 00:00:15,220 alebo rozhranie pre programovanie aplikácií, 6 00:00:15,220 --> 00:00:20,040 najmä v súvislosti s CS50 záverečných prác a podobné veci. 7 00:00:20,040 --> 00:00:22,490 Všeobecne to, čo je API? 8 00:00:22,490 --> 00:00:25,530 Vo veľmi širokom zmysle, je to niečo ako sprostredkovateľa, ktorý umožňuje 2 kusy 9 00:00:25,530 --> 00:00:28,610 softvér pre komunikáciu medzi sebou navzájom. 10 00:00:28,610 --> 00:00:32,530 To je druh veľmi širokú definíciu, a nie je to relevantné pre to, čo sa pozeráme na. 11 00:00:32,530 --> 00:00:35,450 To, čo naozaj chcem, je nejaký druh užitočného strednej ceste 12 00:00:35,450 --> 00:00:40,570 komunikovať s nejakým databázy niekde. 13 00:00:40,570 --> 00:00:43,310 >> Tu je graf, a v podstate myšlienka je, že 14 00:00:43,310 --> 00:00:46,790 sme žiadosť, a chceme získať dáta z databázy, 15 00:00:46,790 --> 00:00:49,570 ale nechceme vyhľadávať v databáze priamo. 16 00:00:49,570 --> 00:00:52,710 Namiesto toho chceme ísť cez tento druh stredného človeka, API. 17 00:00:52,710 --> 00:00:55,440 Myšlienka, že sú čísla 2 a 3 na grafe 18 00:00:55,440 --> 00:00:57,750 sú obaja bude veľmi komplikovaný a chaotický. 19 00:00:57,750 --> 00:00:59,960 Inými slovami, ak je API je dotazovanie databázy, 20 00:00:59,960 --> 00:01:03,300 je to asi bude pomocou SQL tabuľky a všetky uvedené druhu veci, 21 00:01:03,300 --> 00:01:05,489 a my sme sa naučili niečo o tom v CS50, ale celkovo, 22 00:01:05,489 --> 00:01:07,590 ste si všimli, že je to trochu bolesti. 23 00:01:07,590 --> 00:01:10,590 To dostane veľmi, veľmi zložité a komplikované, najmä keď robíš 24 00:01:10,590 --> 00:01:12,530 zložité otázky a také veci. 25 00:01:12,530 --> 00:01:15,960 >> To, čo naozaj chcem, je nejaký užitočný a jednoduchý spôsob, ako 26 00:01:15,960 --> 00:01:19,780 získať tieto dáta, a to je myšlienka čísla 1 a 4 na grafe. 27 00:01:19,780 --> 00:01:23,600 Inými slovami, chceme naozaj jednoduchý spôsob, ako povedať API, čo si pre nás 28 00:01:23,600 --> 00:01:27,760 a naozaj jednoduchý spôsob, ako sa dostať, že dáta späť. 29 00:01:27,760 --> 00:01:33,020 Je tam jeden hlavný spôsob, ako že uvedené údaje sú zvyčajne odoslali a prijali, 30 00:01:33,020 --> 00:01:36,490 ktorá je JSON, alebo JavaScript Object notácie. 31 00:01:36,490 --> 00:01:40,370 To môže líšiť trochu, ak, ako ste poslať požiadavku na API. 32 00:01:40,370 --> 00:01:43,210 Inými slovami, ak chcete nejaké určité množstvo dát, 33 00:01:43,210 --> 00:01:46,670 Ako poviete API sa dostať, že parametre sa môžu líšiť trochu. 34 00:01:46,670 --> 00:01:49,210 Obvykle to zahŕňa výrobu nejakú sieťového požiadavke. 35 00:01:49,210 --> 00:01:53,130 Inými slovami, prístup k nejakej URL, ktorá to povie API 36 00:01:53,130 --> 00:01:56,190 presne to, čo chcete, ale dáta sú takmer vždy vrátený späť, 37 00:01:56,190 --> 00:01:59,530 Inými slovami, číslo 4 v JSON. 38 00:01:59,530 --> 00:02:01,030 >> Čo je to JSON presne? 39 00:02:01,030 --> 00:02:03,030 Ako som už povedal, JavaScript Object notácie. 40 00:02:03,030 --> 00:02:07,090 Je to v podstate univerzálny štandard pre vysielanie a príjem dát. 41 00:02:07,090 --> 00:02:11,410 Myšlienka je, že máte tieto 3 kategórie vecí. 42 00:02:11,410 --> 00:02:13,540 Máte pole, hashmaps, a primitíva. 43 00:02:13,540 --> 00:02:16,580 Polia a hashmaps ste sa pozerali na trochu v CS50, 44 00:02:16,580 --> 00:02:19,870 ale vy ste nejako dostal veľmi prísnu zmysel toho, čo oni sú. 45 00:02:19,870 --> 00:02:22,780 Inými slovami, s poľami viete, že to typ viazaný, 46 00:02:22,780 --> 00:02:26,560 takže máte len jeden druh typu, ktorý ide v celom poli. 47 00:02:26,560 --> 00:02:29,310 JSON je oveľa zhovievavejší také veci. 48 00:02:29,310 --> 00:02:33,590 V podstate myšlienka je si postaviť tento objekt, 49 00:02:33,590 --> 00:02:36,270 , Ktoré môžu byť zložené z niektorej z týchto 3 vecí 50 00:02:36,270 --> 00:02:39,470 a môže byť zložená z viac tie z nich, a môžu byť vnorené. 51 00:02:39,470 --> 00:02:42,110 >> Tu je akýsi príklad JSON, 52 00:02:42,110 --> 00:02:47,910 ktorá je sa tieto Zložené zátvorky tu predstavujú svoje HashMap 53 00:02:47,910 --> 00:02:51,400 a HashMap je v podstate mapovania z nejakej kľúče 54 00:02:51,400 --> 00:02:53,340 k nejakému hodnoty. 55 00:02:53,340 --> 00:02:56,440 Budete vidieť, že máme vlastnosti kľúč, 56 00:02:56,440 --> 00:02:59,600 a že je mapovanie na pole, ktoré je to celé. 57 00:02:59,600 --> 00:03:04,120 Vidíme ďalší prvok HashMap, ktorý je tento kľúč isAwesome, 58 00:03:04,120 --> 00:03:07,370 ktoré sa mapuje na primitívne hodnotu true, inými slovami, boolean. 59 00:03:07,370 --> 00:03:09,420 Primitives môžu byť reťazca. Môžu byť celé čísla. 60 00:03:09,420 --> 00:03:11,960 Môžu byť bools, niečo také. 61 00:03:11,960 --> 00:03:18,410 A vidíte obsah tohto poľa, ktoré vlastnosti bodov má 2 reťazca v ňom, 62 00:03:18,410 --> 00:03:20,050 self-podobný a nádherné. 63 00:03:20,050 --> 00:03:27,410 Tí sú 2 vlastnosti JSON, a vidíme, že JSON je úžasné. 64 00:03:27,410 --> 00:03:30,060 Pozrieť sa na to trochu podrobnejšie budem konštruovať 65 00:03:30,060 --> 00:03:32,870 zložitejšie príklad JSON tu. 66 00:03:32,870 --> 00:03:37,000 >> Začnime poľa, napríklad, len prázdne pole. 67 00:03:37,000 --> 00:03:39,180 Ale to je trochu nudné, takže budeme sa naplní trochu, 68 00:03:39,180 --> 00:03:43,420 a ako som povedal, polia v JSON sú typu medze, 69 00:03:43,420 --> 00:03:46,400 takže sa môže tiež mať reťazec tu, čo je hi, 70 00:03:46,400 --> 00:03:49,330 a to je ďalší prvok tohto poľa. 71 00:03:49,330 --> 00:03:53,450 A podobne by sme mohli pridať hashmapping sem, ktorý bude mať niekoľko mapovanie. 72 00:03:53,450 --> 00:04:00,470 Bude to mať mapovanie z názvu na reťazec Billy. 73 00:04:00,470 --> 00:04:04,590 Máme mapovania z názvu na Billyho, a máme mapovanie 74 00:04:04,590 --> 00:04:10,860 obľúbená farba na modrú. 75 00:04:10,860 --> 00:04:12,700 To je v podstate dobrý príklad JSON. 76 00:04:12,700 --> 00:04:18,160 Je to druh dostane do-jejda, potrebujú čiarku tam, všetky z rôznych častí. 77 00:04:18,160 --> 00:04:21,140 Opäť, to nie je typ viazané vôbec, takže môžete mať nejaký druh typy 78 00:04:21,140 --> 00:04:24,710 vnútri, čo chcete, a myšlienka je, že je to self-podobný. 79 00:04:24,710 --> 00:04:28,830 Inými slovami, to tu je objekt JSON, ako je to celé, 80 00:04:28,830 --> 00:04:33,200 ako je práve tento, takže môžete mať primitívne byť objekt, 81 00:04:33,200 --> 00:04:35,680 pole je objekt alebo HashMap byť objekt. 82 00:04:35,680 --> 00:04:40,270 >> Ako môžete trochu vidieť, JSON je naozaj, ale naozaj užitočné v tom, že je to tak univerzálny. 83 00:04:40,270 --> 00:04:45,860 Môžete mať všetky možné údaje, ktoré si môžete otehotnieť uložené v JSON. 84 00:04:45,860 --> 00:04:47,900 To robí to naozaj krásny jazyk pre použitie s API 85 00:04:47,900 --> 00:04:50,770 pretože to skoro znamená, že bez ohľadu na to, čo údaje, ktoré chcete 86 00:04:50,770 --> 00:04:54,270 tam to bude nejaký spôsob, ako sa dostať späť do formátu JSON. 87 00:04:54,270 --> 00:04:58,600 Niekoľko vlastnosti, ktoré robia JSON zvlášť vhodné pre tento druh veci. 88 00:04:58,600 --> 00:05:02,270 Ako môžete vidieť, v porovnaní s mnohých vecí, ktoré ste pracovali s vo CS50 89 00:05:02,270 --> 00:05:06,040 je to pomerne veľmi dobre čitateľný a tiež veľmi jednoduché písať. 90 00:05:06,040 --> 00:05:09,700 Môžete zarážka to, ak chcete, ako by som robil v tej príklade, 91 00:05:09,700 --> 00:05:12,990 , Ktorá vám dáva pekný, pekný verziu, ktorú môžete vidieť naozaj dobre. 92 00:05:12,990 --> 00:05:17,150 Ale naviac, je to tiež jednoduché čítať a písať na počítači. 93 00:05:17,150 --> 00:05:19,870 Inými slovami, je ľahké analyzovať a ľahko kódovanie, 94 00:05:19,870 --> 00:05:23,820 , Čo znamená, že je to dosť rýchlo, pokiaľ ide o čítanie dát sa týka, 95 00:05:23,820 --> 00:05:26,460 a JSON môžu byť generované veľmi rýchlo. 96 00:05:26,460 --> 00:05:30,300 >> Je to tiež veľmi ľahký prístup rôznych častí JSON a podobné veci. 97 00:05:30,300 --> 00:05:33,320 To je pekné, a ďalej skutočnosť, že je to self-podobný, 98 00:05:33,320 --> 00:05:36,090 Inými slovami, skutočnosť, že je možné v rámci JSON JSON v JSON 99 00:05:36,090 --> 00:05:40,040 je naozaj pekný pre ukladanie dát. 100 00:05:40,040 --> 00:05:45,490 Ďalšia časť, ktorá je všeobecne veľmi užitočné pri práci s API je jQuery. 101 00:05:45,490 --> 00:05:49,290 Ste sa naučili trochu JavaScriptu, ktorý je príjemný spôsob, ako 102 00:05:49,290 --> 00:05:53,710 manipulovať HTML a CSS v rámci webovej stránky. 103 00:05:53,710 --> 00:05:57,190 Ale to môže byť trochu bolesť kódu v prostom JavaScript, 104 00:05:57,190 --> 00:05:59,810 predovšetkým preto, že JavaScript je naozaj podrobný jazyk. 105 00:05:59,810 --> 00:06:03,020 Musíte sa naučiť veľa syntaxe, a len preto, aby si veľmi jednoduché veci 106 00:06:03,020 --> 00:06:07,590 to trvá veľa kódu, takže jQuery je knižnica pre JavaScript. 107 00:06:07,590 --> 00:06:09,800 Inými slovami, je to JavaScript súbor, ktorý môžete načítať 108 00:06:09,800 --> 00:06:12,730 a potom použiť jQuery funkcie robiť určité veci. 109 00:06:12,730 --> 00:06:15,670 A jQuery podstate robí váš život oveľa jednoduchší. 110 00:06:15,670 --> 00:06:20,390 To zjednodušuje to, čo by sa stovky riadkov v JavaScripte do niekoľkých riadkov v jQuery. 111 00:06:20,390 --> 00:06:24,430 >> To je obzvlášť užitočné, ak používate rozhranie API, pretože všeobecne 112 00:06:24,430 --> 00:06:27,600 ako budete pristupovať k rozhranie API je tým, že AJAX požiadaviek, 113 00:06:27,600 --> 00:06:30,130 a verím, že David je uvedené v prednáške, že AJAX požiadavky 114 00:06:30,130 --> 00:06:33,120 sú všeobecne, keď robíte siete požiadavku na nejaké servera 115 00:06:33,120 --> 00:06:37,760 a dostať späť nejaké dát a aktualizáciu stránky okamžite. 116 00:06:37,760 --> 00:06:41,840 Vzhľadom k tomu, v prostom JavaScriptom, ktorý by sa bláznivé čísla liniek 117 00:06:41,840 --> 00:06:44,620 overiť všetky hlavičky a robiť všetko tento druh vecí, 118 00:06:44,620 --> 00:06:46,810 jQuery má naozaj jednoduchú funkciu nazvanú AJAX, 119 00:06:46,810 --> 00:06:51,760 a všetko, čo musíte urobiť, AJAX, je dať parametre, ktoré chcete dať API, 120 00:06:51,760 --> 00:06:56,830 umiestnenie API a akékoľvek ďalšie druh volieb, ktoré chcete konfigurovať. 121 00:06:56,830 --> 00:07:02,480 Je to naozaj, naozaj pekné a veľmi užitočné pre takéto veci. 122 00:07:02,480 --> 00:07:06,970 To je všetko, čo potrebujeme začať sa naše ruky špinavé API. 123 00:07:06,970 --> 00:07:10,220 >> Idem vychovať niekoľko príkladov a preskúmať ich rôzne vlastnosti 124 00:07:10,220 --> 00:07:13,150 a prečo sú užitočné pre rôzne druhy vecí. 125 00:07:13,150 --> 00:07:15,570 Prvá vec, ktorú som vám vlastne ukážem, je niečo, čo som pracoval na 126 00:07:15,570 --> 00:07:18,310 V mojej výskumnej laboratóriu, ktorá je Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 av podstate myšlienka Viewer Ngram ich môžete vyhľadávať nejaké slovo 128 00:07:23,270 --> 00:07:28,840 alebo frázy a uvidíte, ako často sa to objavilo v určitom súbore textu v priebehu času. 129 00:07:28,840 --> 00:07:33,160 Tento príklad je tu tieto dáta sada detí 130 00:07:33,160 --> 00:07:36,480 ktorí sa narodili v New Yorku v rokoch 1920 a 2000. 131 00:07:36,480 --> 00:07:40,090 Môžeme hľadať, napríklad u názvu Jennifer, 132 00:07:40,090 --> 00:07:44,400 a vidíme, že pre-1960 naozaj to nebol použitý tak moc, 133 00:07:44,400 --> 00:07:48,900 a potom ako sme sa dostali do ďalších rokov je to stále viac používa. 134 00:07:48,900 --> 00:07:53,680 Môžeme tiež vykonať porovnanie, takže keď porovnáme Jennifer, napríklad, Thomas, 135 00:07:53,680 --> 00:07:56,520 môžeme vidieť Thomas bol celkom prevládajúci skrz históriu, 136 00:07:56,520 --> 00:07:58,780 vzhľadom k tomu, Jennifer je novšia názov. 137 00:07:58,780 --> 00:08:00,590 Môžeme to urobiť takú vec. 138 00:08:00,590 --> 00:08:02,460 >> Ako sa táto aplikácia funguje? 139 00:08:02,460 --> 00:08:06,030 V podstate to funguje cez API. 140 00:08:06,030 --> 00:08:08,660 Inými slovami, majú určité parametre tu. 141 00:08:08,660 --> 00:08:11,360 Máme parametre toho, čo sme vlastne hľadá, 142 00:08:11,360 --> 00:08:13,720 ktoré sú tieto mená, a potom máme niekoľko ďalších vlastností, 143 00:08:13,720 --> 00:08:16,570 ako osi Y a osou X. 144 00:08:16,570 --> 00:08:18,440 Môžete vidieť, že majú niekoľko rôznych možností, pokiaľ ide o 145 00:08:18,440 --> 00:08:20,860 časové rozlíšenie používať a také veci. 146 00:08:20,860 --> 00:08:26,700 Máme tieto možnosti, pokiaľ ide o to, čo vlastne chceme dát z databázy, 147 00:08:26,700 --> 00:08:29,400 a chceme sa dostať, že dáta späť nejakým užitočným spôsobom. 148 00:08:29,400 --> 00:08:34,020 Zvyčajne, keď sme boli dotazovanie databázy priamo, že by nejako byť bolesť robiť 149 00:08:34,020 --> 00:08:38,970 pretože všetkého to údaje o detská mena žije v nejakom databáze niekde, 150 00:08:38,970 --> 00:08:42,789 a to by bolo naozaj zložité mať na dotaz ručne 151 00:08:42,789 --> 00:08:45,830 a rozhodnúť, čo presne údaje k návratu. 152 00:08:45,830 --> 00:08:49,300 Inými slovami, len o Jennifer a Thomas v tomto prípade, 153 00:08:49,300 --> 00:08:53,410 a my sme len o na určitej osi a všetky tohto druhu vecí. 154 00:08:53,410 --> 00:08:55,720 >> Ako sa dostaneme okolo tohto? 155 00:08:55,720 --> 00:09:01,200 Ak chcete kopať do tohto API trochu viac ja vám ukážem ďalší príklad tejto platformy 156 00:09:01,200 --> 00:09:04,490 ktorý používa mierne odlišný súbor dát. 157 00:09:04,490 --> 00:09:09,950 Táto dátová sada, namiesto toho, aby detská mená, je v skutočnosti len celá 158 00:09:09,950 --> 00:09:12,460 tlač publikácie databázy Open Library, 159 00:09:12,460 --> 00:09:18,410 ktorá je obrovská zdrojom texty uverejnené počas posledných 100 rokov, alebo tak. 160 00:09:18,410 --> 00:09:23,540 Myšlienka je, že sme túto compository o milióny a milióny textu, 161 00:09:23,540 --> 00:09:27,420 ktoré môžeme teraz hľadať rôznych slov a fráz v 162 00:09:27,420 --> 00:09:30,840 Tu je príklad, ktorý sa líši trochu odlišne od predchádzajúceho príkladu 163 00:09:30,840 --> 00:09:33,350 Ukázal som vám, čo ich máme tieto 3 vyhľadávacích dotazov, 164 00:09:33,350 --> 00:09:36,290 vojna, vojna, a francúzske slovo pre vojnu, ktorá je guerre. 165 00:09:36,290 --> 00:09:40,380 A my hľadáme do 3 rôznych častí celkového databázy. 166 00:09:40,380 --> 00:09:45,080 Inými slovami, v tomto prvom dotaze sme iba vyhľadávanie v USA, 167 00:09:45,080 --> 00:09:51,150 v druhom iba vo Veľkej Británii, a tretí iba z prác publikovaných vo Francúzsku. 168 00:09:51,150 --> 00:09:53,120 Vidíme niektoré zaujímavé vzory vznikajú. 169 00:09:53,120 --> 00:09:58,180 Napríklad, vidíme priamo tu, ktoré- 170 00:09:58,180 --> 00:10:02,410 pardon, som zpackal osi trochu, ale môžete vidieť priamo v tomto rozsahu tu 171 00:10:02,410 --> 00:10:05,730 okolo občianskej vojny je tu veľký bodec v americkom vydaní 172 00:10:05,730 --> 00:10:08,340 ale nie je tak veľký hrot v ďalších dvoch, a to preto, že zrejme 173 00:10:08,340 --> 00:10:10,880 americká občianska vojna sa deje v tomto bode. 174 00:10:10,880 --> 00:10:13,890 >> Môžeme vidieť nejaké cool veci tam, 175 00:10:13,890 --> 00:10:17,070 ale to, čo naozaj záleží je to, ako sme sa dostali na tieto dáta. 176 00:10:17,070 --> 00:10:21,320 Vezmem ťa do zákulisia v tejto aplikácii v trochu. 177 00:10:21,320 --> 00:10:24,540 Pekný trik je, ak pracujete s webom a druhu chcete vedieť 178 00:10:24,540 --> 00:10:27,430 čo sa deje v zákulisí, môžete otvoriť Nástroje pre vývojárov. 179 00:10:27,430 --> 00:10:30,200 Budem používať Chrome vývojárske nástroje, a aby sa k tým 180 00:10:30,200 --> 00:10:35,160 môžete urobiť kontrolu, posun, J, a že vás zavedie do konzoly JavaScript. 181 00:10:35,160 --> 00:10:37,420 Existuje niekoľko kariet tu. 182 00:10:37,420 --> 00:10:39,680 Môžu byť všetci celkom užitočné za iných okolností, ale ja sa starám o sieti 183 00:10:39,680 --> 00:10:44,150 Karta teraz, a ja som vlastne musieť aktualizovať, aby si túto prácu. 184 00:10:44,150 --> 00:10:50,180 Oh, ospravedlňujem sa. 185 00:10:50,180 --> 00:10:52,320 Má rád, aby náhodný príklad. 186 00:10:52,320 --> 00:10:54,700 Dobre, budeme chcete použiť tento príklad miesto potom. 187 00:10:54,700 --> 00:11:01,330 >> Myšlienka je, že je to API tu, 188 00:11:01,330 --> 00:11:05,330 a môžete vidieť presne to, čo API vracia. 189 00:11:05,330 --> 00:11:10,220 To je to, čo aplikácie sa vracia z API, čo poslal túto žiadosť. 190 00:11:10,220 --> 00:11:13,680 Dovoľte mi, aby som priblížiť trochu, 191 00:11:13,680 --> 00:11:18,340 a my môžeme v podstate vidieť, že je to len rad kľúčových dvojíc hodnôt v JSON. 192 00:11:18,340 --> 00:11:23,220 Inými slovami, máme túto HashMap tu to je mapovanie hodnôt. 193 00:11:23,220 --> 00:11:26,440 Inými slovami, je to mapovanie rokov na hodnoty. 194 00:11:26,440 --> 00:11:32,600 V roku 1765, čo slovo, ktoré pôvodne hľadali sa používa 90 krát 195 00:11:32,600 --> 00:11:35,810 z 1000000, takže sme sa vrátiť tento výsledok. 196 00:11:35,810 --> 00:11:40,280 Nie je to presne to, JSON, pretože máme tento malý výsledok hlavičke tu, 197 00:11:40,280 --> 00:11:45,630 ale všimnite si, že celý tento objekt je tu len velikánsky JSON klbko. 198 00:11:45,630 --> 00:11:51,070 Máme rad tu, ktorý obsahuje celú túto prvok, 199 00:11:51,070 --> 00:11:55,590 a môžete vidieť, že celý element končí tam, a potom máme ďalší veľký prvok 200 00:11:55,590 --> 00:11:59,430 že ide celú cestu až do konca, a že tu končí. 201 00:11:59,430 --> 00:12:02,200 Máme naozaj veľkú pole s 2 objekty v ňom, 202 00:12:02,200 --> 00:12:04,630 a každý z týchto predmetov je HashMap. 203 00:12:04,630 --> 00:12:07,340 Môžete vidieť v rámci každej z týchto hashmaps máme mapovanie 204 00:12:07,340 --> 00:12:12,700 tohto indexu hodnotu 0 a táto hodnota je na inú HashMap, 205 00:12:12,700 --> 00:12:18,360 ktorá je opäť zmapovanie hodnôt os X na os Y hodnoty. 206 00:12:18,360 --> 00:12:20,970 >> Môžete vidieť JSON je trochu trochu zložitejšie, ale celkovo, 207 00:12:20,970 --> 00:12:24,190 je to vlastne veľmi užitočné, a to je veľmi ľahký prístup v porovnaní s 208 00:12:24,190 --> 00:12:27,390 ďalšie rôzne formy zápisu. 209 00:12:27,390 --> 00:12:30,550 Pokiaľ ide o to, čo sme vlastne odosielanie dát do API dostať, 210 00:12:30,550 --> 00:12:34,690 Ja idem do zadnej koniec trochu tu. 211 00:12:34,690 --> 00:12:39,850 To je veľká JavaScript súbor, ktorý je uspokojenie všetkých interakcií webové aplikácie, 212 00:12:39,850 --> 00:12:44,810 a tak sme sa nestarajú o väčšinu, ale my starať o niektoré z nich. 213 00:12:44,810 --> 00:12:47,410 Napríklad, staráme sa o tomto buildQuery funkciu, 214 00:12:47,410 --> 00:12:50,670 a myšlienka tejto funkcie je v podstate to vyzerá po stránke, 215 00:12:50,670 --> 00:12:53,750 zisťuje, čo užívateľ chce dotaz, inými slovami, 216 00:12:53,750 --> 00:12:57,090 kontrolu týchto políčok, kde som Input svoje vyhľadávacie termíny, 217 00:12:57,090 --> 00:13:01,380 kontrola odlišný Y a os X hodnoty, ktoré ste si vybrali a všetci také veci, 218 00:13:01,380 --> 00:13:06,650 a bude to vypľuje túto dopytu hodnotu, ktorá potom môžem poslať preč do API. 219 00:13:06,650 --> 00:13:09,180 >> Tento vyzerá komplikovane, a to je docela komplikované 220 00:13:09,180 --> 00:13:18,090 ale čo budem robiť v tom, ja už som robil to, čo je skvelé, 221 00:13:18,090 --> 00:13:21,640 je to, že budem získať konzoly vytlačiť presne túto hodnotu dopytu 222 00:13:21,640 --> 00:13:28,110 že to vyšle do rozhrania API. 223 00:13:28,110 --> 00:13:30,870 To je vlastne tu. Ospravedlňujeme sa, ale dodá veľa vecí. 224 00:13:30,870 --> 00:13:33,690 Ale to je to, čo nás zaujíma, je tento objekt priamo tu. 225 00:13:33,690 --> 00:13:35,300 To je otázka objekt. 226 00:13:35,300 --> 00:13:40,670 Inými slovami, to je presne to, čo webové aplikácie odosiela na API, 227 00:13:40,670 --> 00:13:45,730 a tak sa poďme pozrieť dovnútra trochu, a vidíme, máme pár hodnoty tu. 228 00:13:45,730 --> 00:13:48,710 Vidíme máme tento počet, typ, ktorý je výskyty na milión slov, 229 00:13:48,710 --> 00:13:51,460 čo je presne to, čo sme si vybrali v osi Y tu. 230 00:13:51,460 --> 00:13:53,740 To je miesto, kde to je pochádza. 231 00:13:53,740 --> 00:13:58,010 Máme databázy hodnotu, čo znamená, že tam je nejaký určitej databázy 232 00:13:58,010 --> 00:14:01,610 že tieto údaje sú bývanie, a chceme, aby prístup k dátam konkrétne 233 00:14:01,610 --> 00:14:04,950 na rozdiel od tých zdrobneniny údajov, napríklad. 234 00:14:04,950 --> 00:14:08,320 Potom je tu skupiny hodnotu, 235 00:14:08,320 --> 00:14:12,090 ktorý hovorí, že ak chceme vyhľadávať podľa roku oproti 236 00:14:12,090 --> 00:14:16,030 iný X hodnota osi. 237 00:14:16,030 --> 00:14:19,040 Potom máme metódu, ktorá niektoré API bude robiť viac vecí. 238 00:14:19,040 --> 00:14:22,360 Inými slovami, môže toto rozhranie API tiež vrátiť iné druhy dát, 239 00:14:22,360 --> 00:14:27,740 ale v tomto prípade, chceme, aby mapovanie hodnoty osi X na osi y hodnoty. 240 00:14:27,740 --> 00:14:30,730 To je to, čo to hovorí, aby robil tam, 241 00:14:30,730 --> 00:14:35,020 a máme toto vyhľadávanie medze pole, ktoré obsahuje 2 hodnoty. 242 00:14:35,020 --> 00:14:40,720 Prvá z nich je to, čo vidíme tu, čo je všetky hodnoty 243 00:14:40,720 --> 00:14:43,020 obsiahnuté v tomto prvom malé pole v hornej časti. 244 00:14:43,020 --> 00:14:47,570 >> Inými slovami, chceme sa pozrieť na slovo bitke, a chceme filtrovať 245 00:14:47,570 --> 00:14:51,920 anglickými textami v americkej literatúre. 246 00:14:51,920 --> 00:14:54,590 Máme v tejto krajine, ktorá je USA. 247 00:14:54,590 --> 00:14:59,130 Máme jazyk, ktorým je angličtina, takže máme všetky tieto rôzne časti 248 00:14:59,130 --> 00:15:02,690 ktoré sú všetky hovoriť API presne to, čo chceme. 249 00:15:02,690 --> 00:15:04,940 Nevieme, aké údaje, ktoré sme sa vrátili ešte, 250 00:15:04,940 --> 00:15:10,970 ale vieme, že dáta bude trvať určitú formu. 251 00:15:10,970 --> 00:15:13,650 Tento príklad je druh na zložité strane, 252 00:15:13,650 --> 00:15:16,180 a vy by ste nutne byť pomocou rozhrania API tento komplex, 253 00:15:16,180 --> 00:15:20,600 ale to je ukázať vám rozsah a silu toho, čo API vie. 254 00:15:20,600 --> 00:15:24,980 Inými slovami, pomocou pomerne jednoduchého dopytu systému sme v podstate majú vstupné pole 255 00:15:24,980 --> 00:15:29,490 s niekoľkými ďalšími selektorov v rôznych miestach. 256 00:15:29,490 --> 00:15:32,010 >> Dovoľte mi, aby som približovanie tu. 257 00:15:32,010 --> 00:15:37,720 Máme vstupné pole s niekoľkými rôznymi metadát výbery, 258 00:15:37,720 --> 00:15:40,610 a máme os Y a os x výbery. 259 00:15:40,610 --> 00:15:42,830 Nemáme vlastne majú, že mnoho polí, 260 00:15:42,830 --> 00:15:46,210 a my môžeme vidieť veľmi ľahko sme schopní dotaz nejaký API 261 00:15:46,210 --> 00:15:48,510 a získať dáta späť a potom ju do tohto grafu, 262 00:15:48,510 --> 00:15:52,080 ktorý je potom bude zobrazovať vo užitočným spôsobom. 263 00:15:52,080 --> 00:15:54,970 Pozrieť sa na ďalší príklad, ktorý by mohol byť trochu známejšia na vás 264 00:15:54,970 --> 00:15:56,510 budeme sa obrátiť na Facebooku. 265 00:15:56,510 --> 00:15:59,440 Facebook je API sa nazýva graf Facebook, 266 00:15:59,440 --> 00:16:04,390 av podstate to, čo to znamená, že je Facebook vidí seba ako tento rozsiahlej databáze 267 00:16:04,390 --> 00:16:08,000 z mnohých rôznych častí, ktoré všetky majú určité vzťahy ku každému iný. 268 00:16:08,000 --> 00:16:11,070 Inými slovami, ja som užívateľ na Facebooku, tak som si profil, 269 00:16:11,070 --> 00:16:14,310 a tiež mám isté priateľov, a každý z nich má profil, 270 00:16:14,310 --> 00:16:17,580 a každý z mojich priateľov má stenu, ktorá má rôzne pripomienky na to, 271 00:16:17,580 --> 00:16:20,800 a každý z týchto pripomienok má likes a všetky tieto veci. 272 00:16:20,800 --> 00:16:23,100 >> Tam je veľa rôznych dielov na Facebook. 273 00:16:23,100 --> 00:16:26,670 Je to veľmi zložitá API, a tam je tony, ktoré môžete urobiť s ním, 274 00:16:26,670 --> 00:16:28,450 ale je to vlastne celkom jednoduché na používanie. 275 00:16:28,450 --> 00:16:33,680 Chystám sa začať tým, že bude graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 čo je môj jedinečný názov účtu, a vaše užívateľské meno bude buď 277 00:16:38,430 --> 00:16:43,710 nejaká slová, ak ste si vybrali to, alebo to môže byť len reťazec čísel. 278 00:16:43,710 --> 00:16:46,360 To, čo sme sa vrátiť, je docela základné informácie. 279 00:16:46,360 --> 00:16:50,460 Vidíme, že mám meno, ktoré je Billy, priezvisko, ktoré je Janitsch. 280 00:16:50,460 --> 00:16:53,370 Je tu jedinečná Facebook ID, ktoré mám. 281 00:16:53,370 --> 00:16:57,920 Môžete vidieť, že som muž, a že mám nastavenie jazyka 282 00:16:57,920 --> 00:17:01,290 britská angličtina. 283 00:17:01,290 --> 00:17:03,490 Inými slovami, vidíme veľmi základné informácie tu. 284 00:17:03,490 --> 00:17:08,670 Nie je to moc, ale to sa nám dať predstavu o tom, čo tam je. 285 00:17:08,670 --> 00:17:10,849 >> Môžeme to urobiť to isté s Davidom Malan, napríklad. 286 00:17:10,849 --> 00:17:13,599 Myslím, že jeho meno je dmalan. 287 00:17:13,599 --> 00:17:16,369 Vidíme David Malan má unikátne ID. 288 00:17:16,369 --> 00:17:19,300 Má názov, meno, druhé meno, priezvisko. 289 00:17:19,300 --> 00:17:24,210 Vidíme tiež, že on je muž a má svoje sady jazykov na americkú angličtinu. 290 00:17:24,210 --> 00:17:26,869 Inými slovami, vidíme docela základné informácie tu. 291 00:17:26,869 --> 00:17:28,860 A teraz, čo sa stane, keď sa snažíme vyskúšať niečo iné? 292 00:17:28,860 --> 00:17:33,060 Povedzme, že mám záujem o to, čo David Malan sa rád na Facebooku. 293 00:17:33,060 --> 00:17:36,860 Môžem robiť / rád. Teraz sme narazíte na problém. 294 00:17:36,860 --> 00:17:39,280 Máme nejaké chyby, ktorá hovorí, že prístupový token 295 00:17:39,280 --> 00:17:41,660 je nutné požiadať o tento zdroj. 296 00:17:41,660 --> 00:17:44,730 Ale ak si myslíte, o tom, že vlastne dáva zmysel, pretože to by bolo divné 297 00:17:44,730 --> 00:17:47,830 ak by ste mohli pristupovať každý časť databázy Facebooku je 298 00:17:47,830 --> 00:17:50,170 len z akejsi jednoduché API, nie? 299 00:17:50,170 --> 00:17:56,040 Inými slovami, pravdepodobne vaše informácie nemožno získať prístup každý, kto chce. 300 00:17:56,040 --> 00:17:58,330 >> Táto chyba je presne to, čo to znamená. 301 00:17:58,330 --> 00:18:03,630 Niektoré API vyžadujú určité povolenie, aby sa prístup k ich dátam. 302 00:18:03,630 --> 00:18:06,940 A ešte pokročilejšie API, rovnako ako Facebook jeden, 303 00:18:06,940 --> 00:18:09,840 bude vyžadovať určité povolenie robiť určité veci. 304 00:18:09,840 --> 00:18:12,650 Vidím tieto základné informácie o David Malan. 305 00:18:12,650 --> 00:18:15,950 Vidím, že je to muž, a že žije v USA, 306 00:18:15,950 --> 00:18:19,270 ale ja nemôžem nič vidieť minulosť, ktorá. 307 00:18:19,270 --> 00:18:23,050 Ak chcete získať okolo to pre teraz, Facebook má tento pekný nástroj 308 00:18:23,050 --> 00:18:27,690 čo je graf API prieskumník, a myšlienka, že ich môžete triediť z 309 00:18:27,690 --> 00:18:31,880 tvorí oprávnenia pre seba na základe Vašej vlastný účet 310 00:18:31,880 --> 00:18:35,680 a potom pozerať sa na veci, ktoré sa špecificky váš účet môže zobraziť. 311 00:18:35,680 --> 00:18:45,120 Napríklad, keď som to graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 jejda, myslím, že budem musieť znova overiť svoj žetón tu. 313 00:18:53,510 --> 00:18:55,950 Dobre. 314 00:18:55,950 --> 00:19:01,740 Ak sa mi to znovu, skvelé, teraz vidím, že som si tento objekt späť 315 00:19:01,740 --> 00:19:06,300 ktorý hovorí, že sa mi páči bazén rezance, ktoré sú v kategórii Hry a hračky. 316 00:19:06,300 --> 00:19:08,620 Páči sa mi mroža, ktoré sú v kategórii Animal. 317 00:19:08,620 --> 00:19:10,180 Jedná sa o môj skutočný Facebook rád. 318 00:19:10,180 --> 00:19:13,280 Sú trochu trápne. 319 00:19:13,280 --> 00:19:16,090 >> Ale môžeme vidieť dáta sa všetci vrátili do formátu JSON. 320 00:19:16,090 --> 00:19:18,160 Je to celkom čitateľný. 321 00:19:18,160 --> 00:19:20,970 Inými slovami, máme toto mapovanie dát na nejaký pole, 322 00:19:20,970 --> 00:19:25,220 a každý prvok tohto poľa je HashMap, ktorý mapuje 323 00:19:25,220 --> 00:19:28,530 meno páči a kategórie ako. 324 00:19:28,530 --> 00:19:31,240 Každý, ako má unikátne ID. 325 00:19:31,240 --> 00:19:34,510 Tam sú všetky druhy rôznych vecí, dát, ktoré môžeme získať, 326 00:19:34,510 --> 00:19:37,980 a ak máte záujem o využitie Facebook API pre CS50 záverečného projektu 327 00:19:37,980 --> 00:19:40,720 alebo niečo podobné, že je to vlastne celkom realizovateľné. 328 00:19:40,720 --> 00:19:44,260 V podstate, ako sa dostať okolo overovania vec je Facebook 329 00:19:44,260 --> 00:19:48,030 používa systém zvaný OAuth, alebo Open Authentication, 330 00:19:48,030 --> 00:19:52,870 a ja nechcem, aby sa do nej hneď, pretože OAuth alebo iný typ 331 00:19:52,870 --> 00:19:56,060 overovanie tendenciu sa veľa líšia medzi rôznymi API, 332 00:19:56,060 --> 00:19:58,320 takže som mohol stráviť dlhú dobu idete po každej z nich, 333 00:19:58,320 --> 00:20:01,170 ale oni sú vlastne celkom samozrejmý. 334 00:20:01,170 --> 00:20:04,050 >> Ak Google Facebook API je veľmi čitateľný. 335 00:20:04,050 --> 00:20:06,670 Existuje celá špec. 336 00:20:06,670 --> 00:20:10,210 Napríklad, to je dokumentácia pre Facebook API, 337 00:20:10,210 --> 00:20:14,170 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í 338 00:20:14,170 --> 00:20:17,170 ktoré sú k dispozícii sa dostať, ak to bude dát 339 00:20:17,170 --> 00:20:21,550 a tiež rôzne oprávnenia, ktoré potrebujem, aby sa prístup k nim. 340 00:20:21,550 --> 00:20:25,470 Ako sme videli, nepotrebujeme oprávnenie k prístupu k názvu alebo pohlavia, 341 00:20:25,470 --> 00:20:29,380 ale za tým potrebujeme oprávnenia pre väčšinu vecí. 342 00:20:29,380 --> 00:20:33,040 Táto stránka, alebo skôr, tento web vám tiež povie, ako sa dostať 343 00:20:33,040 --> 00:20:35,640 token môcť overiť sami. 344 00:20:35,640 --> 00:20:39,290 Väčšina systémov overovania použiť nejaký tokenu 345 00:20:39,290 --> 00:20:42,880 kde dostanete jedinečnú hodnotu, čo je naozaj dlhá a náhodný reťazec, 346 00:20:42,880 --> 00:20:46,240 a že spôsob, akým sa môžu združovať požiadavku, že ste sa s tebou. 347 00:20:46,240 --> 00:20:50,560 Inými slovami, oni vedia, že nerobíte nič podozrivého s ich dátami. 348 00:20:50,560 --> 00:20:53,340 Vedia presne, čo ste sa dostal. 349 00:20:53,340 --> 00:20:56,180 Vedia tiež, že máte povolenie na zobrazenie týchto informácií. 350 00:20:56,180 --> 00:20:59,110 >> Ak ste vykonali Facebook app a vaša aplikácia má určitých užívateľov, 351 00:20:59,110 --> 00:21:03,380 a títo užívatelia majú možnosť, že aplikácie pre prístup k niektorej časti ich profilu, 352 00:21:03,380 --> 00:21:07,790 potom čokoľvek API kľúč alebo token, že aplikácia používa 353 00:21:07,790 --> 00:21:11,090 budú mať prístup k údajom pre týchto užívateľov. 354 00:21:11,090 --> 00:21:13,780 To môže znieť komplikovane, ale nie je to tak zlé, 355 00:21:13,780 --> 00:21:16,810 a ak chcete používať Facebook by som vrelo odporúčam, aby ste 356 00:21:16,810 --> 00:21:18,990 zvážte hrať sa s ich API. 357 00:21:18,990 --> 00:21:21,610 Je to veľmi cool, a môžete robiť veľa rôznych vecí s ňou. 358 00:21:21,610 --> 00:21:24,880 Pokiaľ užívateľ poskytne vám táto oprávnenia, môžete sa dokonca vrátiť späť do rozhrania API 359 00:21:24,880 --> 00:21:28,820 a povedať, že som v skutočnosti chcieť poslať na tohto užívateľa stene, alebo chcem nechať zverejniť fotografiu, 360 00:21:28,820 --> 00:21:32,390 a to je dôvod, prečo na noviniek budete niekedy dostanem tie otravné veci 361 00:21:32,390 --> 00:21:37,840 porekadlá váš priateľ sledoval toto video na nejaké podivné stránky, alebo niečo také. 362 00:21:37,840 --> 00:21:43,120 To je preto, že aplikácie bol povolený prístup k pošte na jeho príslušnosti k stene. 363 00:21:43,120 --> 00:21:48,350 Myšlienka celkovo je Facebook API dosť zložité, ale aj naozaj užitočné. 364 00:21:48,350 --> 00:21:53,220 Rozhodne stojí mimo kontroly, ak ešte hľadáte pre konečného projektu. 365 00:21:53,220 --> 00:21:57,930 >> Ďalšie sada rozhrania API, ktoré som idem cez je CS50 API. 366 00:21:57,930 --> 00:22:00,070 Dovoľte mi, aby som priblížite tu. 367 00:22:00,070 --> 00:22:03,390 CS50 skutočne dať dohromady celý rad rozhraní API 368 00:22:03,390 --> 00:22:07,080 ktoré môžete použiť pre finálnu projekt, alebo len pre všetko, čo robíte. 369 00:22:07,080 --> 00:22:12,830 A oni to väčšinou Harvard súvisiace, a oni sa líši od ponuky Huds, 370 00:22:12,830 --> 00:22:17,780 Napríklad v tomto Harvard Akcie API, ktoré vám umožní prístup k zoznamu 371 00:22:17,780 --> 00:22:21,290 rôzne akcie, ktoré sa chystáte na na Harvarde a také veci. 372 00:22:21,290 --> 00:22:24,510 A tak môžeme kliknúť na niektorú z nich a získať spec pre to, 373 00:22:24,510 --> 00:22:28,090 ktoré budete môcť nájsť pre všetky API, a myšlienka je 374 00:22:28,090 --> 00:22:33,920 to vám vedieť, čo konkrétne požadovať od API a ako sa o ne požiadať. 375 00:22:33,920 --> 00:22:37,370 Inými slovami, ak chcem všetky udalosti, ktoré sa dejú zajtra 376 00:22:37,370 --> 00:22:42,550 potom som sa dostal do samozrejme dať mu, že dátum, ktorý chcem v určitom formáte, 377 00:22:42,550 --> 00:22:46,030 a B, bude to mi presne to, čo sa deje, aby sa ku mne. 378 00:22:46,030 --> 00:22:48,590 Bude sa hovoriť Chystám sa vrátiť vám tento objekt JSON, 379 00:22:48,590 --> 00:22:50,960 alebo ako vidíte, existujú rôzne formáty. 380 00:22:50,960 --> 00:22:54,050 >> Môžete sa tiež vrátiť dáta ako CSV, napríklad. 381 00:22:54,050 --> 00:22:57,620 Ale presne viete, ako tieto dáta bude vyzerať, keď sa dostanete späť 382 00:22:57,620 --> 00:23:00,610 takže môžete očakávať, že robiť určité veci s ním. 383 00:23:00,610 --> 00:23:07,240 Môžeme posunúť dole a vidieť, napríklad, ak chceme dotaz API 384 00:23:07,240 --> 00:23:11,500 získať kalendár, potom môžeme použiť túto konkrétnu adresu URL 385 00:23:11,500 --> 00:23:16,480 a dať mu určité parametre, ktoré sa chystáte byť dáta, ktoré chceme presne. 386 00:23:16,480 --> 00:23:19,540 A podobne, ak chceme dáta späť v určitom formáte, 387 00:23:19,540 --> 00:23:23,790 potom sa môžeme pýtať, do výstupu dát v CSV, 388 00:23:23,790 --> 00:23:27,700 a to je len ďalší parameter, ktorý sme okolo na API. 389 00:23:27,700 --> 00:23:29,210 Veľa skvelých vecí, ktoré sa tam. 390 00:23:29,210 --> 00:23:32,550 Ja by som určite odporučil pozrieť sa na CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Idem sa pozrieť na tohto API potravín Harvard najmä pre trochu. 392 00:23:36,000 --> 00:23:39,870 Jedna vec, ktorú som vlastne určený, je to Harvard Nomata stránky, 393 00:23:39,870 --> 00:23:44,930 ktorý používa CS50 potravín API načítať Huds menu pre deň. 394 00:23:44,930 --> 00:23:50,400 A pre ľudí, rozšírenie školy, Huds je jedálenský servis na Harvarde. 395 00:23:50,400 --> 00:23:55,130 Čo dostanete, je to stránka, ktorá obsahuje všetky jedál za deň, a tak môžeme vidieť obed. 396 00:23:55,130 --> 00:23:58,130 Máme niekoľko rôznych kategórií. Máme fazuľa a celozrnné stanice. 397 00:23:58,130 --> 00:24:00,340 Máme hnedá ryža stanicu. 398 00:24:00,340 --> 00:24:03,360 Vidíme na brunch máme tieto málo potraviny. 399 00:24:03,360 --> 00:24:07,030 Ak by sme na ne kliknete, potom sme si o nutričné ​​údaje. 400 00:24:07,030 --> 00:24:12,240 Môžete vidieť, je nutričné ​​informácie pre grapefruity, v prípade, že ste boli zvedaví. 401 00:24:12,240 --> 00:24:14,870 A tak znova, budeme nahliadnuť do zadnej koniec sem trochu 402 00:24:14,870 --> 00:24:18,530 a zistiť, čo presne to robí, aby sa tieto dáta. 403 00:24:18,530 --> 00:24:21,710 A to dopadá byť skutočne veľmi zložité vôbec. 404 00:24:21,710 --> 00:24:28,720 Tento súbor vyzerá trochu chaotický, ale majte na pamäti, že je to manipulácia na celý web, 405 00:24:28,720 --> 00:24:34,130 a keď som posunúť dole vidíme túto zmenu dát funkciu. 406 00:24:34,130 --> 00:24:36,630 >> Teraz, len aby bolo jasno, toto je napísané v CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 čo je jazyk, ktorý ste pravdepodobne ešte nevideli. 408 00:24:39,570 --> 00:24:44,810 Ale je to celkom čitateľné, takže budem chodiť cez to, ako by to bolo pseudokód. 409 00:24:44,810 --> 00:24:49,080 Zmeniť dátum je funkcia, ktorá bude trvať v tomto časovom hodnoty, 410 00:24:49,080 --> 00:24:51,740 a je to tiež bude, aby sa v prvej, ktoré nemáme starať o toľko. 411 00:24:51,740 --> 00:24:54,110 Ale dôležité je, že to má tento dátum, 412 00:24:54,110 --> 00:25:00,080 a tento dátum je deň, ktorý chceme požiadať všetkých potravín pre. 413 00:25:00,080 --> 00:25:04,030 A potom vidíte, máme trochu syntaxe tu, 414 00:25:04,030 --> 00:25:09,000 ktorý je v podstate analýze tento dátum do čitateľného formátu. 415 00:25:09,000 --> 00:25:11,920 Inými slovami, API vyžaduje dáta v určitom formáte. 416 00:25:11,920 --> 00:25:17,390 Nemôžeš len tak povedať, 16.listopadu 2012 AD. 417 00:25:17,390 --> 00:25:20,320 To nebude vedieť, čo robiť s tým. To chce dáta v určitom formáte. 418 00:25:20,320 --> 00:25:23,230 Všetko čo robíme tu je to, že ho presne, že formát, 419 00:25:23,230 --> 00:25:26,520 ktorý je rok hodnota a potom spojovník, mesiac hodnota, 420 00:25:26,520 --> 00:25:29,420 ďalšie pomlčka a hodnotu dáta. 421 00:25:29,420 --> 00:25:34,910 A tiež, že chceme, aby údaje boli výstup JSON. 422 00:25:34,910 --> 00:25:37,560 >> Teraz robíme túto žiadosť AJAX, a ako som už spomenul, 423 00:25:37,560 --> 00:25:41,680 jQuery má túto super užitočnú AJAX funkciu, ktorá všetko, čo potrebujete urobiť, je určiť 424 00:25:41,680 --> 00:25:45,780 niekoľko parametrov tu dole, a to sa vám späť presne to, čo chcete. 425 00:25:45,780 --> 00:25:50,490 Hovoríme to, že URL chceme, aby to ísť je to CS50 Jedlo API, 426 00:25:50,490 --> 00:25:52,270 ktoré sme dostali od špec. 427 00:25:52,270 --> 00:25:56,730 Hovoríme, že chceme, aby dáta v JSON, a že 428 00:25:56,730 --> 00:25:59,490 budeme ho tieto dáta, ktoré sme definovali tu. 429 00:25:59,490 --> 00:26:02,670 To je deň, kedy chceme, aby potraviny pre. 430 00:26:02,670 --> 00:26:07,790 A potom všetko, čo musíte urobiť, je definovať nejaký úspech funkcií, 431 00:26:07,790 --> 00:26:11,980 čo je v podstate to, čo sa stane, keď API vráti, aby údaje. 432 00:26:11,980 --> 00:26:15,490 Inými slovami, sme baliť až všetky parametre, ktoré chceme, 433 00:26:15,490 --> 00:26:20,530 čo je v tomto prípade je deň, ktorý chceme, a skutočnosť, že chceme v JSON, 434 00:26:20,530 --> 00:26:23,840 a poslali sme ho na API, takže teraz API hovorí, jo, 435 00:26:23,840 --> 00:26:26,350 Tu sú vaše dáta, som späť pre teba. 436 00:26:26,350 --> 00:26:29,930 Máme úspech funkciu, čo znamená, vzhľadom, že API 437 00:26:29,930 --> 00:26:32,230 úspešne vráti niektoré údaje, čo budeme robiť s tým? 438 00:26:32,230 --> 00:26:35,980 >> A ukázalo sa, že všetko, čo urobiť, je zavolať táto aktualizácia funkcie menu 439 00:26:35,980 --> 00:26:42,680 s tým, čo API sa vrátil, tak môžeme hľadať, že 440 00:26:42,680 --> 00:26:47,970 a uvidíte, že všetko robíme používa veľa nových syntaxe tu 441 00:26:47,970 --> 00:26:52,220 aktualizovať HTML a vložte týchto nových údajov. 442 00:26:52,220 --> 00:26:56,580 Čo to umožňuje je, že sme tieto šípky na oboch stranách, a môžeme kliknite na tlačidlo, 443 00:26:56,580 --> 00:27:01,060 a teraz sa pozeráme na dáta pre ďalší deň a opäť ďalší deň, 444 00:27:01,060 --> 00:27:04,820 a zakaždým, keď je to aktualizácia, že hodnoty dátumu a dopytovania API, 445 00:27:04,820 --> 00:27:07,510 dostať späť niektoré údaje a uvedenie do areálu. 446 00:27:07,510 --> 00:27:10,590 Opäť, môžete vidieť, super, super užitočné. 447 00:27:10,590 --> 00:27:14,410 Táto aplikácia Trvalo mi niekoľko hodín hack spoločne, 448 00:27:14,410 --> 00:27:20,140 a mám trochu viac skúseností, samozrejme, ale na CS50 záverečný projekt 449 00:27:20,140 --> 00:27:22,870 môže vyzerať veľmi podobne ako to. 450 00:27:22,870 --> 00:27:29,540 >> API sú super výkonný pre množstvo úsilia, ktoré oni vezmú. 451 00:27:29,540 --> 00:27:32,800 Posledná vec, ktorú som idem cez je niekoľko ďalších API všeobecne. 452 00:27:32,800 --> 00:27:35,480 Nebudem sa až do nich, pokiaľ ide o to, čo robia konkrétne, 453 00:27:35,480 --> 00:27:38,740 ale dám vám predstavu o tom, čo je tam vonku. 454 00:27:38,740 --> 00:27:42,700 2 naozaj užitočné tie, ak máte záujem o analýzu dát alebo vizualizácia 455 00:27:42,700 --> 00:27:45,960 alebo niečo podobné, sú Freebase a Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-pravdepodobne všetci viete-je bezplatná on-line encyklopédia, 457 00:27:49,800 --> 00:27:53,230 a to skutočne má API, takže ak chcete, napríklad, 458 00:27:53,230 --> 00:27:56,250 získať všetky texty a články pre chobotnice 459 00:27:56,250 --> 00:27:58,030 môžete veľmi ľahko urobiť. 460 00:27:58,030 --> 00:28:02,300 Len povedať, hej, Wikipedia API, rád by som dáta vrátená ako to, 461 00:28:02,300 --> 00:28:07,010 a rád by som ho v tomto formáte, a článok by som rád, je chobotnice, 462 00:28:07,010 --> 00:28:09,820 a veľmi rýchlo to bude vám späť tieto informácie. 463 00:28:09,820 --> 00:28:12,230 To môže byť veľmi užitočné, ak chcete, aby sa nejaký webe 464 00:28:12,230 --> 00:28:16,200 že je to lepšie prehliadač pre Wikipédiu, alebo niečo také. 465 00:28:16,200 --> 00:28:21,350 >> Freebase je trochu podobná, aj keď je to trochu ťažšie, pokiaľ ide o API. 466 00:28:21,350 --> 00:28:24,390 Freebase je ako Wikipédie v tom, že je to on-line encyklopédia 467 00:28:24,390 --> 00:28:29,050 ktorý obsahuje veľa a veľa rôznych údajov o všetkých možných tém, 468 00:28:29,050 --> 00:28:33,150 ale to sú uložené v relačnej databáze, ktorá je mierne odlišná od Wikipédie. 469 00:28:33,150 --> 00:28:36,410 Wikipedia má svoje články a články spojené s inými výrobkami, 470 00:28:36,410 --> 00:28:38,860 ale pre najviac sa rozdeliť, ak chcete dáta pre chobotnice, 471 00:28:38,860 --> 00:28:41,990 idete na chobotnice článku, sa tieto dáta, a máte veľa textu 472 00:28:41,990 --> 00:28:43,830 o chobotníc, tak to je skvelé. 473 00:28:43,830 --> 00:28:46,870 Freebase pracuje v mierne komplikovanejšie spôsobom v tom, že 474 00:28:46,870 --> 00:28:48,930 všetko sa vzťahuje k sebe navzájom. 475 00:28:48,930 --> 00:28:52,620 Inými slovami, ak budeme hľadať chobotnice 476 00:28:52,620 --> 00:28:54,940 potom má veľa kategórií s ňou spojená. 477 00:28:54,940 --> 00:28:57,920 >> Napríklad, je to zviera, žije pod vodou, 478 00:28:57,920 --> 00:28:59,710 má určitú telesnú teplotu. 479 00:28:59,710 --> 00:29:01,210 Neviem. 480 00:29:01,210 --> 00:29:04,230 A všetky z týchto kategórií sú odkazy na ďalšie miesta, kde si môžete ísť 481 00:29:04,230 --> 00:29:06,640 vidieť veci s tým rovnakej kategórie. 482 00:29:06,640 --> 00:29:13,450 Inými slovami, chobotnice súbor dát obsahuje odkaz na súbor dát pre všetky zvieratá, 483 00:29:13,450 --> 00:29:16,790 a že by ma nechal pohybovať v databáze naozaj rýchlo. 484 00:29:16,790 --> 00:29:21,740 To môže byť veľmi užitočné, ak robíte niečo ako porovnanie. 485 00:29:21,740 --> 00:29:24,490 Inými slovami, rovnako istá vec, ktorú chcete vidieť 486 00:29:24,490 --> 00:29:27,890 čo iného to súvisí a vidieť, čo ešte to nie je vhodný. 487 00:29:27,890 --> 00:29:30,700 Takéto veci. To môže byť užitočné v niekoľkých smeroch. 488 00:29:30,700 --> 00:29:34,250 Ak hľadáte väčšie výzvou a byť schopní robiť nejaké zložitejšie veci 489 00:29:34,250 --> 00:29:38,740 Ja by som zvážiť pozrieť na Freebase API. 490 00:29:38,740 --> 00:29:44,670 Ale väčšinou, Wikipedia je veľmi jednoduché miesto, kam ísť tak ďaleko, ako dostať informácie. 491 00:29:44,670 --> 00:29:48,340 Ďalším miestom, ktoré budem je pozrieť sa na Last.fm, a ja som vlastne ísť na webe 492 00:29:48,340 --> 00:29:53,800 v prípade, niektorí ľudia nie sú oboznámení, ale Last.fm je v podstate hudobné 493 00:29:53,800 --> 00:29:57,220 chute a odporúčania webové stránky. 494 00:29:57,220 --> 00:29:59,000 Môžete vytvoriť účet. 495 00:29:59,000 --> 00:30:04,250 Môžete začať nahrávanie hudby z hudobného prehrávača 496 00:30:04,250 --> 00:30:08,020 na webových stránkach, a v podstate začne dávať vám hudobné odporúčania 497 00:30:08,020 --> 00:30:10,030 základe toho, čo počúvať. 498 00:30:10,030 --> 00:30:14,270 >> Napríklad, keď idete do svojho profilu stránky toto je moja- 499 00:30:14,270 --> 00:30:18,180 môžete vidieť, že máte zoznam naposledy počúval skladby. 500 00:30:18,180 --> 00:30:22,550 Môžete vidieť celkovej obľúbené umelca, všetky tieto veci, 501 00:30:22,550 --> 00:30:25,280 a znova, je tu veľká API za Last.fm, 502 00:30:25,280 --> 00:30:29,360  a môžete ho použiť na to veľa a veľa naozaj skvelých vecí. 503 00:30:29,360 --> 00:30:38,870 Napríklad, pôjdem za kamarátom, ktorý má túto stránku Last.fm Nástroje webové stránky. 504 00:30:38,870 --> 00:30:42,380 To je vlastne ďalšia platforma, ktorá je postavená na Last.fm API, 505 00:30:42,380 --> 00:30:45,420 a to sa množstvo celkom zaujímavé veci. 506 00:30:45,420 --> 00:30:50,260 Ak som sa prihlásiť do môjho užívateľského mena, napríklad, 507 00:30:50,260 --> 00:30:53,110 Môžem požiadať ju vytvoriť tag cloud, napríklad, 508 00:30:53,110 --> 00:30:56,480 a čo že sa to urobiť, je dať mi obraz 509 00:30:56,480 --> 00:30:59,850 všetky rôzne žánre a také veci, že som chcel počúvať. 510 00:30:59,850 --> 00:31:01,410 Ako sa to robí toto? 511 00:31:01,410 --> 00:31:05,670 Veľmi podstate to hovorí na Last.fm API tu je to užívateľ. 512 00:31:05,670 --> 00:31:10,710 Chcel by som vedieť, žáner každej piesne, ktoré som kedy počúval, 513 00:31:10,710 --> 00:31:15,130 a môžete to urobiť, že tým, že pomerne jednoduchý AJAX volania na Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Dostanete späť veľký zoznam, a potom samozrejme niektoré ďalšie veci sa vykonáva 515 00:31:18,990 --> 00:31:22,280 premeniť slovo mrak, ale môžete vidieť celkovú 516 00:31:22,280 --> 00:31:25,850 je to veľmi ľahký prístup a veľmi jednoduché použitie. 517 00:31:25,850 --> 00:31:30,750 Naozaj pekný pre rad vecí. 518 00:31:30,750 --> 00:31:35,940 >> Myslím, že je to asi všetko, čo poviem celkovo. 519 00:31:35,940 --> 00:31:39,040 Jedna posledná vec, ktorú spomeniem o API všeobecne je to, že 520 00:31:39,040 --> 00:31:41,840 budete niekedy dostanete do niečoho s názvom Obmedzenie rýchlosti, 521 00:31:41,840 --> 00:31:44,940 a myšlienka miera obmedzenia je nechcete zneužívať API. 522 00:31:44,940 --> 00:31:48,130 Inými slovami, je to naozaj pekné, že mnoho z týchto stránok majú API 523 00:31:48,130 --> 00:31:51,070 že môžete ísť do a používať zadarmo. 524 00:31:51,070 --> 00:31:54,460 Avšak, ak ste zarábali milióny alebo miliardy žiadostí denne, 525 00:31:54,460 --> 00:31:57,610 Napríklad, ak ste uviazol v nekonečnej slučke, ktorá je nekonečne dopytovania 526 00:31:57,610 --> 00:32:00,680 nejaký API a dostať späť obrovské množstvo dát, 527 00:32:00,680 --> 00:32:04,570 samozrejme, že to nie je dobré, takže to, čo veľa API urobiť, je sa táto miera obmedzenia funkcie 528 00:32:04,570 --> 00:32:09,970 ktoré hovorí, že je možné len so 1000 požiadaviek za deň na IP adresu, alebo niečo také. 529 00:32:09,970 --> 00:32:12,540 A ak robíte veľa testovania a také veci, 530 00:32:12,540 --> 00:32:14,890 budete niekedy beh do toho, a zrazu sa to vypne ťa 531 00:32:14,890 --> 00:32:18,280 a povedať nie, nedám vám žiadne ďalšie údaje. 532 00:32:18,280 --> 00:32:20,000 >> Čo chcete urobiť, je hrať podľa pravidiel. 533 00:32:20,000 --> 00:32:22,950 Chcete, aby sa ubezpečil, že budete čítať API spec opatrne. 534 00:32:22,950 --> 00:32:26,330 Ak má určité pravidlá k nemu pripojené, ako vás môže vykonať iba X otázok denne 535 00:32:26,330 --> 00:32:30,000 alebo môžete pristupovať iba časť databázy určitý počet čias 536 00:32:30,000 --> 00:32:32,900 alebo niečo podobné, že chcete, aby sa ubezpečil, že sa budete držať. 537 00:32:32,900 --> 00:32:38,360 Tak dlho, ako budete hrať v rámci týchto pravidiel, budete pravdepodobne mať naozaj pekný čas pomocou API. 538 00:32:38,360 --> 00:32:42,030 Vaše celkové stánok s jedlom, je API sú naozaj užitočné. 539 00:32:42,030 --> 00:32:45,610 >> Tam je API pre takmer všetky veľké webové služby vonku. 540 00:32:45,610 --> 00:32:50,700 Docela veľa akákoľvek časť Google Tools Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, všetky tie veci majú API. 542 00:32:54,390 --> 00:32:58,280 Môžete ich použiť ako získať dáta zo servera a odosielať dáta na server. 543 00:32:58,280 --> 00:33:00,870 Inými slovami, ak ste chceli, aby sa kalendára aplikácie, ktoré je možné aktualizovať 544 00:33:00,870 --> 00:33:04,190 niečí Google Calendar, je tu API pre to. 545 00:33:04,190 --> 00:33:07,810 Ak chcete, aby sa niečo, čo sa deje, aby vám povedal, kde 546 00:33:07,810 --> 00:33:12,530 umiestnenie určitej adresy ich môžete použiť Google Maps API pre to. 547 00:33:12,530 --> 00:33:15,860 API sú fantasticky užitočné, a sú všade. 548 00:33:15,860 --> 00:33:18,700 Ak máte záujem o nejaké myšlienky, 549 00:33:18,700 --> 00:33:22,170 je to asi súvisiace API, ktoré môžete použiť na získanie veľké množstvo dát 550 00:33:22,170 --> 00:33:25,060 veľmi rýchlo a veľmi jednoducho. 551 00:33:25,060 --> 00:33:28,140 >> Ak stále hľadáte projektu, alebo ak si len chcete pohrať 552 00:33:28,140 --> 00:33:31,820 s niečím všeobecne, API sú rozhodne stojí za to. 553 00:33:31,820 --> 00:33:37,200 Vďaka, a ja som rád zodpovie všetky otázky, ktoré ste môže mať. 554 00:33:37,200 --> 00:33:44,900 Dobre, vďaka moc. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]