1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminář] [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šichni, já jsem Billy, a dnes budu hovořit o API, 5 00:00:12,100 --> 00:00:15,220 nebo rozhraní pro programování aplikací, 6 00:00:15,220 --> 00:00:20,040 zejména v souvislosti s CS50 závěrečných prací a podobné věci. 7 00:00:20,040 --> 00:00:22,490 Obecně to, co je API? 8 00:00:22,490 --> 00:00:25,530 Ve velmi širokém smyslu, je to něco jako prostředníka, který umožňuje 2 kusy 9 00:00:25,530 --> 00:00:28,610 software pro komunikaci mezi sebou navzájem. 10 00:00:28,610 --> 00:00:32,530 To je druh velmi širokou definici, a není to relevantní pro to, co se díváme na. 11 00:00:32,530 --> 00:00:35,450 To, co opravdu chci, je nějaký druh užitečného střední cestě 12 00:00:35,450 --> 00:00:40,570 komunikovat s nějakým databáze někde. 13 00:00:40,570 --> 00:00:43,310 >> Zde je graf, a v podstatě myšlenka je, že 14 00:00:43,310 --> 00:00:46,790 jsme žádost, a chceme se dostat data z databáze, 15 00:00:46,790 --> 00:00:49,570 ale nechceme vyhledávat v databázi přímo. 16 00:00:49,570 --> 00:00:52,710 Místo toho chceme jít přes tento druh středního člověka, API. 17 00:00:52,710 --> 00:00:55,440 Myšlenka, že jsou čísla 2 a 3 na grafu 18 00:00:55,440 --> 00:00:57,750 jsou oba bude velmi komplikovaný a chaotický. 19 00:00:57,750 --> 00:00:59,960 Jinými slovy, když API je dotazování databáze, 20 00:00:59,960 --> 00:01:03,300 je to asi bude pomocí SQL tabulky a všechny uvedené druhu věci, 21 00:01:03,300 --> 00:01:05,489 a my jsme se naučili něco o tom v CS50, ale celkově, 22 00:01:05,489 --> 00:01:07,590 jste si všimli, že je to trochu bolesti. 23 00:01:07,590 --> 00:01:10,590 To dostane velmi, velmi složité a komplikované, zvláště když děláš 24 00:01:10,590 --> 00:01:12,530 složité dotazy a takové věci. 25 00:01:12,530 --> 00:01:15,960 >> To, co opravdu chci, je nějaký užitečný a jednoduchý způsob, jak 26 00:01:15,960 --> 00:01:19,780 získat tato data, a to je myšlenka čísla 1 a 4 na grafu. 27 00:01:19,780 --> 00:01:23,600 Jinými slovy, chceme opravdu jednoduchý způsob, jak říct API, co si pro nás 28 00:01:23,600 --> 00:01:27,760 a opravdu jednoduchý způsob, jak se dostat, že data zpět. 29 00:01:27,760 --> 00:01:33,020 Je tam jeden hlavní způsob, jak že uvedené údaje jsou obvykle odeslali a přijali, 30 00:01:33,020 --> 00:01:36,490 která je JSON, nebo JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 To může lišit trochu, pokud, jak jste poslat požadavek na API. 32 00:01:40,370 --> 00:01:43,210 Jinými slovy, pokud chcete nějaké určité množství dat, 33 00:01:43,210 --> 00:01:46,670 Jak řeknete API dostat, že parametry se mohou lišit trochu. 34 00:01:46,670 --> 00:01:49,210 Obvykle to zahrnuje výrobu nějakou síťového požadavku. 35 00:01:49,210 --> 00:01:53,130 Jinými slovy, přístup k nějaké URL, která to řekne API 36 00:01:53,130 --> 00:01:56,190 přesně to, co chcete, ale data jsou téměř vždy vráceno zpět, 37 00:01:56,190 --> 00:01:59,530 Jinými slovy, číslo 4 v JSON. 38 00:01:59,530 --> 00:02:01,030 >> Co je to JSON přesně? 39 00:02:01,030 --> 00:02:03,030 Jak už jsem řekl, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Je to v podstatě univerzální standard pro vysílání a příjem dat. 41 00:02:07,090 --> 00:02:11,410 Myšlenka je, že máte tyto 3 kategorie věcí. 42 00:02:11,410 --> 00:02:13,540 Máte pole, hashmaps, a primitiva. 43 00:02:13,540 --> 00:02:16,580 Pole a hashmaps jste se dívali na trochu v CS50, 44 00:02:16,580 --> 00:02:19,870 ale vy jste nějak dostal velmi přísnou smysl toho, co oni jsou. 45 00:02:19,870 --> 00:02:22,780 Jinými slovy, s poli víte, že to typ vázaný, 46 00:02:22,780 --> 00:02:26,560 takže máte jen jeden druh typu, který jde v celém poli. 47 00:02:26,560 --> 00:02:29,310 JSON je mnohem shovívavější takové věci. 48 00:02:29,310 --> 00:02:33,590 V podstatě myšlenka je si postavit tento objekt, 49 00:02:33,590 --> 00:02:36,270 , které mohou být složeny z některé z těchto 3 věcí 50 00:02:36,270 --> 00:02:39,470 a může být složena z více ty z nich, a mohou být vnořené. 51 00:02:39,470 --> 00:02:42,110 >> Tady je jakýsi příklad JSON, 52 00:02:42,110 --> 00:02:47,910 která je se tyto Složené závorky zde představují své HashMap 53 00:02:47,910 --> 00:02:51,400 a HashMap je v podstatě mapování z nějaké klíče 54 00:02:51,400 --> 00:02:53,340 k nějakému hodnoty. 55 00:02:53,340 --> 00:02:56,440 Budete vidět, že máme vlastnosti klíč, 56 00:02:56,440 --> 00:02:59,600 a že je mapování na pole, které je to celé. 57 00:02:59,600 --> 00:03:04,120 Vidíme další prvek HashMap, který je tento klíč isAwesome, 58 00:03:04,120 --> 00:03:07,370 které se mapuje na primitivní hodnotu true, jinými slovy, boolean. 59 00:03:07,370 --> 00:03:09,420 Primitives mohou být řetězce. Mohou být celá čísla. 60 00:03:09,420 --> 00:03:11,960 Mohou být bools, něco takového. 61 00:03:11,960 --> 00:03:18,410 A vidíte obsah tohoto pole, které vlastnosti bodů má 2 řetězce v něm, 62 00:03:18,410 --> 00:03:20,050 self-podobný a nádherné. 63 00:03:20,050 --> 00:03:27,410 Ti jsou 2 vlastnosti JSON, a vidíme, že JSON je úžasné. 64 00:03:27,410 --> 00:03:30,060 Chcete-li se podívat na to trochu podrobněji budu konstruovat 65 00:03:30,060 --> 00:03:32,870 složitější příklad JSON zde. 66 00:03:32,870 --> 00:03:37,000 >> Začněme pole, například, jen prázdné pole. 67 00:03:37,000 --> 00:03:39,180 Ale to je trochu nudné, takže budeme se naplní trochu, 68 00:03:39,180 --> 00:03:43,420 a jak jsem řekl, pole v JSON jsou typu meze, 69 00:03:43,420 --> 00:03:46,400 takže se může také mít řetězec zde, což je hi, 70 00:03:46,400 --> 00:03:49,330 a to je další prvek tohoto pole. 71 00:03:49,330 --> 00:03:53,450 A podobně bychom mohli přidat hashmapping sem, který bude mít několik mapování. 72 00:03:53,450 --> 00:04:00,470 Bude to mít mapování z názvu na řetězec Billy. 73 00:04:00,470 --> 00:04:04,590 Máme mapování z názvu Billymu, a máme mapování 74 00:04:04,590 --> 00:04:10,860 oblíbená barva na modrou. 75 00:04:10,860 --> 00:04:12,700 To je v podstatě dobrý příklad JSON. 76 00:04:12,700 --> 00:04:18,160 Je to druh dostane do-jejda, potřebují čárku tam, všude různých částí. 77 00:04:18,160 --> 00:04:21,140 Opět, to není typ vázány vůbec, takže můžete mít nějaký druh typy 78 00:04:21,140 --> 00:04:24,710 uvnitř, co chcete, a myšlenka je, že je to self-podobný. 79 00:04:24,710 --> 00:04:28,830 Jinými slovy, to tady je objekt JSON, jak je to celé, 80 00:04:28,830 --> 00:04:33,200 jako je právě tento, takže můžete mít primitivní být objekt, 81 00:04:33,200 --> 00:04:35,680 pole je objekt nebo HashMap být objekt. 82 00:04:35,680 --> 00:04:40,270 >> Jak můžete trochu vidět, JSON je opravdu, ale opravdu užitečné v tom, že je to tak univerzální. 83 00:04:40,270 --> 00:04:45,860 Můžete mít všechny možné údaje, které si můžete otěhotnět uložené v JSON. 84 00:04:45,860 --> 00:04:47,900 To dělá to opravdu krásný jazyk pro použití s ​​API 85 00:04:47,900 --> 00:04:50,770 protože to skoro znamená, že bez ohledu na to, co data, která chcete 86 00:04:50,770 --> 00:04:54,270 tam to bude nějaký způsob, jak se dostat zpět do formátu JSON. 87 00:04:54,270 --> 00:04:58,600 Několik vlastnosti, které dělají JSON zvláště vhodné pro tento druh věci. 88 00:04:58,600 --> 00:05:02,270 Jak můžete vidět, ve srovnání s mnoha věcí, které jste pracovali s ve CS50 89 00:05:02,270 --> 00:05:06,040 je to poměrně velmi dobře čitelný a také velmi snadné psát. 90 00:05:06,040 --> 00:05:09,700 Můžete odrážka to, pokud chcete, jako bych dělal v té příkladu, 91 00:05:09,700 --> 00:05:12,990 , která vám dává pěkný, pěkný verzi, kterou můžete vidět opravdu dobře. 92 00:05:12,990 --> 00:05:17,150 Ale navíc, je to také snadné číst a psát na počítači. 93 00:05:17,150 --> 00:05:19,870 Jinými slovy, je to snadné analyzovat a snadno zakódovat, 94 00:05:19,870 --> 00:05:23,820 což znamená, že je to docela rychle, pokud jde o čtení dat se týká, 95 00:05:23,820 --> 00:05:26,460 a JSON mohou být generovány velmi rychle. 96 00:05:26,460 --> 00:05:30,300 >> Je to také velmi snadný přístup různých částí JSON a podobné věci. 97 00:05:30,300 --> 00:05:33,320 To je hezké, a dále skutečnost, že je to self-podobný, 98 00:05:33,320 --> 00:05:36,090 jinými slovy, skutečnost, že můžete mít JSON ve formátu JSON ve formátu JSON 99 00:05:36,090 --> 00:05:40,040 je opravdu pěkný pro ukládání dat. 100 00:05:40,040 --> 00:05:45,490 Další část, která je obecně velmi užitečné při práci s API je jQuery. 101 00:05:45,490 --> 00:05:49,290 Jste se naučili trochu JavaScriptu, který je příjemný způsob, jak 102 00:05:49,290 --> 00:05:53,710 manipulovat HTML a CSS v rámci webové stránky. 103 00:05:53,710 --> 00:05:57,190 Ale to může být trochu bolest kódu v prostém JavaScript, 104 00:05:57,190 --> 00:05:59,810 především proto, že JavaScript je opravdu podrobný jazyk. 105 00:05:59,810 --> 00:06:03,020 Musíte se naučit spoustu syntaxe, a jen dělat velmi jednoduché věci 106 00:06:03,020 --> 00:06:07,590 to trvá hodně kódu, takže jQuery je knihovna pro JavaScript. 107 00:06:07,590 --> 00:06:09,800 Jinými slovy, je to JavaScript soubor, který můžete načíst 108 00:06:09,800 --> 00:06:12,730 a pak použít jQuery funkce dělat určité věci. 109 00:06:12,730 --> 00:06:15,670 A jQuery podstatě dělá váš život mnohem jednodušší. 110 00:06:15,670 --> 00:06:20,390 To zjednodušuje to, co by se stovky řádků v JavaScriptu do několika řádků v jQuery. 111 00:06:20,390 --> 00:06:24,430 >> To je zvláště užitečné, pokud používáte rozhraní API, protože obecně 112 00:06:24,430 --> 00:06:27,600 jak budete přistupovat k rozhraní API je tím, že AJAX požadavků, 113 00:06:27,600 --> 00:06:30,130 a věřím, že David je uvedeno v přednášce, že AJAX požadavky 114 00:06:30,130 --> 00:06:33,120 jsou obecně, když děláte sítě požadavek na nějaké serveru 115 00:06:33,120 --> 00:06:37,760 a dostat zpět nějaké dat a aktualizaci stránky okamžitě. 116 00:06:37,760 --> 00:06:41,840 Vzhledem k tomu, v prostém JavaScriptem, který by se bláznivé čísla linek 117 00:06:41,840 --> 00:06:44,620 ověřit všechny hlavičky a dělat všechno tento druh věcí, 118 00:06:44,620 --> 00:06:46,810 jQuery má opravdu jednoduchou funkci nazvanou AJAX, 119 00:06:46,810 --> 00:06:51,760 a vše, co musíte udělat, AJAX, je dát parametry, které chcete dát API, 120 00:06:51,760 --> 00:06:56,830 umístění API a jakékoli další druh voleb, které chcete konfigurovat. 121 00:06:56,830 --> 00:07:02,480 Je to opravdu, opravdu pěkné a velmi užitečné pro takové věci. 122 00:07:02,480 --> 00:07:06,970 To je vše, co potřebujeme začít se naše ruce špinavé API. 123 00:07:06,970 --> 00:07:10,220 >> Jdu vychovat několik příkladů a prozkoumat jejich různé vlastnosti 124 00:07:10,220 --> 00:07:13,150 a proč jsou užitečné pro různé druhy věcí. 125 00:07:13,150 --> 00:07:15,570 První věc, kterou jsem vám vlastně ukážu, je něco, co jsem pracoval na 126 00:07:15,570 --> 00:07:18,310 V mé výzkumné laboratoři, která je Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 a v podstatě myšlenka Viewer Ngram je můžete vyhledávat nějaké slovo 128 00:07:23,270 --> 00:07:28,840 nebo fráze a uvidíte, jak často se to objevilo v určitém souboru textu v průběhu času. 129 00:07:28,840 --> 00:07:33,160 Tento příklad je zde tato data sada dětí 130 00:07:33,160 --> 00:07:36,480 kteří se narodili v New Yorku v letech 1920 a 2000. 131 00:07:36,480 --> 00:07:40,090 Můžeme hledat, například u názvu Jennifer, 132 00:07:40,090 --> 00:07:44,400 a vidíme, že pre-1960 opravdu to nebyl použit tak moc, 133 00:07:44,400 --> 00:07:48,900 a pak jak jsme se dostali do dalších let je to stále více používá. 134 00:07:48,900 --> 00:07:53,680 Můžeme také provést srovnání, takže když porovnáme Jennifer, například, Thomas, 135 00:07:53,680 --> 00:07:56,520 můžeme vidět Thomas byl docela převládající skrz historii, 136 00:07:56,520 --> 00:07:58,780 vzhledem k tomu, Jennifer je novější název. 137 00:07:58,780 --> 00:08:00,590 Můžeme to udělat takovou věc. 138 00:08:00,590 --> 00:08:02,460 >> Jak se tato aplikace funguje? 139 00:08:02,460 --> 00:08:06,030 V podstatě to funguje přes API. 140 00:08:06,030 --> 00:08:08,660 Jinými slovy, mají určité parametry zde. 141 00:08:08,660 --> 00:08:11,360 Máme parametry toho, co jsme vlastně hledá, 142 00:08:11,360 --> 00:08:13,720 které jsou tato jména, a pak máme několik dalších vlastností, 143 00:08:13,720 --> 00:08:16,570 jako osy Y a osou X. 144 00:08:16,570 --> 00:08:18,440 Můžete vidět, že mají několik různých možností, pokud jde o 145 00:08:18,440 --> 00:08:20,860 časové rozlišení používat a takové věci. 146 00:08:20,860 --> 00:08:26,700 Máme tyto možnosti, pokud jde o to, co vlastně chceme dat z databáze, 147 00:08:26,700 --> 00:08:29,400 a chceme se dostat, že data zpět nějakým užitečným způsobem. 148 00:08:29,400 --> 00:08:34,020 Obvykle, když jsme byli dotazování databáze přímo, že by nějak být bolest dělat 149 00:08:34,020 --> 00:08:38,970 protože všeho to údaje o dětská jména žije v nějakém databázi někde, 150 00:08:38,970 --> 00:08:42,789 a to by bylo opravdu složité mít na dotaz ručně 151 00:08:42,789 --> 00:08:45,830 a rozhodnout, co přesně údaje k návratu. 152 00:08:45,830 --> 00:08:49,300 Jinými slovy, jen o Jennifer a Thomas v tomto případě, 153 00:08:49,300 --> 00:08:53,410 a my jsme jen o na určité ose a všechny tohoto druhu věcí. 154 00:08:53,410 --> 00:08:55,720 >> Jak se dostaneme kolem tohoto? 155 00:08:55,720 --> 00:09:01,200 Kopat do tohoto API trochu víc já vám ukážu další příklad této platformy 156 00:09:01,200 --> 00:09:04,490 který používá mírně odlišný soubor dat. 157 00:09:04,490 --> 00:09:09,950 Tato datová sada, místo toho, aby dětská jména, je ve skutečnosti jen celý 158 00:09:09,950 --> 00:09:12,460 tisk publikace databáze Open Library, 159 00:09:12,460 --> 00:09:18,410 která je obrovská zdrojem texty zveřejněné během posledních 100 let, nebo tak. 160 00:09:18,410 --> 00:09:23,540 Myšlenka je, že jsme tuto compository o miliony a miliony textu, 161 00:09:23,540 --> 00:09:27,420 které můžeme nyní hledat různých slov a frází v. 162 00:09:27,420 --> 00:09:30,840 Zde je příklad, který se liší poněkud odlišně od předchozího příkladu 163 00:09:30,840 --> 00:09:33,350 Ukázal jsem vám, což je máme tyto 3 vyhledávacích dotazů, 164 00:09:33,350 --> 00:09:36,290 válka, válka, a francouzské slovo pro válku, která je guerre. 165 00:09:36,290 --> 00:09:40,380 A my hledáme do 3 různých částí celkového databáze. 166 00:09:40,380 --> 00:09:45,080 Jinými slovy, v tomto prvním dotazu jsme pouze vyhledávání v USA, 167 00:09:45,080 --> 00:09:51,150 v druhém pouze ve Velké Británii, a třetí pouze z prací publikovaných ve Francii. 168 00:09:51,150 --> 00:09:53,120 Vidíme některé zajímavé vzory vznikají. 169 00:09:53,120 --> 00:09:58,180 Například, vidíme přímo tady, které- 170 00:09:58,180 --> 00:10:02,410 pardon, jsem zpackal ose trochu, ale můžete vidět přímo v tomto rozsahu zde 171 00:10:02,410 --> 00:10:05,730 kolem občanské války je tu velký bodec v americkém vydání 172 00:10:05,730 --> 00:10:08,340 ale není tak velký hrot v dalších dvou, a to proto, že zřejmě 173 00:10:08,340 --> 00:10:10,880 americká občanská válka se děje v tomto bodě. 174 00:10:10,880 --> 00:10:13,890 >> Můžeme vidět nějaké cool věci tam, 175 00:10:13,890 --> 00:10:17,070 ale to, co opravdu záleží je to, jak jsme se dostali na tato data. 176 00:10:17,070 --> 00:10:21,320 Vezmu tě do zákulisí v této aplikaci v trochu. 177 00:10:21,320 --> 00:10:24,540 Pěkný trik je, pokud pracujete s webem a druhu chcete vědět 178 00:10:24,540 --> 00:10:27,430 co se děje v zákulisí, můžete otevřít Nástroje pro vývojáře. 179 00:10:27,430 --> 00:10:30,200 Budu používat Chrome vývojářské nástroje, a aby se k těm 180 00:10:30,200 --> 00:10:35,160 můžete udělat kontrolu, posun, J, a že vás zavede do konzole JavaScript. 181 00:10:35,160 --> 00:10:37,420 Existuje několik karet zde. 182 00:10:37,420 --> 00:10:39,680 Mohou být všichni docela užitečné za jiných okolností, ale já se starám o síti 183 00:10:39,680 --> 00:10:44,150 Karta teď, a já skutečně obnovit se dostat, že práci. 184 00:10:44,150 --> 00:10:50,180 Oh, omlouvám se. 185 00:10:50,180 --> 00:10:52,320 Má rád, aby náhodný příklad. 186 00:10:52,320 --> 00:10:54,700 Dobře, budeme li použít tento příklad místo pak. 187 00:10:54,700 --> 00:11:01,330 >> Myšlenka je, že je to API tady, 188 00:11:01,330 --> 00:11:05,330 a můžete vidět přesně to, co API vrací. 189 00:11:05,330 --> 00:11:10,220 To je to, co aplikace se vrací z API, co poslal tuto žádost. 190 00:11:10,220 --> 00:11:13,680 Dovolte mi, abych přiblížit trochu, 191 00:11:13,680 --> 00:11:18,340 a my můžeme v podstatě vidět, že je to jen řada klíčových dvojic hodnot v JSON. 192 00:11:18,340 --> 00:11:23,220 Jinými slovy, máme tuto HashMap tady to je mapování hodnot. 193 00:11:23,220 --> 00:11:26,440 Jinými slovy, je to mapování let na hodnoty. 194 00:11:26,440 --> 00:11:32,600 V roce 1765, co slovo, které původně hledali se používá 90 krát 195 00:11:32,600 --> 00:11:35,810 z 1000000, takže jsme se vrátit tento výsledek. 196 00:11:35,810 --> 00:11:40,280 Není to přesně to, JSON, protože máme tento malý výsledek záhlaví tady, 197 00:11:40,280 --> 00:11:45,630 ale všimněte si, že celý tento objekt je zde jen velikánský JSON klubíčko. 198 00:11:45,630 --> 00:11:51,070 Máme řadu zde, který obsahuje celou tuto prvek, 199 00:11:51,070 --> 00:11:55,590 a můžete vidět, že celý element končí tam, a pak máme další velký prvek 200 00:11:55,590 --> 00:11:59,430 že jde celou cestu až do konce, a že zde končí. 201 00:11:59,430 --> 00:12:02,200 Máme opravdu velkou pole s 2 objekty v něm, 202 00:12:02,200 --> 00:12:04,630 a každý z těchto předmětů je HashMap. 203 00:12:04,630 --> 00:12:07,340 Můžete vidět v rámci každé z těchto hashmaps máme mapování 204 00:12:07,340 --> 00:12:12,700 tohoto indexu hodnotu 0 a tato hodnota je na jinou HashMap, 205 00:12:12,700 --> 00:12:18,360 která je opět zmapování hodnot osa X na osu Y hodnoty. 206 00:12:18,360 --> 00:12:20,970 >> Můžete vidět JSON je trochu trochu složitější, ale celkově, 207 00:12:20,970 --> 00:12:24,190 je to vlastně velmi užitečné, a to je velmi snadný přístup ve srovnání s 208 00:12:24,190 --> 00:12:27,390 další různé formy zápisu. 209 00:12:27,390 --> 00:12:30,550 Pokud jde o to, co jsme vlastně odesílání dat do API dostat, 210 00:12:30,550 --> 00:12:34,690 Já jdu do zadní konec trochu tady. 211 00:12:34,690 --> 00:12:39,850 To je velká JavaScript soubor, který je uspokojení všech interakcí webové aplikace, 212 00:12:39,850 --> 00:12:44,810 a tak jsme se nestarají o většinu, ale my starat o některé z nich. 213 00:12:44,810 --> 00:12:47,410 Například, staráme se o tomto buildQuery funkci, 214 00:12:47,410 --> 00:12:50,670 a myšlenka této funkce je v podstatě to vypadá po stránce, 215 00:12:50,670 --> 00:12:53,750 zjišťuje, co chce uživatel na dotaz, jinými slovy, 216 00:12:53,750 --> 00:12:57,090 kontrolu těchto políček, kde jsem Input své vyhledávací termíny, 217 00:12:57,090 --> 00:13:01,380 kontrola odlišný Y a osa X hodnoty, které jste si vybrali a všichni takové věci, 218 00:13:01,380 --> 00:13:06,650 a bude to vyplivne tuto dotazu hodnotu, která pak mohu poslat pryč do API. 219 00:13:06,650 --> 00:13:09,180 >> Tento vypadá komplikovaně, a to je docela komplikované 220 00:13:09,180 --> 00:13:18,090 ale co budu dělat v tom, já už jsem dělal to, což je skvělé, 221 00:13:18,090 --> 00:13:21,640 je to, že budu se dostat konzole vytisknout přesně tuto hodnotu dotazu 222 00:13:21,640 --> 00:13:28,110 že to vyšle do rozhraní API. 223 00:13:28,110 --> 00:13:30,870 To je vlastně tady. Omlouváme se, ale dodá spoustu věcí. 224 00:13:30,870 --> 00:13:33,690 Ale to je to, co nás zajímá, je tento objekt přímo tady. 225 00:13:33,690 --> 00:13:35,300 To je dotaz objekt. 226 00:13:35,300 --> 00:13:40,670 Jinými slovy, je to přesně to, co webová aplikace odesílá do rozhraní API, 227 00:13:40,670 --> 00:13:45,730 a tak se pojďme podívat dovnitř trochu, a vidíme, máme pár hodnoty zde. 228 00:13:45,730 --> 00:13:48,710 Vidíme máme tento počet, typ, který je výskyty na milion slov, 229 00:13:48,710 --> 00:13:51,460 což je přesně to, co jsme si vybrali v ose Y tady. 230 00:13:51,460 --> 00:13:53,740 To je místo, kde to je pochází. 231 00:13:53,740 --> 00:13:58,010 Máme databáze hodnotu, což znamená, že tam je nějaký určité databáze 232 00:13:58,010 --> 00:14:01,610 že tyto údaje jsou bydlení, a chceme, aby přístup k datům konkrétně 233 00:14:01,610 --> 00:14:04,950 na rozdíl od těch zdrobnělin údajů, například. 234 00:14:04,950 --> 00:14:08,320 Potom je tu skupiny hodnotu, 235 00:14:08,320 --> 00:14:12,090 který říká, že chceme-li vyhledávat podle roku oproti 236 00:14:12,090 --> 00:14:16,030 jiný X hodnota osy. 237 00:14:16,030 --> 00:14:19,040 Pak máme metodu, která některé API bude dělat více věcí. 238 00:14:19,040 --> 00:14:22,360 Jinými slovy, může toto rozhraní API také vrátit jiné druhy dat, 239 00:14:22,360 --> 00:14:27,740 ale v tomto případě, chceme, aby mapování hodnoty osy X na ose y hodnoty. 240 00:14:27,740 --> 00:14:30,730 To je to, co to říká, aby dělal tam, 241 00:14:30,730 --> 00:14:35,020 a máme toto vyhledávání meze pole, které obsahuje 2 hodnoty. 242 00:14:35,020 --> 00:14:40,720 První z nich je to, co vidíme zde, což je všechny hodnoty 243 00:14:40,720 --> 00:14:43,020 obsažené v tomto prvním malé pole v horní části. 244 00:14:43,020 --> 00:14:47,570 >> Jinými slovy, chceme se podívat na slovo bitvě, a chceme filtrovat 245 00:14:47,570 --> 00:14:51,920 anglickými texty v americké literatuře. 246 00:14:51,920 --> 00:14:54,590 Máme v této zemi, která je USA. 247 00:14:54,590 --> 00:14:59,130 Máme jazyk, kterým je angličtina, takže máme všechny tyto různé části 248 00:14:59,130 --> 00:15:02,690 které jsou všechny říkat API přesně to, co chceme. 249 00:15:02,690 --> 00:15:04,940 Nevíme, jaké údaje, které jsme se vrátili ještě, 250 00:15:04,940 --> 00:15:10,970 ale víme, že údaje bude trvat určitou formu. 251 00:15:10,970 --> 00:15:13,650 Tento příklad je druh na složité straně, 252 00:15:13,650 --> 00:15:16,180 a vy byste nutně být pomocí rozhraní API tento komplex, 253 00:15:16,180 --> 00:15:20,600 ale to je ukázat vám rozsah a sílu toho, co API umí. 254 00:15:20,600 --> 00:15:24,980 Jinými slovy, pomocí poměrně jednoduchého dotazu systému jsme v podstatě mají vstupní pole 255 00:15:24,980 --> 00:15:29,490 s několika dalšími selektorů v různých místech. 256 00:15:29,490 --> 00:15:32,010 >> Dovolte mi, abych přibližování tady. 257 00:15:32,010 --> 00:15:37,720 Máme vstupní pole s několika různými metadat výběry, 258 00:15:37,720 --> 00:15:40,610 a máme osu Y a osa x výběry. 259 00:15:40,610 --> 00:15:42,830 Nemáme vlastně mají, že mnoho polí, 260 00:15:42,830 --> 00:15:46,210 a my můžeme vidět velmi snadno jsme schopni dotaz nějaký API 261 00:15:46,210 --> 00:15:48,510 a získat data zpět a pak ji do tohoto grafu, 262 00:15:48,510 --> 00:15:52,080 který je pak bude zobrazovat ve užitečným způsobem. 263 00:15:52,080 --> 00:15:54,970 Podívat se na další příklad, který by mohl být trochu známější na vás 264 00:15:54,970 --> 00:15:56,510 budeme se obrátit na Facebooku. 265 00:15:56,510 --> 00:15:59,440 Facebook je API se nazývá graf Facebook, 266 00:15:59,440 --> 00:16:04,390 av podstatě to, co to znamená, že je Facebook vidí sebe jako tento rozsáhlé databázi 267 00:16:04,390 --> 00:16:08,000 z mnoha různých částí, které všechny mají určité vztahy ke každému jiný. 268 00:16:08,000 --> 00:16:11,070 Jinými slovy, já jsem uživatel na Facebooku, tak jsem si profil, 269 00:16:11,070 --> 00:16:14,310 a také mám jisté přátele, a každý z nich má profil, 270 00:16:14,310 --> 00:16:17,580 a každý z mých přátel má zeď, která má různé připomínky na to, 271 00:16:17,580 --> 00:16:20,800 a každý z těchto připomínek má likes a všechny tyhle věci. 272 00:16:20,800 --> 00:16:23,100 >> Tam je mnoho různých dílů na Facebook. 273 00:16:23,100 --> 00:16:26,670 Je to velmi složitá API, a tam je tuny, které můžete udělat s ním, 274 00:16:26,670 --> 00:16:28,450 ale je to vlastně docela jednoduché na používání. 275 00:16:28,450 --> 00:16:33,680 Chystám se začít tím, že půjdete na graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 což je můj jedinečný název účtu, a vaše uživatelské jméno bude buď 277 00:16:38,430 --> 00:16:43,710 nějaká slova, pokud jste si vybrali to, nebo to může být jen řetězec čísel. 278 00:16:43,710 --> 00:16:46,360 To, co jsme se vrátit, je docela základní informace. 279 00:16:46,360 --> 00:16:50,460 Vidíme, že mám jméno, které je Billy, příjmení, které je Janitsch. 280 00:16:50,460 --> 00:16:53,370 Je tu jedinečná Facebook ID, které mám. 281 00:16:53,370 --> 00:16:57,920 Můžete vidět, že jsem muž, a že mám nastavení jazyka 282 00:16:57,920 --> 00:17:01,290 britská angličtina. 283 00:17:01,290 --> 00:17:03,490 Jinými slovy, vidíme velmi základní informace zde. 284 00:17:03,490 --> 00:17:08,670 Není to moc, ale to se nám dát představu o tom, co tam je. 285 00:17:08,670 --> 00:17:10,849 >> Můžeme to udělat totéž s Davidem Malan, například. 286 00:17:10,849 --> 00:17:13,599 Myslím, že jeho jméno je dmalan. 287 00:17:13,599 --> 00:17:16,369 Vidíme David Malan má unikátní ID. 288 00:17:16,369 --> 00:17:19,300 Má název, jméno, druhé jméno, příjmení. 289 00:17:19,300 --> 00:17:24,210 Vidíme také, že on je muž a má své sady jazyků na americkou angličtinu. 290 00:17:24,210 --> 00:17:26,869 Jinými slovy, vidíme docela základní informace zde. 291 00:17:26,869 --> 00:17:28,860 A teď, co se stane, když se snažíme vyzkoušet něco jiného? 292 00:17:28,860 --> 00:17:33,060 Řekněme, že mám zájem o to, co David Malan se rád na Facebooku. 293 00:17:33,060 --> 00:17:36,860 Můžu dělat / rád. Nyní jsme narazíte na problém. 294 00:17:36,860 --> 00:17:39,280 Máme nějaké chyby, která říká, že přístupový token 295 00:17:39,280 --> 00:17:41,660 je nutné požádat o tento zdroj. 296 00:17:41,660 --> 00:17:44,730 Ale pokud si myslíte, o tom, že vlastně dává smysl, protože to by bylo divné 297 00:17:44,730 --> 00:17:47,830 pokud byste mohli přistupovat každý část databáze Facebooku je 298 00:17:47,830 --> 00:17:50,170 jen z jakési jednoduché API, ne? 299 00:17:50,170 --> 00:17:56,040 Jinými slovy, pravděpodobně vaše informace nelze získat přístup každý, kdo chce. 300 00:17:56,040 --> 00:17:58,330 >> Tato chyba je přesně to, co to znamená. 301 00:17:58,330 --> 00:18:03,630 Některé API vyžadují určité oprávnění, aby se přístup k jejich datům. 302 00:18:03,630 --> 00:18:06,940 A ještě pokročilejší API, stejně jako Facebook jeden, 303 00:18:06,940 --> 00:18:09,840 bude vyžadovat určité oprávnění dělat určité věci. 304 00:18:09,840 --> 00:18:12,650 Vidím tyto základní informace 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 já nemůžu nic vidět minulost, která. 307 00:18:19,270 --> 00:18:23,050 Chcete-li získat kolem to pro teď, Facebook má tento pěkný nástroj 308 00:18:23,050 --> 00:18:27,690 což je graf API průzkumník, a myšlenka, že je můžete třídit z 309 00:18:27,690 --> 00:18:31,880 tvoří oprávnění pro sebe na základě Vaší vlastní účet 310 00:18:31,880 --> 00:18:35,680 a pak dívat se na věci, které se specificky váš účet může zobrazit. 311 00:18:35,680 --> 00:18:45,120 Například, když jsem to graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 jejda, myslím, že budu muset znovu ověřit svůj žeton zde. 313 00:18:53,510 --> 00:18:55,950 Dobře. 314 00:18:55,950 --> 00:19:01,740 Pokud se mi to znovu, skvělé, teď vidím, že jsem si tento objekt zpět 315 00:19:01,740 --> 00:19:06,300 který říká, že se mi líbí bazén nudle, které jsou v kategorii Hry a hračky. 316 00:19:06,300 --> 00:19:08,620 Líbí se mi mrože, které jsou v kategorii Animal. 317 00:19:08,620 --> 00:19:10,180 Jedná se o můj skutečný Facebook rád. 318 00:19:10,180 --> 00:19:13,280 Jsou trochu trapné. 319 00:19:13,280 --> 00:19:16,090 >> Ale můžeme vidět data se všichni vrátili do formátu JSON. 320 00:19:16,090 --> 00:19:18,160 Je to docela čitelný. 321 00:19:18,160 --> 00:19:20,970 Jinými slovy, máme toto mapování dat na nějaký pole, 322 00:19:20,970 --> 00:19:25,220 a každý prvek tohoto pole je HashMap, který mapuje 323 00:19:25,220 --> 00:19:28,530 název jako a kategorie jako. 324 00:19:28,530 --> 00:19:31,240 Každý, jako má unikátní ID. 325 00:19:31,240 --> 00:19:34,510 Tam jsou všechny druhy různých věcí, dat, které můžeme získat, 326 00:19:34,510 --> 00:19:37,980 a pokud máte zájem o využití Facebook API pro CS50 závěrečného projektu 327 00:19:37,980 --> 00:19:40,720 nebo něco podobného, ​​že je to vlastně docela proveditelné. 328 00:19:40,720 --> 00:19:44,260 V podstatě, jak se dostat kolem ověřování věc je Facebook 329 00:19:44,260 --> 00:19:48,030 používá systém zvaný OAuth, nebo Open Authentication, 330 00:19:48,030 --> 00:19:52,870 a já nechci aby se do ní hned, protože OAuth nebo jiný typ 331 00:19:52,870 --> 00:19:56,060 ověřování tendenci se hodně liší mezi různými API, 332 00:19:56,060 --> 00:19:58,320 takže jsem mohl strávit dlouhou dobu jedete po každé z nich, 333 00:19:58,320 --> 00:20:01,170 ale oni jsou vlastně docela samozřejmý. 334 00:20:01,170 --> 00:20:04,050 >> Pokud Google Facebook API je velmi čitelný. 335 00:20:04,050 --> 00:20:06,670 Existuje celá spec. 336 00:20:06,670 --> 00:20:10,210 Například, to je dokumentace pro Facebook API, 337 00:20:10,210 --> 00:20:14,170 a můžete vidět, že jsem na stránce Uživatel, takže jsem se můžete dozvědět vše o různých druzích věcí 338 00:20:14,170 --> 00:20:17,170 které jsou k dispozici se dostat, pokud to bude dat 339 00:20:17,170 --> 00:20:21,550 a také různá oprávnění, které potřebuji, aby se přístup k nim. 340 00:20:21,550 --> 00:20:25,470 Jak jsme viděli, nepotřebujeme oprávnění k přístupu k názvu nebo pohlaví, 341 00:20:25,470 --> 00:20:29,380 ale za tím potřebujeme oprávnění pro většinu věcí. 342 00:20:29,380 --> 00:20:33,040 Tato stránka, nebo spíše, tento web vám také řekne, jak se dostat 343 00:20:33,040 --> 00:20:35,640 Token, aby mohli ověřit sami. 344 00:20:35,640 --> 00:20:39,290 Většina systémů ověřování použít nějaký tokenu 345 00:20:39,290 --> 00:20:42,880 kde dostanete jedinečnou hodnotu, což je opravdu dlouhá a náhodný řetězec, 346 00:20:42,880 --> 00:20:46,240 a že způsob, jakým se mohou sdružovat požadavek, že jste se s tebou. 347 00:20:46,240 --> 00:20:50,560 Jinými slovy, oni vědí, že neděláte nic podezřelého s jejich daty. 348 00:20:50,560 --> 00:20:53,340 Vědí přesně, co jste se dostal. 349 00:20:53,340 --> 00:20:56,180 Vědí také, že máte oprávnění k zobrazení těchto informací. 350 00:20:56,180 --> 00:20:59,110 >> Pokud jste provedli Facebook app a vaše aplikace má určitých uživatelů, 351 00:20:59,110 --> 00:21:03,380 a tito uživatelé mají možnost, že aplikace pro přístup k některé části jejich profilu, 352 00:21:03,380 --> 00:21:07,790 pak cokoliv API klíč nebo token, že aplikace používá 353 00:21:07,790 --> 00:21:11,090 budou mít přístup k údajům pro tyto uživatele. 354 00:21:11,090 --> 00:21:13,780 To může znít komplikovaně, ale není to tak zlé, 355 00:21:13,780 --> 00:21:16,810 a pokud chcete používat Facebook bych vřele doporučuji, abyste 356 00:21:16,810 --> 00:21:18,990 zvažte hrát si s jejich API. 357 00:21:18,990 --> 00:21:21,610 Je to velmi cool, a můžete dělat spoustu různých věcí s ní. 358 00:21:21,610 --> 00:21:24,880 Pokud uživatel poskytne vám tato oprávnění, můžete se dokonce vrátit zpět do rozhraní API 359 00:21:24,880 --> 00:21:28,820 a říct, že jsem ve skutečnosti chtít poslat na tohoto uživatele zdi, nebo chci nechat zveřejnit fotografii, 360 00:21:28,820 --> 00:21:32,390 a to je důvod, proč na novinek budete někdy dostanu ty otravné věci 361 00:21:32,390 --> 00:21:37,840 rčení váš přítel sledoval toto video na nějaké podivné stránky, nebo něco takového. 362 00:21:37,840 --> 00:21:43,120 To je proto, že aplikace byl povolen přístup k poště na jeho příslušnosti k stěně. 363 00:21:43,120 --> 00:21:48,350 Myšlenka celkově je Facebook API dost složité, ale i opravdu užitečné. 364 00:21:48,350 --> 00:21:53,220 Rozhodně stojí mimo kontrolu, pokud ještě hledáte pro konečného projektu. 365 00:21:53,220 --> 00:21:57,930 >> Další sada rozhraní API, které jsem jdu přes je CS50 API. 366 00:21:57,930 --> 00:22:00,070 Dovolte mi, abych přiblížíte zde. 367 00:22:00,070 --> 00:22:03,390 CS50 skutečně dát dohromady celou řadu rozhraní API 368 00:22:03,390 --> 00:22:07,080 které můžete použít pro finální projekt, nebo jen pro vše, co děláte. 369 00:22:07,080 --> 00:22:12,830 A oni to většinou Harvard související, a oni se liší od nabídky Huds, 370 00:22:12,830 --> 00:22:17,780 Například v tomto Harvard Akce API, které vám umožní přístup k seznamu 371 00:22:17,780 --> 00:22:21,290 různé akce, které se chystáte na na Harvardu a takové věci. 372 00:22:21,290 --> 00:22:24,510 A tak můžeme kliknout na některou z nich a získat spec pro to, 373 00:22:24,510 --> 00:22:28,090 které budete moci najít pro všechny API, a myšlenka je 374 00:22:28,090 --> 00:22:33,920 to vám vědět,, co konkrétně požadovat od API a jak o ně požádat. 375 00:22:33,920 --> 00:22:37,370 Jinými slovy, pokud chci všechny události, které se dějí zítra 376 00:22:37,370 --> 00:22:42,550 pak jsem se dostal do samozřejmě dát mu, že datum, které chci v určitém formátu, 377 00:22:42,550 --> 00:22:46,030 a B, bude to mi přesně to, co se děje, aby se ke mně. 378 00:22:46,030 --> 00:22:48,590 Bude se říkat Chystám se vrátit vám tento objekt JSON, 379 00:22:48,590 --> 00:22:50,960 nebo jako vidíte, existují různé formáty. 380 00:22:50,960 --> 00:22:54,050 >> Můžete se také vrátit data jako CSV, například. 381 00:22:54,050 --> 00:22:57,620 Ale přesně víte, jak tato data bude vypadat, když se dostanete zpět 382 00:22:57,620 --> 00:23:00,610 takže můžete očekávat, že dělat určité věci s ním. 383 00:23:00,610 --> 00:23:07,240 Můžeme posunout dolů a vidět, například, chceme-li dotaz API 384 00:23:07,240 --> 00:23:11,500 získat kalendář, pak můžeme použít tuto konkrétní adresu URL 385 00:23:11,500 --> 00:23:16,480 a dát mu určité parametry, které se chystáte být data, která chceme přesně. 386 00:23:16,480 --> 00:23:19,540 A podobně, pokud chceme data zpět v určitém formátu, 387 00:23:19,540 --> 00:23:23,790 pak se můžeme ptát, do výstupu dat v CSV, 388 00:23:23,790 --> 00:23:27,700 a to je jen další parametr, který jsme kolem na API. 389 00:23:27,700 --> 00:23:29,210 Spousta skvělých věcí, které se tam. 390 00:23:29,210 --> 00:23:32,550 Já bych určitě doporučil podívat se na CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Jdu se podívat na tohoto API potravin Harvard zejména pro trochu. 392 00:23:36,000 --> 00:23:39,870 Jedna věc, kterou jsem vlastně určen, je to Harvard Nomata stránky, 393 00:23:39,870 --> 00:23:44,930 který používá CS50 potravin API načíst Huds menu pro den. 394 00:23:44,930 --> 00:23:50,400 A pro lidi, rozšíření školy, Huds je jídelní servis na Harvardu. 395 00:23:50,400 --> 00:23:55,130 Co dostanete, je to stránka, která obsahuje všechny jídel za den, a tak můžeme vidět oběd. 396 00:23:55,130 --> 00:23:58,130 Máme několik různých kategorií. Máme fazole a celozrnné stanice. 397 00:23:58,130 --> 00:24:00,340 Máme hnědá rýže stanici. 398 00:24:00,340 --> 00:24:03,360 Vidíme na brunch máme tyto málo potraviny. 399 00:24:03,360 --> 00:24:07,030 Pokud bychom na ně kliknete, pak jsme si o nutriční údaje. 400 00:24:07,030 --> 00:24:12,240 Můžete vidět, je nutriční informace pro grapefruity, v případě, že jste byli zvědaví. 401 00:24:12,240 --> 00:24:14,870 A tak znovu, budeme nahlédnout do zadní konec sem trochu 402 00:24:14,870 --> 00:24:18,530 a zjistit, co přesně to dělá získat tato data. 403 00:24:18,530 --> 00:24:21,710 A to dopadá být skutečně velmi složité vůbec. 404 00:24:21,710 --> 00:24:28,720 Tento soubor vypadá trochu chaotický, ale mějte na paměti, že je to manipulace na celý web, 405 00:24:28,720 --> 00:24:34,130 a když jsem posunout dolů vidíme tuto změnu dat funkci. 406 00:24:34,130 --> 00:24:36,630 >> Nyní, jen aby bylo jasno, toto je psáno v CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 což je jazyk, který jste pravděpodobně ještě neviděli. 408 00:24:39,570 --> 00:24:44,810 Ale je to docela čitelné, takže budu chodit přes to, jako by to bylo pseudokód. 409 00:24:44,810 --> 00:24:49,080 Změnit datum je funkce, která bude trvat v tomto časovém hodnoty, 410 00:24:49,080 --> 00:24:51,740 a je to také bude, aby se v první, které nemáme starat o tolik. 411 00:24:51,740 --> 00:24:54,110 Ale důležité je, že to má toto datum, 412 00:24:54,110 --> 00:25:00,080 a toto datum je den, který chceme požádat všechny potravin pro. 413 00:25:00,080 --> 00:25:04,030 A pak vidíte, máme trochu syntaxe zde, 414 00:25:04,030 --> 00:25:09,000 který je v podstatě analýze toto datum do čitelného formátu. 415 00:25:09,000 --> 00:25:11,920 Jinými slovy, API vyžaduje data v určitém formátu. 416 00:25:11,920 --> 00:25:17,390 Nemůžeš jen tak říct, 16.listopadu 2012 AD. 417 00:25:17,390 --> 00:25:20,320 To nebude vědět, co dělat s tím. To chce data v určitém formátu. 418 00:25:20,320 --> 00:25:23,230 Vše co děláme tady je to, že ho přesně, že formát, 419 00:25:23,230 --> 00:25:26,520 který je rok hodnota a pak spojovník, měsíc hodnota, 420 00:25:26,520 --> 00:25:29,420 další pomlčka a hodnotu data. 421 00:25:29,420 --> 00:25:34,910 A také, že chceme, aby údaje byly výstup JSON. 422 00:25:34,910 --> 00:25:37,560 >> Teď děláme tuto žádost AJAX, a jak jsem již zmínil, 423 00:25:37,560 --> 00:25:41,680 jQuery má tuto super užitečnou AJAX funkci, která vše, co potřebujete udělat, je určit 424 00:25:41,680 --> 00:25:45,780 několik parametrů tady dole, a to se vám zpět přesně to, co chcete. 425 00:25:45,780 --> 00:25:50,490 Říkáme to, že URL chceme, aby to jít je to CS50 Jídlo API, 426 00:25:50,490 --> 00:25:52,270 které jsme dostali od spec. 427 00:25:52,270 --> 00:25:56,730 Říkáme, že chceme, aby data v JSON, a že 428 00:25:56,730 --> 00:25:59,490 budeme jej tato data, která jsme definovali tady. 429 00:25:59,490 --> 00:26:02,670 To je den, kdy chceme, aby potraviny pro. 430 00:26:02,670 --> 00:26:07,790 A pak vše, co musíte udělat, je definovat nějaký úspěch funkcí, 431 00:26:07,790 --> 00:26:11,980 což je v podstatě to, co se stane, když API vrátí, aby údaje. 432 00:26:11,980 --> 00:26:15,490 Jinými slovy, jsme baleny až všechny parametry, které chceme, 433 00:26:15,490 --> 00:26:20,530 což je v tomto případě je den, který chceme, a skutečnost, že chceme v JSON, 434 00:26:20,530 --> 00:26:23,840 a poslali jsme ho na API, takže nyní API říká, jo, 435 00:26:23,840 --> 00:26:26,350 Zde jsou vaše data, jsem zpátky pro tebe. 436 00:26:26,350 --> 00:26:29,930 Máme úspěch funkci, což znamená, vzhledem, že API 437 00:26:29,930 --> 00:26:32,230 úspěšně vrátí některé údaje, co budeme dělat s tím? 438 00:26:32,230 --> 00:26:35,980 >> A ukázalo se, že vše, co udělat, je zavolat tato aktualizace funkce menu 439 00:26:35,980 --> 00:26:42,680 s tím, co API se vrátil, tak můžeme hledat, že 440 00:26:42,680 --> 00:26:47,970 a uvidíte, že všechno děláme používá spoustu nových syntaxe zde 441 00:26:47,970 --> 00:26:52,220 aktualizovat HTML a vložte těchto nových údajů. 442 00:26:52,220 --> 00:26:56,580 Co to umožňuje je, že jsme tyto šipky na obou stranách, a můžeme klepněte na tlačítko, 443 00:26:56,580 --> 00:27:01,060 a teď se díváme na data pro další den a opět další den, 444 00:27:01,060 --> 00:27:04,820 a pokaždé, když je to aktualizace, že hodnoty data a dotazování API, 445 00:27:04,820 --> 00:27:07,510 dostat zpět některé údaje a uvedení do areálu. 446 00:27:07,510 --> 00:27:10,590 Opět, můžete vidět, super, super užitečné. 447 00:27:10,590 --> 00:27:14,410 Tato aplikace Trvalo mi několik hodin hack společně, 448 00:27:14,410 --> 00:27:20,140 a mám trochu více zkušeností, samozřejmě, ale na CS50 závěrečný projekt 449 00:27:20,140 --> 00:27:22,870 může vypadat velmi podobně jako to. 450 00:27:22,870 --> 00:27:29,540 >> API jsou super výkonný pro množství úsilí, které oni vezmou. 451 00:27:29,540 --> 00:27:32,800 Poslední věc, kterou jsem jdu přes je několik dalších API obecně. 452 00:27:32,800 --> 00:27:35,480 Nebudu se až do nich, pokud jde o to, co dělají konkrétně, 453 00:27:35,480 --> 00:27:38,740 ale dám vám představu o tom, co je tam venku. 454 00:27:38,740 --> 00:27:42,700 2 opravdu užitečné ty, pokud máte zájem o analýzu dat nebo vizualizace 455 00:27:42,700 --> 00:27:45,960 nebo něco podobného, ​​jsou Freebase a Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-pravděpodobně všichni víte-je bezplatná on-line encyklopedie, 457 00:27:49,800 --> 00:27:53,230 a to skutečně má API, takže pokud chcete, například, 458 00:27:53,230 --> 00:27:56,250 získat všechny texty a články pro chobotnice 459 00:27:56,250 --> 00:27:58,030 můžete velmi snadno udělat. 460 00:27:58,030 --> 00:28:02,300 Jen říct, hej, Wikipedia API, rád bych data vrácena jako to, 461 00:28:02,300 --> 00:28:07,010 a rád bych jej v tomto formátu, a článek bych rád, je chobotnice, 462 00:28:07,010 --> 00:28:09,820 a velmi rychle to bude vám zpět tyto informace. 463 00:28:09,820 --> 00:28:12,230 To může být velmi užitečné, pokud chcete, aby se nějaký webu 464 00:28:12,230 --> 00:28:16,200 že je to lepší prohlížeč pro Wikipedii, nebo něco takového. 465 00:28:16,200 --> 00:28:21,350 >> Freebase je trochu podobná, i když je to trochu těžší, pokud jde o API. 466 00:28:21,350 --> 00:28:24,390 Freebase je jako Wikipedie v tom, že je to on-line encyklopedie 467 00:28:24,390 --> 00:28:29,050 který obsahuje spoustu a spoustu různých údajů o všech možných témat, 468 00:28:29,050 --> 00:28:33,150 ale to jsou uloženy v relační databázi, která je mírně odlišná od Wikipedie. 469 00:28:33,150 --> 00:28:36,410 Wikipedia má své články a články spojené s jinými výrobky, 470 00:28:36,410 --> 00:28:38,860 ale pro nejvíce se rozdělit, pokud chcete data pro chobotnice, 471 00:28:38,860 --> 00:28:41,990 jdete chobotnice článku, se tato data, a máte spoustu textu 472 00:28:41,990 --> 00:28:43,830 o chobotnic, tak to je skvělé. 473 00:28:43,830 --> 00:28:46,870 Freebase pracuje v mírně komplikovanější způsobem v tom, že 474 00:28:46,870 --> 00:28:48,930 vše se vztahuje k sobě navzájem. 475 00:28:48,930 --> 00:28:52,620 Jinými slovy, pokud budeme hledat chobotnice 476 00:28:52,620 --> 00:28:54,940 pak má spoustu kategorií s ní spojena. 477 00:28:54,940 --> 00:28:57,920 >> Například, je to zvíře, žije pod vodou, 478 00:28:57,920 --> 00:28:59,710 má určitou tělesnou teplotu. 479 00:28:59,710 --> 00:29:01,210 Nevím. 480 00:29:01,210 --> 00:29:04,230 A všechny z těchto kategorií jsou odkazy na další místa, kde si můžete jít 481 00:29:04,230 --> 00:29:06,640 vidět věci s tím stejné kategorie. 482 00:29:06,640 --> 00:29:13,450 Jinými slovy, chobotnice soubor dat obsahuje odkaz na soubor dat pro všechna zvířata, 483 00:29:13,450 --> 00:29:16,790 a že by mě nechal pohybovat v databázi opravdu rychle. 484 00:29:16,790 --> 00:29:21,740 To může být velmi užitečné, pokud děláte něco jako srovnání. 485 00:29:21,740 --> 00:29:24,490 Jinými slovy, stejně jistá věc, kterou chcete vidět 486 00:29:24,490 --> 00:29:27,890 co jiného to souvisí a vidět, co ještě to není vhodný. 487 00:29:27,890 --> 00:29:30,700 Takové věci. To může být užitečné v několika směrech. 488 00:29:30,700 --> 00:29:34,250 Pokud hledáte větší výzvou a být schopni dělat nějaké složitější věci 489 00:29:34,250 --> 00:29:38,740 Já bych zvážit podívat na Freebase API. 490 00:29:38,740 --> 00:29:44,670 Ale většinou, Wikipedia je velmi jednoduché místo, kam jít tak daleko, jak dostat informace. 491 00:29:44,670 --> 00:29:48,340 Dalším místem, které budu je podívat se na Last.fm, a já jsem vlastně jít na stránky 492 00:29:48,340 --> 00:29:53,800 v případě, někteří lidé nejsou obeznámeni, ale Last.fm je v podstatě hudební 493 00:29:53,800 --> 00:29:57,220 chutě a doporučení webové stránky. 494 00:29:57,220 --> 00:29:59,000 Můžete vytvořit účet. 495 00:29:59,000 --> 00:30:04,250 Můžete začít nahrávání hudby z hudebního přehrávače 496 00:30:04,250 --> 00:30:08,020 na webových stránkách, a v podstatě začne dávat vám hudební doporučení 497 00:30:08,020 --> 00:30:10,030 na základě toho, co budete poslouchat. 498 00:30:10,030 --> 00:30:14,270 >> Například, když jdete do svého profilu stránky tohle je moje- 499 00:30:14,270 --> 00:30:18,180 můžete vidět, že máte seznam naposledy poslouchal skladby. 500 00:30:18,180 --> 00:30:22,550 Můžete vidět celkové oblíbené umělce, všechny tyhle věci, 501 00:30:22,550 --> 00:30:25,280 a znovu, je tu velká API za Last.fm, 502 00:30:25,280 --> 00:30:29,360  a můžete jej použít k tomu spoustu a spoustu opravdu skvělých věcí. 503 00:30:29,360 --> 00:30:38,870 Například, půjdu za kamarádem, který má tuto stránku Last.fm Nástroje webové stránky. 504 00:30:38,870 --> 00:30:42,380 To je vlastně další platforma, která je postavena na Last.fm API, 505 00:30:42,380 --> 00:30:45,420 a to se množství docela zajímavé věci. 506 00:30:45,420 --> 00:30:50,260 Pokud jsem se přihlásit do mého uživatelského jména, například, 507 00:30:50,260 --> 00:30:53,110 Mohu požádat ji vytvořit tag cloud, například, 508 00:30:53,110 --> 00:30:56,480 a co že se to udělat, je dát mi obraz 509 00:30:56,480 --> 00:30:59,850 všechny různé žánry a takové věci, že jsem chtěl poslouchat. 510 00:30:59,850 --> 00:31:01,410 Jak se to dělá tohle? 511 00:31:01,410 --> 00:31:05,670 Velmi podstatě to říká na Last.fm API zde je to uživatel. 512 00:31:05,670 --> 00:31:10,710 Chtěl bych vědět, žánr každé písně, které jsem kdy poslouchal, 513 00:31:10,710 --> 00:31:15,130 a můžete to udělat, že tím, že poměrně jednoduchý AJAX volání na Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Dostanete zpět velký seznam, a pak samozřejmě některé další věci se provádí 515 00:31:18,990 --> 00:31:22,280 proměnit slovo mrak, ale můžete vidět celkovou 516 00:31:22,280 --> 00:31:25,850 je to velmi snadný přístup a velmi snadné použití. 517 00:31:25,850 --> 00:31:30,750 Opravdu pěkný pro řadu věcí. 518 00:31:30,750 --> 00:31:35,940 >> Myslím, že je to asi všechno, co řeknu celkově. 519 00:31:35,940 --> 00:31:39,040 Jedna poslední věc, kterou zmíním o API obecně je to, že 520 00:31:39,040 --> 00:31:41,840 budete někdy dostanete do něčeho s názvem Omezení rychlosti, 521 00:31:41,840 --> 00:31:44,940 a myšlenka míra omezení je nechcete zneužívat API. 522 00:31:44,940 --> 00:31:48,130 Jinými slovy, je to opravdu pěkné, že mnoho z těchto stránek mají API 523 00:31:48,130 --> 00:31:51,070 že můžete jít do a používat zdarma. 524 00:31:51,070 --> 00:31:54,460 Nicméně, pokud jste vydělávali miliony nebo miliardy žádostí denně, 525 00:31:54,460 --> 00:31:57,610 Například, pokud jste uvízl v nekonečné smyčce, která je nekonečně dotazování 526 00:31:57,610 --> 00:32:00,680 nějaký API a dostat zpět obrovské množství dat, 527 00:32:00,680 --> 00:32:04,570 samozřejmě, že to není dobré, takže to, co spousta API udělat, je se tato míra omezení funkce 528 00:32:04,570 --> 00:32:09,970 které říká, že je možné pouze se 1000 požadavků za den na IP adresu, nebo něco takového. 529 00:32:09,970 --> 00:32:12,540 A pokud děláte hodně testování a takové věci, 530 00:32:12,540 --> 00:32:14,890 budete někdy běh do toho, a najednou se to vypne tě 531 00:32:14,890 --> 00:32:18,280 a říct ne, nedám vám žádné další údaje. 532 00:32:18,280 --> 00:32:20,000 >> Co chcete udělat, je hrát podle pravidel. 533 00:32:20,000 --> 00:32:22,950 Chcete, aby se ujistil, že budete číst API spec opatrně. 534 00:32:22,950 --> 00:32:26,330 Pokud má určitá pravidla k němu připojené, jako vás může provést pouze X dotazů denně 535 00:32:26,330 --> 00:32:30,000 nebo můžete přistupovat pouze část databáze určitý počet dob 536 00:32:30,000 --> 00:32:32,900 nebo něco podobného, ​​že chcete, aby se ujistil, že se budete držet. 537 00:32:32,900 --> 00:32:38,360 Tak dlouho, jak budete hrát v rámci těchto pravidel, budete pravděpodobně mít opravdu pěkný čas pomocí API. 538 00:32:38,360 --> 00:32:42,030 Vaše celkové stánek s jídlem, je API jsou opravdu užitečné. 539 00:32:42,030 --> 00:32:45,610 >> Tam je API pro téměř všechny velké webové služby venku. 540 00:32:45,610 --> 00:32:50,700 Docela hodně jakákoliv část Google Tools Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, všechny ty věci mají API. 542 00:32:54,390 --> 00:32:58,280 Můžete je použít jak získat data ze serveru a odesílat data na server. 543 00:32:58,280 --> 00:33:00,870 Jinými slovy, pokud jste chtěli, aby se kalendáře aplikace, které lze aktualizovat 544 00:33:00,870 --> 00:33:04,190 něčí Google Calendar, je tu API pro to. 545 00:33:04,190 --> 00:33:07,810 Pokud chcete, aby se něco, co se děje, aby vám řekl, kde 546 00:33:07,810 --> 00:33:12,530 umístění určité adresy je můžete použít Google Maps API pro to. 547 00:33:12,530 --> 00:33:15,860 API jsou fantasticky užitečné, a jsou všude. 548 00:33:15,860 --> 00:33:18,700 Máte-li zájem o nějaké myšlenky, 549 00:33:18,700 --> 00:33:22,170 je to asi související API, které můžete použít k získání velké množství dat 550 00:33:22,170 --> 00:33:25,060 velmi rychle a velmi jednoduše. 551 00:33:25,060 --> 00:33:28,140 >> Pokud stále hledáte projektu, nebo pokud si jen chcete pohrát 552 00:33:28,140 --> 00:33:31,820 s něčím obecně, API jsou rozhodně stojí za to. 553 00:33:31,820 --> 00:33:37,200 Díky, a já jsem rád zodpoví všechny otázky, které jste může mít. 554 00:33:37,200 --> 00:33:44,900 Dobře, díky moc. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]