1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Szeminárium] [A programozói bemutatása 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 [Ez a CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Helló, mindenki, én vagyok Billy, és ma én leszek beszélni API-k, 5 00:00:12,100 --> 00:00:15,220 vagy alkalmazás programozási felületek, 6 00:00:15,220 --> 00:00:20,040 különösen az összefüggésben CS50 végleges projektek és az ilyesmit. 7 00:00:20,040 --> 00:00:22,490 Általában mi az API? 8 00:00:22,490 --> 00:00:25,530 Nagyon tág értelemben, ez egyfajta középső ember, amely lehetővé teszi 2 db 9 00:00:25,530 --> 00:00:28,610 A szoftver kommunikálni egymással. 10 00:00:28,610 --> 00:00:32,530 Ez egyfajta nagyon tág definíció, és nem az, hogy fontos, amit keresünk. 11 00:00:32,530 --> 00:00:35,450 Amit igazán akarok, valamiféle hasznos középutat 12 00:00:35,450 --> 00:00:40,570 kommunikálni valamilyen adatbázis valahol. 13 00:00:40,570 --> 00:00:43,310 >> Itt egy diagramot, és alapvetően az ötlet, hogy a 14 00:00:43,310 --> 00:00:46,790 vagyunk egy alkalmazást, és azt akarjuk, hogy az adatokat egy adatbázisból, 15 00:00:46,790 --> 00:00:49,570 de mi nem akarjuk lekérdezni az adatbázist közvetlenül. 16 00:00:49,570 --> 00:00:52,710 Ehelyett azt akarjuk, hogy menjen át ezt a fajta középső ember, az API-t. 17 00:00:52,710 --> 00:00:55,440 Az ötlet mögött a szám 2 és 3 a chart 18 00:00:55,440 --> 00:00:57,750 mindketten lesz nagyon bonyolult és rendetlen. 19 00:00:57,750 --> 00:00:59,960 Más szóval, amikor a API az adatbázis lekérdezésekor, 20 00:00:59,960 --> 00:01:03,300 ez valószínűleg lesz az SQL táblák, és minden, hogy a fajta dolog, 21 00:01:03,300 --> 00:01:05,489 és mi tanultunk egy kicsit róla CS50, de összességében 22 00:01:05,489 --> 00:01:07,590 már észrevette, hogy ez egy kicsit a fájdalom. 23 00:01:07,590 --> 00:01:10,590 Ez lesz nagyon, nagyon bonyolult és zavaros, különösen, ha még van 24 00:01:10,590 --> 00:01:12,530 bonyolult lekérdezések és ilyesmi. 25 00:01:12,530 --> 00:01:15,960 >> Amit igazán akarok, valamiféle hasznos és egyszerű módon 26 00:01:15,960 --> 00:01:19,780 kap, hogy az adatok, és ez a gondolat mögött az 1 és 4 a diagramon. 27 00:01:19,780 --> 00:01:23,600 Más szóval, szeretnénk egy igazán egyszerű módja annak, hogy elmondja a API mit kap nekünk 28 00:01:23,600 --> 00:01:27,760 és egy nagyon egyszerű módja annak, hogy az adatokat vissza. 29 00:01:27,760 --> 00:01:33,020 Van az egyik fő módja, hogy az adatok általában a küldött és fogadott, 30 00:01:33,020 --> 00:01:36,490 ami JSON, vagy a JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 Ez változhat egy kicsit, amennyire hogyan elküldi a kérelmet, hogy az API. 32 00:01:40,370 --> 00:01:43,210 Más szóval, ha azt szeretnénk, néhány bizonyos mennyiségű adat, 33 00:01:43,210 --> 00:01:46,670 hogyan mondja az API kap, hogy az adatok között változhat egy kicsit. 34 00:01:46,670 --> 00:01:49,210 Általában ez magában foglalja, hogy valamilyen hálózati kérelmet. 35 00:01:49,210 --> 00:01:53,130 Más szóval, a hozzáférés valamilyen URL-címet fogja mondani az API 36 00:01:53,130 --> 00:01:56,190 pontosan mit akar, de az adatok szinte mindig visszaküldik, 37 00:01:56,190 --> 00:01:59,530 más szóval, 4-es számú JSON. 38 00:01:59,530 --> 00:02:01,030 >> Mi az a JSON pontosan? 39 00:02:01,030 --> 00:02:03,030 Mint mondtam, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Ez alapvetően az univerzális szabvány adó és a vevő adatait. 41 00:02:07,090 --> 00:02:11,410 Az elképzelés az, hogy van e 3 kategóriában a dolgokat. 42 00:02:11,410 --> 00:02:13,540 Van tömbök, hashmaps és primitívek. 43 00:02:13,540 --> 00:02:16,580 Tömbök és hashmaps amit nézett egy kicsit a CS50, 44 00:02:16,580 --> 00:02:19,870 de még valami ütött egy nagyon szigorú értelemben, mik azok. 45 00:02:19,870 --> 00:02:22,780 Más szóval, a tömbök, tudod, hogy ők írja kötött, 46 00:02:22,780 --> 00:02:26,560 így csak egyféle típust, hogy megy az egész tömb. 47 00:02:26,560 --> 00:02:29,310 JSON sokkal enyhébb az ilyesmi. 48 00:02:29,310 --> 00:02:33,590 Alapvetően az ötlet maga megépíteni ezt a tárgyat, 49 00:02:33,590 --> 00:02:36,270 amely állhat ezek bármelyikének 3 dolog 50 00:02:36,270 --> 00:02:39,470 és állhat több is őket, és ők is egymásba ágyazhatók. 51 00:02:39,470 --> 00:02:42,110 >> Itt van egyfajta példát JSON, 52 00:02:42,110 --> 00:02:47,910 amely ezeket a kapcsos zárójelek itt képviseli a HashMap, 53 00:02:47,910 --> 00:02:51,400 és HashMap alapvetően egy leképezés valamilyen kulcsfontosságú 54 00:02:51,400 --> 00:02:53,340 valamiféle értéket. 55 00:02:53,340 --> 00:02:56,440 Látni fogod, hogy itt van a tulajdonságok kulcs, 56 00:02:56,440 --> 00:02:59,600 és ez feltérképezése rá egy tömb, ami ezt az egészet. 57 00:02:59,600 --> 00:03:04,120 Látjuk másik eleme a HashMap, ami ezt a kulcsot isAwesome, 58 00:03:04,120 --> 00:03:07,370 amely térképeket egy primitív érték igaz, más szóval, a logikai. 59 00:03:07,370 --> 00:03:09,420 Primitívek lehet szálakat. Ezek lehetnek egész számok. 60 00:03:09,420 --> 00:03:11,960 Lehetnek bools, ilyesmi. 61 00:03:11,960 --> 00:03:18,410 És látod a tartalmát tömb tulajdonságait pontok már 2 húrok benne, 62 00:03:18,410 --> 00:03:20,050 önhasonló és csodálatos. 63 00:03:20,050 --> 00:03:27,410 Ezek 2 tulajdonságai JSON, és látjuk, hogy JSON félelmetes. 64 00:03:27,410 --> 00:03:30,060 Ha megnézzük, hogy egy kicsit jobban fogok építeni 65 00:03:30,060 --> 00:03:32,870 bonyolultabb példa JSON itt. 66 00:03:32,870 --> 00:03:37,000 >> Kezdjük egy sor, például csak egy üres tömböt. 67 00:03:37,000 --> 00:03:39,180 De ez a fajta unalmas, ezért fogjuk kitölteni egy kicsit, 68 00:03:39,180 --> 00:03:43,420 , és mint mondtam, tömbök JSON A típusú kötött, 69 00:03:43,420 --> 00:03:46,400 így is van egy húr van, ami hi, 70 00:03:46,400 --> 00:03:49,330 és ez egy másik eleme, hogy a tömb. 71 00:03:49,330 --> 00:03:53,450 És hasonlóképpen, tudtuk hozzá hashmapping itt, ami megy, hogy egy pár leképezések. 72 00:03:53,450 --> 00:04:00,470 Ez lesz egy leképezés nevet a húr Billy. 73 00:04:00,470 --> 00:04:04,590 Van egy leképezés név Billy, és van egy feltérképezése 74 00:04:04,590 --> 00:04:10,860 kedvenc színe a kék. 75 00:04:10,860 --> 00:04:12,700 Ez alapvetően jó példa a JSON. 76 00:04:12,700 --> 00:04:18,160 Ez a fajta kerül-Hoppá, kell vessző van, mind a különböző részeit. 77 00:04:18,160 --> 00:04:21,140 Ismét, ez nem írja kötve egyáltalán, így lehet bármilyen fajta 78 00:04:21,140 --> 00:04:24,710 belül, amit akarsz, és az ötlet, hogy ez önhasonló. 79 00:04:24,710 --> 00:04:28,830 Más szóval, ez itt van egy JSON objektum, mivel ez az egész dolog, 80 00:04:28,830 --> 00:04:33,200 mint éppen ez, így van egy primitív lehet tárgy, 81 00:04:33,200 --> 00:04:35,680 tömb lehet egy tárgy vagy HashMap lehet egy tárgy. 82 00:04:35,680 --> 00:04:40,270 >> Mint tudod milyen látni, JSON nagyon, nagyon hasznos, hogy ez annyira sokoldalú. 83 00:04:40,270 --> 00:04:45,860 Egyszerre minden lehetséges adatot, amit elképzelni tárolt JSON. 84 00:04:45,860 --> 00:04:47,900 Ez teszi, hogy egy nagyon szép nyelv használható API-k 85 00:04:47,900 --> 00:04:50,770 mert ez nagyon sokat jelent, hogy nem számít, mit kívánt adatokat 86 00:04:50,770 --> 00:04:54,270 ott lesz valahogy vissza JSON. 87 00:04:54,270 --> 00:04:58,600 Néhány tulajdonságok teszik JSON különösen jó ez a fajta dolog. 88 00:04:58,600 --> 00:05:02,270 Mint látható, szemben egy csomó dolog, hogy már dolgozik a CS50 89 00:05:02,270 --> 00:05:06,040 ez viszonylag nagyon könnyen olvasható és nagyon könnyű írni. 90 00:05:06,040 --> 00:05:09,700 A francia ki, ha akarod, mint én csináltam, hogy például, 91 00:05:09,700 --> 00:05:12,990 amely egy szép, csinos verzió látható igazán jól. 92 00:05:12,990 --> 00:05:17,150 De egyébként ez is könnyű írni és olvasni a számítógép. 93 00:05:17,150 --> 00:05:19,870 Más szóval, ez könnyen elemezhető és könnyű kódolni, 94 00:05:19,870 --> 00:05:23,820 ami azt jelenti, hogy elég gyors, mint amennyire az adatok olvasása van szó, 95 00:05:23,820 --> 00:05:26,460 és JSON keletkezhetnek nagyon gyorsan. 96 00:05:26,460 --> 00:05:30,300 >> Ez is nagyon könnyen elérhető különböző részein, JSON és az ilyesmit. 97 00:05:30,300 --> 00:05:33,320 Ez szép, továbbá az a tény, hogy ez önhasonló, 98 00:05:33,320 --> 00:05:36,090 más szóval, az a tény, hogy lehet JSON belül JSON belül JSON 99 00:05:36,090 --> 00:05:40,040 nagyon szép az adattárolásra. 100 00:05:40,040 --> 00:05:45,490 A másik rész, ami általában nagyon hasznos a munka jQuery API-k. 101 00:05:45,490 --> 00:05:49,290 Megtanultátok egy kis JavaScript, ami egy jó módja 102 00:05:49,290 --> 00:05:53,710 manipulálni HTML és CSS egy honlapon. 103 00:05:53,710 --> 00:05:57,190 De ez lehet a fajta a fájdalom a kód egyszerű JavaScript, 104 00:05:57,190 --> 00:05:59,810 főleg azért, mert a JavaScript egy nagyon bőbeszédű nyelvet. 105 00:05:59,810 --> 00:06:03,020 Meg kell tanulni egy csomó szintaktikai, és csak csinálni nagyon egyszerű dolgok 106 00:06:03,020 --> 00:06:07,590 tart sok a kódot, így a jQuery egy könyvtár a JavaScript programot. 107 00:06:07,590 --> 00:06:09,800 Más szóval, ez egy JavaScript fájlt tölthet 108 00:06:09,800 --> 00:06:12,730 majd a jQuery funkciók bizonyos dolgokat. 109 00:06:12,730 --> 00:06:15,670 És jQuery alapvetően teszi az életed egy egész sokkal könnyebb. 110 00:06:15,670 --> 00:06:20,390 Egyszerűsíti mi lenne sok száz vonalak JavaScript le egy pár sort a jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Ez különösen akkor hasznos, ha az Ön által használt API-k, mert általában 112 00:06:24,430 --> 00:06:27,600 hogyan lesz API-k elérése azáltal AJAX kérések, 113 00:06:27,600 --> 00:06:30,130 és azt hiszem, David említett előadásában, hogy AJAX kérések 114 00:06:30,130 --> 00:06:33,120 általában, ha követsz hálózati kérés valamiféle szerver 115 00:06:33,120 --> 00:06:37,760 és egyre vissza valamilyen adat és frissítése oldalt azonnal. 116 00:06:37,760 --> 00:06:41,840 Mivel a sima JavaScript venné őrült számú vonalak 117 00:06:41,840 --> 00:06:44,620 érvényesítése az összes fejléc és tegyenek meg mindent az ilyesmik, 118 00:06:44,620 --> 00:06:46,810 jQuery van egy nagyon egyszerű nevezett funkció AJAX, 119 00:06:46,810 --> 00:06:51,760 és csak annyit kell tennie, az AJAX is megkapjuk a kívánt paramétereket, hogy az API, 120 00:06:51,760 --> 00:06:56,830 helyét az API, illetve bármely további fajta beállításokat kíván konfigurálni. 121 00:06:56,830 --> 00:07:02,480 Ez nagyon, nagyon szép és nagyon hasznos ez a fajta dolog. 122 00:07:02,480 --> 00:07:06,970 Ez minden, amit meg kell kezdeni, hogy a kezünket piszkos az API-kat. 123 00:07:06,970 --> 00:07:10,220 >> Megyek, hogy ki néhány példát, és fedezze fel a különböző tulajdonságok 124 00:07:10,220 --> 00:07:13,150 és miért ők hasznosak különböző dolog. 125 00:07:13,150 --> 00:07:15,570 Az első dolog, én tényleg mutatni olyan dolog, hogy én dolgozom 126 00:07:15,570 --> 00:07:18,310 én kutatólaboratóriumot, amely Ngram Viewer, 127 00:07:18,310 --> 00:07:23,270 és alapvetően azt az elképzelést, Ngram Viewer kereshet valamiféle szó 128 00:07:23,270 --> 00:07:28,840 vagy kifejezésre, és látom, hogy gyakran ez megjelent egy bizonyos szöveget idővel. 129 00:07:28,840 --> 00:07:33,160 Ez a példa itt az adatok halmaza babák 130 00:07:33,160 --> 00:07:36,480 hogy született New York között, 1920 és 2000. 131 00:07:36,480 --> 00:07:40,090 Mi lehet keresni, például a nevét Jennifer, 132 00:07:40,090 --> 00:07:44,400 és látjuk, hogy pre-1960-as években ez igazán nem volt hozzászokva, hogy sok minden, 133 00:07:44,400 --> 00:07:48,900 aztán ahogy bejutni későbbi években ez válik egyre többször használják. 134 00:07:48,900 --> 00:07:53,680 Azt is megteheti összehasonlítását, így ha összehasonlítjuk Jennifer, például, Thomas, 135 00:07:53,680 --> 00:07:56,520 látjuk Thomas már elég elterjedt a történelem során, 136 00:07:56,520 --> 00:07:58,780 mivel Jennifer egy újabb név. 137 00:07:58,780 --> 00:08:00,590 Meg tudjuk csinálni, hogy az a fajta dolog. 138 00:08:00,590 --> 00:08:02,460 >> Hogyan működik ez a kérelem a munka? 139 00:08:02,460 --> 00:08:06,030 Alapvetően működik keresztül API. 140 00:08:06,030 --> 00:08:08,660 Más szavakkal, van bizonyos paramétereit. 141 00:08:08,660 --> 00:08:11,360 Megvan a paramétereket, amit mi valójában keres, 142 00:08:11,360 --> 00:08:13,720 amelyek ezeket a neveket, és aztán van egy pár egyéb tulajdonságok, 143 00:08:13,720 --> 00:08:16,570 mint az Y tengely és az x tengely mentén. 144 00:08:16,570 --> 00:08:18,440 Láthatjuk, hogy van egy pár különböző lehetőségek, amennyiben a 145 00:08:18,440 --> 00:08:20,860 időbontásban használni, és az ilyesmit. 146 00:08:20,860 --> 00:08:26,700 Van ilyen opciók amennyire milyen adatokat valójában szeretnénk az adatbázisból, 147 00:08:26,700 --> 00:08:29,400 és azt szeretné, hogy az adatokat vissza néhány hasznos módon. 148 00:08:29,400 --> 00:08:34,020 Általában, ha arra lekérdezése az adatbázisból közvetlenül lenne egyfajta a fájdalom csinálni 149 00:08:34,020 --> 00:08:38,970 mert valószínűleg ez az adat mintegy baba nevét él valamilyen adatbázisban valahol, 150 00:08:38,970 --> 00:08:42,789 és ez lenne igazán bonyolult, hogy a lekérdezés kézzel 151 00:08:42,789 --> 00:08:45,830 , és eldönti, hogy pontosan milyen adatokat vissza. 152 00:08:45,830 --> 00:08:49,300 Más szóval, csak érdekel Jennifer és Thomas ebben az esetben, 153 00:08:49,300 --> 00:08:53,410 és csak érdekel egy bizonyos tengelye és minden ilyesmik. 154 00:08:53,410 --> 00:08:55,720 >> Hogyan lehet megkerülni ezt? 155 00:08:55,720 --> 00:09:01,200 Ásni ebbe API egy kicsit megmutatom neked egy másik példa erre platform 156 00:09:01,200 --> 00:09:04,490 amely némileg eltérő adatokkal együtt. 157 00:09:04,490 --> 00:09:09,950 Ez az adat készlet, ahelyett, hogy baba nevek, valójában csak a teljes 158 00:09:09,950 --> 00:09:12,460 nyomtatott kiadvány adatbázis Open Library, 159 00:09:12,460 --> 00:09:18,410 ami egy hatalmas forrása megjelent szövegek az egész elmúlt 100 évben, vagy úgy. 160 00:09:18,410 --> 00:09:23,540 Az ötlet az, hogy mi van ez compository millió és millió szöveg, 161 00:09:23,540 --> 00:09:27,420 amit most keresni a különböző szavak és mondatok be 162 00:09:27,420 --> 00:09:30,840 Íme egy példa arra, hogy változik egy kicsit másképp az előző példában 163 00:09:30,840 --> 00:09:33,350 Megmutattam neked, ami már a 3 keresési lekérdezések, 164 00:09:33,350 --> 00:09:36,290 háború, háború, és a francia szó a háború, ami guerre. 165 00:09:36,290 --> 00:09:40,380 És mi keres belül 3 különböző szakaszain a teljes adatbázist. 166 00:09:40,380 --> 00:09:45,080 Más szavakkal, ebben az első lekérdezésben mi csak keres-ben az USA-ban, 167 00:09:45,080 --> 00:09:51,150 a másodikban csak az Egyesült Királyságban, és a harmadik csak a mű Franciaországban. 168 00:09:51,150 --> 00:09:53,120 Látunk néhány érdekes minták jelennek meg. 169 00:09:53,120 --> 00:09:58,180 Például, azt látjuk, jobb itt, amely- 170 00:09:58,180 --> 00:10:02,410 hoppá, én elrontottam a tengely egy kicsit, de lehet látni ebben a tartományban van 171 00:10:02,410 --> 00:10:05,730 bárhol Civil War van egy nagy tüske az amerikai kiadás 172 00:10:05,730 --> 00:10:08,340 de nem olyan nagy tüske a másik kettő, és ez nyilván azért, mert 173 00:10:08,340 --> 00:10:10,880 az amerikai polgárháborúban történik ezen a ponton. 174 00:10:10,880 --> 00:10:13,890 >> Láthatjuk néhány jó dolog van, 175 00:10:13,890 --> 00:10:17,070 de ami igazán érdekel, hogy hogyan kaptuk ezeket az adatokat. 176 00:10:17,070 --> 00:10:21,320 Elviszlek a színfalak mögött ebben az app egy kicsit. 177 00:10:21,320 --> 00:10:24,540 Egy ügyes trükk, ha dolgozik a helyszínen, és milyen szeretné tudni 178 00:10:24,540 --> 00:10:27,430 mi folyik a színfalak mögött, akkor nyissa meg a fejlesztői eszközök. 179 00:10:27,430 --> 00:10:30,200 Fogom használni a Chrome fejlesztői eszközöket, és hogy e 180 00:10:30,200 --> 00:10:35,160 meg tudod csinálni ellenőrzés, shift, J, és úgy, hogy a JavaScript konzol. 181 00:10:35,160 --> 00:10:37,420 Van néhány kották itt. 182 00:10:37,420 --> 00:10:39,680 Ezek mind nagyon hasznos, különböző körülmények között, de érdekel a hálózat 183 00:10:39,680 --> 00:10:44,150 lap most, és én valójában frissítéséhez kap, hogy működik. 184 00:10:44,150 --> 00:10:50,180 Ó, sajnálom. 185 00:10:50,180 --> 00:10:52,320 Szereti, hogy egy véletlenszerű példát. 186 00:10:52,320 --> 00:10:54,700 Oké, akkor használd ezt a példát, akkor helyette. 187 00:10:54,700 --> 00:11:01,330 >> Az ötlet van ez API van, 188 00:11:01,330 --> 00:11:05,330 és láthatjuk pontosan mi az API visszatér. 189 00:11:05,330 --> 00:11:10,220 Ez az, amit az alkalmazás egyre vissza az API miután elküldte a kérést. 190 00:11:10,220 --> 00:11:13,680 Hadd nagyítani egy kicsit, 191 00:11:13,680 --> 00:11:18,340 és mi is látni alapvetően ez csak egy sor kulcsfontosságú érték párokat JSON. 192 00:11:18,340 --> 00:11:23,220 Más szóval, itt van ez a HashMap itt ez feltérképezése értékeket. 193 00:11:23,220 --> 00:11:26,440 Más szavakkal, ez feltérképezése években értékeket. 194 00:11:26,440 --> 00:11:32,600 1765-ben, amit szóval kezdetben keresett használt 90-szer 195 00:11:32,600 --> 00:11:35,810 az 1 millió, tehát vagyunk, hogy újra ezt az eredményt. 196 00:11:35,810 --> 00:11:40,280 Ez nem pontosan JSON mert van ez a kis eredmény fejléc van, 197 00:11:40,280 --> 00:11:45,630 de vegyük észre, hogy ez az egész tárgy itt csak egy hatalmas JSON blob. 198 00:11:45,630 --> 00:11:51,070 Van egy tömb van, amely az egész elemet, 199 00:11:51,070 --> 00:11:55,590 és láthatjuk, hogy az egész elem véget ér ott, és akkor van egy másik nagy eleme 200 00:11:55,590 --> 00:11:59,430 hogy megy egészen a végéig, és itt ér véget. 201 00:11:59,430 --> 00:12:02,200 Van egy nagyon nagy tömb, 2 tárgy került bele, 202 00:12:02,200 --> 00:12:04,630 és minden egyes ilyen tárgyak egy HashMap. 203 00:12:04,630 --> 00:12:07,340 Láthatjuk egyes fenti hashmaps van egy leképezés 204 00:12:07,340 --> 00:12:12,700 E mutató értéke 0 lesz, és ezt az értéket értéke egy másik HashMap, 205 00:12:12,700 --> 00:12:18,360 ami ismét a feltérképezése X tengely értékeit Y tengely értékeket. 206 00:12:18,360 --> 00:12:20,970 >> Láthatjuk JSON kap egy kicsit bonyolult, de összességében, 207 00:12:20,970 --> 00:12:24,190 ez valóban nagyon hasznos, és nagyon könnyen megközelíthető, mint a 208 00:12:24,190 --> 00:12:27,390 egyéb különböző formái jelöléssel. 209 00:12:27,390 --> 00:12:30,550 Ami mi vagyunk valójában küld adatokat a API kap, 210 00:12:30,550 --> 00:12:34,690 Én megyek be a hátsó egy kicsit itt. 211 00:12:34,690 --> 00:12:39,850 Ez a nagy JavaScript fájlt, ami kezelés minden kölcsönhatások a web app, 212 00:12:39,850 --> 00:12:44,810 és így nem érdekli a legtöbb, de mi érdekel egy részét. 213 00:12:44,810 --> 00:12:47,410 Például, mi érdekli ez buildQuery funkciót, 214 00:12:47,410 --> 00:12:50,670 valamint azt az elképzelést, ez a funkció alapvetően ez nézelődök az oldalon, 215 00:12:50,670 --> 00:12:53,750 kitalálni, amit a felhasználó szeretne lekérdezni, más szóval, 216 00:12:53,750 --> 00:12:57,090 ellenőrzi ezeket a dobozokat, ahol volna be a keresési kifejezések, 217 00:12:57,090 --> 00:13:01,380 ellenőrzése, a különböző Y és az X tengely értékeit, hogy már választott, és minden ilyesmi, 218 00:13:01,380 --> 00:13:06,650 és ez fog kiköp a lekérdezés értéket, amit aztán elküld az API. 219 00:13:06,650 --> 00:13:09,180 >> Ez úgy néz ki, bonyolult, és ez elég bonyolult 220 00:13:09,180 --> 00:13:18,090 de mit fogok csinálni, sőt, én már ezt, ami nagyszerű, 221 00:13:18,090 --> 00:13:21,640 az, hogy én megyek, hogy a konzol, hogy nyomtassa ki pontosan, hogy a lekérdezési érték 222 00:13:21,640 --> 00:13:28,110 hogy ez küld ki, hogy az API. 223 00:13:28,110 --> 00:13:30,870 Ez tulajdonképpen itt van. Sajnáljuk, de a kimenet egy csomó dolgot. 224 00:13:30,870 --> 00:13:33,690 De ez az, amit mi érdekli ez a tárgy itt. 225 00:13:33,690 --> 00:13:35,300 Ez a lekérdezés objektum. 226 00:13:35,300 --> 00:13:40,670 Más szavakkal, pontosan ez a web alkalmazás küld az API, 227 00:13:40,670 --> 00:13:45,730 és így nézzük meg belülről egy kicsit, és azt látjuk, hogy van egy pár értéket itt. 228 00:13:45,730 --> 00:13:48,710 Úgy látjuk, hogy van ez a száma, típusa, amely az események egy millió szó, 229 00:13:48,710 --> 00:13:51,460 amely pontosan mi az, amit választott az Y tengelyen ide. 230 00:13:51,460 --> 00:13:53,740 Ez az, ahol ez jön. 231 00:13:53,740 --> 00:13:58,010 Van egy adatbázis-értéket, ami azt jelenti, hogy van néhány bizonyos adatbázisból 232 00:13:58,010 --> 00:14:01,610 hogy ezek az adatok nem él, és szeretnénk elérni, hogy az adatok kifejezetten 233 00:14:01,610 --> 00:14:04,950 szemben az baba nevek például adatok. 234 00:14:04,950 --> 00:14:08,320 Aztán itt van ez a csoport értéket, 235 00:14:08,320 --> 00:14:12,090 amely azt mondja, hogy azt akarjuk, hogy keresni évre, szemben a 236 00:14:12,090 --> 00:14:16,030 egyéb X tengely értéke. 237 00:14:16,030 --> 00:14:19,040 Aztán van egy módszer, amely bizonyos API fog tenni több dolgot. 238 00:14:19,040 --> 00:14:22,360 Más szóval, ez a API is visszatérhet más típusú adatok, 239 00:14:22,360 --> 00:14:27,740 de ebben az esetben, azt akarjuk, hogy a feltérképezésére X tengely értékek Y tengely értékeket. 240 00:14:27,740 --> 00:14:30,730 Ez az, hogy mit mond, hogy ezt ott, 241 00:14:30,730 --> 00:14:35,020 és mi van a keresést korlátok tömb, amely 2 érték. 242 00:14:35,020 --> 00:14:40,720 Az első az, amit itt látunk, amely az összes érték 243 00:14:40,720 --> 00:14:43,020 tartalmazott, hogy az első kis doboz tetején. 244 00:14:43,020 --> 00:14:47,570 >> Más szavakkal, azt akarjuk, hogy keresse meg a szót csatát, és azt akarjuk, szűrjük le 245 00:14:47,570 --> 00:14:51,920 az angol nyelvű szöveg belüli amerikai irodalom. 246 00:14:51,920 --> 00:14:54,590 Van ebben az országban, amely az Amerikai Egyesült Államok. 247 00:14:54,590 --> 00:14:59,130 Van egy nyelv, amely angol, tehát mindezen különböző részein 248 00:14:59,130 --> 00:15:02,690 hogy mind mond API pontosan mit akarunk. 249 00:15:02,690 --> 00:15:04,940 Azt nem tudom, mi az adatokat, hogy vissza még, 250 00:15:04,940 --> 00:15:10,970 de tudjuk, hogy az adatokat fog tartani egy bizonyos formában. 251 00:15:10,970 --> 00:15:13,650 Ez a példa a fajta a bonyolult oldalon, 252 00:15:13,650 --> 00:15:16,180 és akkor nem feltétlenül használ API ebben az összetett, 253 00:15:16,180 --> 00:15:20,600 de ez, hogy mutassa meg a tartomány és a teljesítmény, amit API képes. 254 00:15:20,600 --> 00:15:24,980 Más szóval, egy viszonylag egyszerű lekérdezést rendszerünk alapvetően van egy beviteli mezőbe 255 00:15:24,980 --> 00:15:29,490 néhány más választók különböző helyeken. 256 00:15:29,490 --> 00:15:32,010 >> Hadd zoom vissza ide. 257 00:15:32,010 --> 00:15:37,720 Van egy beviteli mezőbe a néhány különböző metaadat kiválasztást, 258 00:15:37,720 --> 00:15:40,610 és mi van Y-tengely és az X tengely beállításokat. 259 00:15:40,610 --> 00:15:42,830 Mi valójában nem is, hogy számos területen, 260 00:15:42,830 --> 00:15:46,210 és láthatjuk, nagyon könnyen vagyunk képesek lekérdezni valamilyen API 261 00:15:46,210 --> 00:15:48,510 és kap adatokat vissza, majd helyezze be a chart, 262 00:15:48,510 --> 00:15:52,080 amelyet ezután fog megjeleníteni egy hasznos módon. 263 00:15:52,080 --> 00:15:54,970 Ahhoz, hogy nézd meg egy másik példát, hogy lehet egy kicsit jobban ismerik a srácok 264 00:15:54,970 --> 00:15:56,510 fogunk fordulni a Facebookon. 265 00:15:56,510 --> 00:15:59,440 Facebook API hívják Facebook Graph, 266 00:15:59,440 --> 00:16:04,390 és alapvetően mit jelent a Facebook úgy látja magát, mint ez a hatalmas adatbázisban 267 00:16:04,390 --> 00:16:08,000 A sok különböző alkatrészek mindegyike bizonyos összefüggések egymással. 268 00:16:08,000 --> 00:16:11,070 Más szóval, én vagyok a felhasználó a Facebook-on, úgyhogy van egy profilt, 269 00:16:11,070 --> 00:16:14,310 és nekem is van néhány barátok, és mindegyikük egy profilt, 270 00:16:14,310 --> 00:16:17,580 és minden barátom van egy fal, amely a különböző megjegyzéseket rá, 271 00:16:17,580 --> 00:16:20,800 és minden egyes ilyen észrevételeket is szereti, és minden ilyesmi. 272 00:16:20,800 --> 00:16:23,100 >> Van sok különböző részein a Facebookon. 273 00:16:23,100 --> 00:16:26,670 Ez egy rendkívül összetett API, és van rengeteg, amit tehetünk vele, 274 00:16:26,670 --> 00:16:28,450 de valójában nagyon egyszerű a használata. 275 00:16:28,450 --> 00:16:33,680 Fogom kezdeni ki megy graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 ami az én egyedi fiók nevét, és a fiók neve vagy legyen 277 00:16:38,430 --> 00:16:43,710 valamilyen szó, ha már választott, vagy talán csak egy számsorozat. 278 00:16:43,710 --> 00:16:46,360 Amit vissza elég alapvető információkat. 279 00:16:46,360 --> 00:16:50,460 Látjuk, hogy van egy keresztnevet, ami Billy, a vezetéknév, ami Janitsch. 280 00:16:50,460 --> 00:16:53,370 Van egy egyedi Facebook azonosítóddal általam. 281 00:16:53,370 --> 00:16:57,920 Láthatod, hogy én vagyok a férfi és hogy az én nyelvi beállítás 282 00:16:57,920 --> 00:17:01,290 a brit angol. 283 00:17:01,290 --> 00:17:03,490 Más szóval, látjuk nagyon alapvető információk itt. 284 00:17:03,490 --> 00:17:08,670 Ez nem túl sok, de ez nem ad nekünk egy ötlet, hogy mi van ott. 285 00:17:08,670 --> 00:17:10,849 >> Meg tudjuk csinálni ugyanezt David Malan, pl. 286 00:17:10,849 --> 00:17:13,599 Azt hiszem, az ő neve dmalan. 287 00:17:13,599 --> 00:17:16,369 Látjuk David Malan van egy egyedi azonosító. 288 00:17:16,369 --> 00:17:19,300 Van egy név, utónév, középső név, vezetéknév. 289 00:17:19,300 --> 00:17:24,210 Azt is látjuk, hogy ő a férfi és megvan a beállított nyelv az amerikai angol. 290 00:17:24,210 --> 00:17:26,869 Más szóval, látjuk elég alap információk itt. 291 00:17:26,869 --> 00:17:28,860 Nos, mi történik, ha megpróbáljuk, és nézd meg valami mást? 292 00:17:28,860 --> 00:17:33,060 Tegyük fel, hogy én vagyok érdekel, hogy mit David Malan már tetszett a Facebook-on. 293 00:17:33,060 --> 00:17:36,860 Meg tudom csinálni / szeret. Most már befut egy kis probléma. 294 00:17:36,860 --> 00:17:39,280 Van valami hiba, hogy azt mondja egy hozzáférési token 295 00:17:39,280 --> 00:17:41,660 köteles kérni ehhez az erőforráshoz. 296 00:17:41,660 --> 00:17:44,730 De ha belegondolsz, hogy valóban van értelme, mert furcsa lenne 297 00:17:44,730 --> 00:17:47,830 ha meg tudná elérni minden egyes részét Facebook adatbázisában 298 00:17:47,830 --> 00:17:50,170 Csak néhány fajta egyszerű API, ugye? 299 00:17:50,170 --> 00:17:56,040 Más szóval, feltehetően az adatokat nem lehet hozzáférni, bárki, aki akarja. 300 00:17:56,040 --> 00:17:58,330 >> Ez a hiba pontosan, hogy ez mit jelent. 301 00:17:58,330 --> 00:18:03,630 Egyes APIs szükségük van bizonyos engedélyeket való hozzáférés érdekében az adatokat. 302 00:18:03,630 --> 00:18:06,940 És még fejlettebb API-k, mint a Facebook egyik, 303 00:18:06,940 --> 00:18:09,840 lesz szükség bizonyos engedélyeket bizonyos dolgokat. 304 00:18:09,840 --> 00:18:12,650 Látom, ez az alapvető információkat David Malan. 305 00:18:12,650 --> 00:18:15,950 Látom, hogy ő a férfi, és hogy él az Egyesült Államokban, 306 00:18:15,950 --> 00:18:19,270 de nem igazán látni semmit múlt. 307 00:18:19,270 --> 00:18:23,050 Hogy ezt most, a Facebook már ezt a szép eszköz 308 00:18:23,050 --> 00:18:27,690 amely a grafikon API explorer, és az ötlet, ami akkor egyfajta 309 00:18:27,690 --> 00:18:31,880 töltsük fel engedélyek magadnak alapján a saját számlájára 310 00:18:31,880 --> 00:18:35,680 majd tekintse meg a dolgokat, amelyek kifejezetten a fiókjában megtekintheti. 311 00:18:35,680 --> 00:18:45,120 Például, ha én graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Hoppá, azt hiszem, meg kell újraérvényesítéséhez a token itt. 313 00:18:53,510 --> 00:18:55,950 Oké. 314 00:18:55,950 --> 00:19:01,740 Ha tudom, hogy ismét remek, most látom, hogy értem ezt az objektumot vissza 315 00:19:01,740 --> 00:19:06,300 amely azt mondja, hogy szeretem medence tészta, amely ebben a kategóriában Játékok és játékok. 316 00:19:06,300 --> 00:19:08,620 Szeretem a rozmár, amelyek a kategória Animal. 317 00:19:08,620 --> 00:19:10,180 Ezek az én valódi Facebook szeret. 318 00:19:10,180 --> 00:19:13,280 Ők ilyen kínos. 319 00:19:13,280 --> 00:19:16,090 >> De látjuk, ez az adat az összes visszaadott JSON. 320 00:19:16,090 --> 00:19:18,160 Elég olvasható. 321 00:19:18,160 --> 00:19:20,970 Más szavakkal, van ez a leképezés az adatok valamilyen egy tömb, 322 00:19:20,970 --> 00:19:25,220 és minden egyes eleme a tömb olyan HashMap ami leképezi a 323 00:19:25,220 --> 00:19:28,530 a neve külleme és a kategória valamely hasonló. 324 00:19:28,530 --> 00:19:31,240 Minden, mint egy egyedi azonosítót. 325 00:19:31,240 --> 00:19:34,510 Vannak mindenféle más dolgot adatok, hogy tudnánk, 326 00:19:34,510 --> 00:19:37,980 és ha érdekel a Facebook API irányuló CS50 projekt végső 327 00:19:37,980 --> 00:19:40,720 vagy ilyesmi, hogy ez valójában meglehetősen megvalósítható. 328 00:19:40,720 --> 00:19:44,260 Alapvetően, hogyan lehet megkerülni a hitelesítés dolog Facebook 329 00:19:44,260 --> 00:19:48,030 használja nevezett rendszert OAuth, vagy az Open Authentication, 330 00:19:48,030 --> 00:19:52,870 és nem akarok belemenni, hogy most, mert OAuth, vagy a különböző típusú 331 00:19:52,870 --> 00:19:56,060 hitelesítés általában nagyon változóak a különböző API-k, 332 00:19:56,060 --> 00:19:58,320 így tudtam tölteni egy hosszú ideje megy át minden egyes, 333 00:19:58,320 --> 00:20:01,170 de ők valójában elég magától értetődő. 334 00:20:01,170 --> 00:20:04,050 >> Ha a Google a Facebook API nagyon olvasható. 335 00:20:04,050 --> 00:20:06,670 Van egy egész spec. 336 00:20:06,670 --> 00:20:10,210 Például, ez a dokumentáció a Facebook API, 337 00:20:10,210 --> 00:20:14,170 és láthatjuk vagyok a felhasználói oldalon, így tudok mindent megtudhat a különféle dolgokat 338 00:20:14,170 --> 00:20:17,170 állnak rendelkezésre, hogy kap, amennyire az adatok 339 00:20:17,170 --> 00:20:21,550 valamint a különböző engedélyeket, amire szükségem van ahhoz, hogy elérhesse őket. 340 00:20:21,550 --> 00:20:25,470 Mint láttuk, nem kell jogosultsága a nevét vagy a nemek, 341 00:20:25,470 --> 00:20:29,380 de azon túl, hogy mi szükség van engedélyeket a legtöbb dolog. 342 00:20:29,380 --> 00:20:33,040 Ez az oldal, vagy inkább ezt a weboldalt is megmondja, hogyan lehet 343 00:20:33,040 --> 00:20:35,640 a token, hogy képes legyen hitelesíteni magát. 344 00:20:35,640 --> 00:20:39,290 A legtöbb hitelesítési rendszerek használata valamiféle token 345 00:20:39,290 --> 00:20:42,880 ahol megkapod ezt az egyedülálló értéket, ami egy igazán hosszú és véletlenszerű string, 346 00:20:42,880 --> 00:20:46,240 és így tudják társítani a kérést, hogy te, hogy veled. 347 00:20:46,240 --> 00:20:50,560 Más szóval, tudják, hogy te nem csinálsz semmit, gyanús, hogy adatokat. 348 00:20:50,560 --> 00:20:53,340 Ők pontosan tudják, mit kapsz. 349 00:20:53,340 --> 00:20:56,180 Azt is tudom, hogy van engedélye, hogy megtekinthesse ezt az információt. 350 00:20:56,180 --> 00:20:59,110 >> Ha már készített egy Facebook app, és a app van egyes felhasználók, 351 00:20:59,110 --> 00:21:03,380 valamint azokat a felhasználókat lehetővé tették, hogy az app hozzáférést bizonyos részeit a profiljukat, 352 00:21:03,380 --> 00:21:07,790 akkor bármilyen API kulcsot vagy token hogy app használ 353 00:21:07,790 --> 00:21:11,090 lesz képes hozzáférni az adatokhoz, azon felhasználók számára. 354 00:21:11,090 --> 00:21:13,780 Ez tűnhet bonyolult, de ez nem túl rossz, 355 00:21:13,780 --> 00:21:16,810 és ha szeretné használni a Facebook azt ajánlom, hogy 356 00:21:16,810 --> 00:21:18,990 fontolja játék körül azok API. 357 00:21:18,990 --> 00:21:21,610 Ez nagyon cool, és meg tudod csinálni egy csomó más dolgot is. 358 00:21:21,610 --> 00:21:24,880 Ha a felhasználó megadja neked ezeket a jogosultságokat, akkor te is menj vissza az API 359 00:21:24,880 --> 00:21:28,820 és mondd azt akarom, hogy valóban tölteni ezt a felhasználói falra, vagy akarom őket berakni egy fényképet, 360 00:21:28,820 --> 00:21:32,390 és ezért a hírcsatorna akkor néha azok bosszantó dolgok 361 00:21:32,390 --> 00:21:37,840 mondván ismerőse nézte ezt a videót valamilyen furcsa helyszínen, vagy valami ilyesmi. 362 00:21:37,840 --> 00:21:43,120 Ennek oka, hogy az app hozzáférést kapott tegye az adott személy falat. 363 00:21:43,120 --> 00:21:48,350 Az elképzelés összességében a Facebook API elég bonyolult, de nagyon hasznos. 364 00:21:48,350 --> 00:21:53,220 Mindenképpen érdemes megnézni, ha még mindig keresi a végleges projekt. 365 00:21:53,220 --> 00:21:57,930 >> Egy másik csomag az API-k, hogy én megyek át a CS50 API. 366 00:21:57,930 --> 00:22:00,070 Hadd Nagyításhoz ide. 367 00:22:00,070 --> 00:22:03,390 CS50 ténylegesen össze egy sor API-k 368 00:22:03,390 --> 00:22:07,080 amelyek segítségével a végleges projekt, vagy csak bármi, amit csinálsz. 369 00:22:07,080 --> 00:22:12,830 És ők többnyire Harvard kapcsolódó, és azok eltérnek a Hudson menü 370 00:22:12,830 --> 00:22:17,780 például arra, hogy ezt a Harvard Events API, amely segítségével hozzáférhet egy listát 371 00:22:17,780 --> 00:22:21,290 különböző események folynak a Harvardon, és az ilyesmit. 372 00:22:21,290 --> 00:22:24,510 És így tudjuk kattintson bármelyik ezek egyikét, és kap egy spec rá, 373 00:22:24,510 --> 00:22:28,090 ahol Ön képes lesz arra, hogy megtalálják az esetleges API, és az ötlet 374 00:22:28,090 --> 00:22:33,920 ez lehetővé teszi, tudod, A, konkrétan mit kér az API és hogyan kell ezt kérik. 375 00:22:33,920 --> 00:22:37,370 Más szóval, ha azt akarom, hogy minden esemény zajlanak holnap 376 00:22:37,370 --> 00:22:42,550 akkor mennem nyilván, hogy ez a dátum, amikor szeretnék egy bizonyos formában, 377 00:22:42,550 --> 00:22:46,030 A és B, akkor mondd el, pontosan mit fog, hogy adja vissza nekem. 378 00:22:46,030 --> 00:22:48,590 Meg fogja mondani fogok vissza ezt JSON objektumot, 379 00:22:48,590 --> 00:22:50,960 vagy mint látod, vannak különböző formátumokban. 380 00:22:50,960 --> 00:22:54,050 >> Azt is vissza az adatokat CSV, például. 381 00:22:54,050 --> 00:22:57,620 De tudod, hogy pontosan hogyan, hogy az adatokat fog nézni, ha kap vissza 382 00:22:57,620 --> 00:23:00,610 így számíthat arra, hogy bizonyos dolgok vele. 383 00:23:00,610 --> 00:23:07,240 Mi lehet lapozzunk lefelé, és látni, például, ha azt akarjuk, hogy a lekérdezés az API 384 00:23:07,240 --> 00:23:11,500 , hogy egy naptár, akkor tudjuk használni az adott URL-t 385 00:23:11,500 --> 00:23:16,480 és adja meg bizonyos paraméterek, melyek lesznek az adatok, hogy szeretnénk pontosan. 386 00:23:16,480 --> 00:23:19,540 És hasonlóképpen, ha azt akarjuk, az adatokat vissza egy bizonyos formában, 387 00:23:19,540 --> 00:23:23,790 akkor lehet kérni, hogy a kimeneti adatokat CSV, 388 00:23:23,790 --> 00:23:27,700 és ez csak egy paramétert, hogy mi halad az API. 389 00:23:27,700 --> 00:23:29,210 Sok jó dolgom van. 390 00:23:29,210 --> 00:23:32,550 Azt ajánlom megnézni a CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Fogom nézni ezt Harvard Food API különösen egy kicsit. 392 00:23:36,000 --> 00:23:39,870 Egy dolog, amit ténylegesen tervezett ez a Harvard Noms honlapon, 393 00:23:39,870 --> 00:23:44,930 amely felhasználja a CS50 Food API letölteni a Hudson menü a nap. 394 00:23:44,930 --> 00:23:50,400 És kiterjesztés iskolai emberek, Hudson az étkezési szolgáltatás a Harvardon. 395 00:23:50,400 --> 00:23:55,130 Mit kap az ezen az oldalon, amely tartalmazza az összes étkezést a nap, ezért látjuk ebédre. 396 00:23:55,130 --> 00:23:58,130 Van egy pár különböző kategóriákban. Mi van a bab és a teljes kiőrlésű állomás. 397 00:23:58,130 --> 00:24:00,340 Mi van a barna rizs állomás. 398 00:24:00,340 --> 00:24:03,360 Láthatjuk a brunch van ez a néhány élelmiszer-ipari termékek. 399 00:24:03,360 --> 00:24:07,030 Ha kattints rájuk, akkor kap a táplálkozási információkkal. 400 00:24:07,030 --> 00:24:12,240 Látod, ez a táplálkozási információkat grapefruit, abban az esetben, ha csak kíváncsi vagy. 401 00:24:12,240 --> 00:24:14,870 És így megint megyünk peer a back end itt egy kicsit 402 00:24:14,870 --> 00:24:18,530 , és mi pontosan ezt csinál, hogy ezeket az adatokat. 403 00:24:18,530 --> 00:24:21,710 És kiderül, hogy valójában nem is nagyon bonyolult egyáltalán. 404 00:24:21,710 --> 00:24:28,720 Ez a fájl úgy néz ki, egy kicsit rendetlen, de ne feledjük, hogy ez a kezelés az egész honlap, 405 00:24:28,720 --> 00:24:34,130 és ha görgessen látjuk ezt Adatok módosítása funkció. 406 00:24:34,130 --> 00:24:36,630 >> Nos, csak hogy tisztázzuk, ez van írva a CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 amely a nyelv, akkor valószínűleg még nem látott. 408 00:24:39,570 --> 00:24:44,810 De ez elég olvasható, úgyhogy járni rajta, mintha pszeudokód. 409 00:24:44,810 --> 00:24:49,080 Válasszon dátumot egy olyan funkció, hogy fog venni az ezen időpont érték, 410 00:24:49,080 --> 00:24:51,740 és ez is fog tartani az első, amit nem érdekel annyira. 411 00:24:51,740 --> 00:24:54,110 De a lényeg az, hogy ez a dátum, 412 00:24:54,110 --> 00:25:00,080 , és ez az időpont az a nap, szeretnénk kérni az összes élelmiszer tételek. 413 00:25:00,080 --> 00:25:04,030 És akkor látni, hogy van egy kis szintaxis itt, 414 00:25:04,030 --> 00:25:09,000 amely alapvetően elemzésekor napon át olvasható formátumban. 415 00:25:09,000 --> 00:25:11,920 Más szóval, az API használatához szükséges a dátum egy bizonyos formátumban. 416 00:25:11,920 --> 00:25:17,390 Nem lehet mondjuk november 16, 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Ez nem tudom, mit tegyek vele. Azt kívánja, hogy a dátum egy meghatározott formátumban. 418 00:25:20,320 --> 00:25:23,230 Minden, amit csinálunk itt ad pontosan ebben a formátumban, 419 00:25:23,230 --> 00:25:26,520 amely egy év értéket, majd egy kötőjelet, egy hónap érték, 420 00:25:26,520 --> 00:25:29,420 egy kötőjel és a dátum értékét. 421 00:25:29,420 --> 00:25:34,910 És mi is azt akarjuk, hogy az adat kimenet JSON. 422 00:25:34,910 --> 00:25:37,560 >> Most pedig, hogy ezt AJAX kérést, és ahogy korábban említettem, 423 00:25:37,560 --> 00:25:41,680 jQuery van ez szuper hasznos AJAX funkció, amely csak annyit kell tennie, hogy adja meg 424 00:25:41,680 --> 00:25:45,780 néhány paramétert le itt, és akkor kapsz vissza, hogy pontosan mit akar. 425 00:25:45,780 --> 00:25:50,490 Azt mondod azt, hogy az URL-címet azt akarjuk, hogy menjen ez a CS50 Food API, 426 00:25:50,490 --> 00:25:52,270 amit kapott a spec. 427 00:25:52,270 --> 00:25:56,730 Azt mondjuk, hogy szeretnénk az adatokat JSON, és hogy 428 00:25:56,730 --> 00:25:59,490 fogjuk, hogy ez az adat, amely általunk definiált itt. 429 00:25:59,490 --> 00:26:02,670 Ez az a nap, amikor szeretné, hogy az élelmiszer-ipari termékek számára. 430 00:26:02,670 --> 00:26:07,790 És akkor minden, amit meg kell tennie, hogy meghatározza valamilyen siker funkció, 431 00:26:07,790 --> 00:26:11,980 ami tulajdonképpen mi történik, ha az API visszatér az adatokat. 432 00:26:11,980 --> 00:26:15,490 Más szóval, most már csomagolt fel minden paraméter azt akarjuk, 433 00:26:15,490 --> 00:26:20,530 amely ebben az esetben az a nap, hogy azt akarjuk, és az a tény, hogy azt akarjuk, hogy a JSON, 434 00:26:20,530 --> 00:26:23,840 és küldtünk ki az API, így most az API azt mondja, oké, 435 00:26:23,840 --> 00:26:26,350 itt az adatokat, kaptam vissza az Ön számára. 436 00:26:26,350 --> 00:26:29,930 Megvan a siker funkció, ami azt jelenti, tekintettel arra, hogy az API 437 00:26:29,930 --> 00:26:32,230 sikeresen visszatér néhány adat, mit csináljunk vele? 438 00:26:32,230 --> 00:26:35,980 >> És kiderül, hogy minden, amit tennie, hogy hívja ezt a frissítést menüfunkcióba 439 00:26:35,980 --> 00:26:42,680 azzal, amit az API visszatért, így tudjuk keresni, hogy a 440 00:26:42,680 --> 00:26:47,970 és látom, hogy minden, amit csinálunk használ egy csomó új szintaxis itt 441 00:26:47,970 --> 00:26:52,220 hogy frissítse a HTML és helyezze az új adatokat. 442 00:26:52,220 --> 00:26:56,580 Mi ez lehetővé teszi, hogy az, hogy mi ezeket nyilak mindkét oldalon, és mi lehet kattintani, 443 00:26:56,580 --> 00:27:01,060 és most keresünk az adatokat a következő nap, és újra a következő napon, 444 00:27:01,060 --> 00:27:04,820 és minden alkalommal ez frissítése említett időpont értéket és lekérdezésére az API, 445 00:27:04,820 --> 00:27:07,510 kapok vissza, néhány adat, és üzembe helyezése a helyszínen. 446 00:27:07,510 --> 00:27:10,590 Ismét láthatjuk, szuper, szuper hasznos. 447 00:27:10,590 --> 00:27:14,410 Ez app elvitt néhány órát, hogy csapkod össze, 448 00:27:14,410 --> 00:27:20,140 és én egy kicsit több tapasztalattal, természetesen, de a CS50 projekt végső 449 00:27:20,140 --> 00:27:22,870 nézd valami nagyon, mint ez. 450 00:27:22,870 --> 00:27:29,540 >> API Szuper erő a mennyiségű erőfeszítést, hogy figyelembe. 451 00:27:29,540 --> 00:27:32,800 Az utolsó dolog, amit megyek át egy néhány API tág. 452 00:27:32,800 --> 00:27:35,480 Nem leszek, amennyire beléjük amennyiben mit csinálnak pontosan, 453 00:27:35,480 --> 00:27:38,740 de adok Önnek egy ötlet, hogy mi van odakint. 454 00:27:38,740 --> 00:27:42,700 2 nagyon hasznos is, ha érdekel az adatok elemzése és vizualizáció 455 00:27:42,700 --> 00:27:45,960 vagy ilyesmi, amelyek Freebase és a Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-feltehetőleg mindannyian tudjátok, egy ingyenes online enciklopédia, 457 00:27:49,800 --> 00:27:53,230 és ez valójában egy API, így ha azt szeretnénk, hogy, például, 458 00:27:53,230 --> 00:27:56,250 kap minden a szövegek és a cikkek polip 459 00:27:56,250 --> 00:27:58,030 akkor nagyon könnyen csinálni. 460 00:27:58,030 --> 00:28:02,300 Csak mondd hé, Wikipedia API, szeretném az adatokat vissza, mint ez, 461 00:28:02,300 --> 00:28:07,010 és azt szeretném, hogy ebben a formátumban, és a cikket szeretném a polip, 462 00:28:07,010 --> 00:28:09,820 és nagyon hamar meg fog adni vissza ezt az információt. 463 00:28:09,820 --> 00:28:12,230 Ez lehet igazán hasznos, ha azt szeretnénk, hogy valamiféle Szótár 464 00:28:12,230 --> 00:28:16,200 ez egy jobb nézőt a Wikipedia, vagy valami ilyesmi. 465 00:28:16,200 --> 00:28:21,350 >> Freebase egyfajta hasonló, bár ez egy kicsit nehezebb, mint amennyire API. 466 00:28:21,350 --> 00:28:24,390 Freebase olyan, mint a Wikipedia, hogy ez egy online enciklopédia 467 00:28:24,390 --> 00:28:29,050 amely sok-sok különböző adatokat mindenféle különböző témák, 468 00:28:29,050 --> 00:28:33,150 de ez tárolt relációs adatbázis, amely némileg eltér Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia a tárgyak és tárgyak kapcsolódnak egyéb cikkek, 470 00:28:36,410 --> 00:28:38,860 de a legtöbb, ha az adatokat polip, 471 00:28:38,860 --> 00:28:41,990 megy a polip cikket, hogy az adatok, és van egy csomó szöveg 472 00:28:41,990 --> 00:28:43,830 mintegy polipok, így ez nagyszerű. 473 00:28:43,830 --> 00:28:46,870 Freebase dolgozik egy kicsit bonyolultabb módon, hogy a 474 00:28:46,870 --> 00:28:48,930 minden kapcsolódik egy másik. 475 00:28:48,930 --> 00:28:52,620 Más szóval, ha keresik octopus 476 00:28:52,620 --> 00:28:54,940 akkor van egy csomó kategória társul hozzá. 477 00:28:54,940 --> 00:28:57,920 >> Például, egy állat, él víz alatt, 478 00:28:57,920 --> 00:28:59,710 van egy bizonyos testhőmérséklet. 479 00:28:59,710 --> 00:29:01,210 Nem tudom. 480 00:29:01,210 --> 00:29:04,230 És mindezen kategóriák linkeket más helyeken, ahol lehet menni 481 00:29:04,230 --> 00:29:06,640 látni a dolgokat, hogy ugyanebben a kategóriában. 482 00:29:06,640 --> 00:29:13,450 Más szóval, a polip adathalmaz tartalmazna egy linket a megadott adatok az összes állatot, 483 00:29:13,450 --> 00:29:16,790 és ez hadd mozoghatunk az adatbázis nagyon gyorsan. 484 00:29:16,790 --> 00:29:21,740 Ez nagyon hasznos lehet, ha csinálsz valami hasonló összehasonlításokat. 485 00:29:21,740 --> 00:29:24,490 Más szóval, mivel egy bizonyos dolog, szeretné látni 486 00:29:24,490 --> 00:29:27,890 mi más ez kapcsolatban, és mi mást ez nem kapcsolódik. 487 00:29:27,890 --> 00:29:30,700 Ez a fajta dolog. Ez hasznos lehet számos módon. 488 00:29:30,700 --> 00:29:34,250 Ha keres nagyobb kihívást jelent, és ahhoz, hogy meg néhány bonyolultabb dolgot 489 00:29:34,250 --> 00:29:38,740 Én úgy vesz egy pillantást a Freebase API. 490 00:29:38,740 --> 00:29:44,670 De nagyrészt, Wikipedia egy nagyon egyszerű hely, hogy menjen, amennyire csak egyre információt. 491 00:29:44,670 --> 00:29:48,340 Egy másik helyen, hogy fogom nézni a Last.fm, és én tényleg megyek a helyszínre 492 00:29:48,340 --> 00:29:53,800 abban az esetben, néhány ember nem ismeri, de a Last.fm alapvetően egy zenei 493 00:29:53,800 --> 00:29:57,220 ízek és ajánlásokat honlapján. 494 00:29:57,220 --> 00:29:59,000 Tudod, hogy egy fiókot. 495 00:29:59,000 --> 00:30:04,250 Kezdje feltöltés zenét a zenelejátszó 496 00:30:04,250 --> 00:30:08,020 a honlap, és alapvetően kezd így zenét ajánlások 497 00:30:08,020 --> 00:30:10,030 alapján, amit hallgatni. 498 00:30:10,030 --> 00:30:14,270 >> Például, ha megy, hogy a profil oldalon, ez az enyém, 499 00:30:14,270 --> 00:30:18,180 láthatjuk, hogy van egy a legutóbb hallgatott zeneszámokat. 500 00:30:18,180 --> 00:30:22,550 Láthatjuk összesített kedvenc művészek, minden ilyesmi, 501 00:30:22,550 --> 00:30:25,280 és újra, van egy nagy API mögött Last.fm, 502 00:30:25,280 --> 00:30:29,360  és tudod használni, hogy nem sok-sok nagyon jó dolog. 503 00:30:29,360 --> 00:30:38,870 Például, elmegyek egy ismerősnek oldalára, aki ezt a Last.fm Tools weboldalon. 504 00:30:38,870 --> 00:30:42,380 Ez valójában egy platform, ami épült Last.fm API, 505 00:30:42,380 --> 00:30:45,420 és ez egy sor nagyon érdekes dolgokat. 506 00:30:45,420 --> 00:30:50,260 Ha jelentkezzen be a felhasználói nevemet, például 507 00:30:50,260 --> 00:30:53,110 Tudom kérik, hogy létrehoz egy tag felhő, például, 508 00:30:53,110 --> 00:30:56,480 és hogy mit fog csinálni az add vissza a képet a 509 00:30:56,480 --> 00:30:59,850 a különböző műfajok és a fajta dolog, hogy szeretem hallgatni. 510 00:30:59,850 --> 00:31:01,410 Hogyan csinálja ezt? 511 00:31:01,410 --> 00:31:05,670 Nagyon alapvetően azt mondja, hogy a Last.fm API itt a felhasználótól. 512 00:31:05,670 --> 00:31:10,710 Szeretném tudni, hogy a műfaj minden dal, amit valaha hallgattam, 513 00:31:10,710 --> 00:31:15,130 és meg tudod csinálni, hogy azáltal, hogy egy nagyon egyszerű AJAX hívást a Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Kapsz vissza egy nagy listát, és akkor nyilván néhány más dolgot tesznek 515 00:31:18,990 --> 00:31:22,280 hogy átalakítsuk azt egy szót felhő, de láthatjuk összesített 516 00:31:22,280 --> 00:31:25,850 nagyon könnyen megközelíthető, és nagyon könnyen használható. 517 00:31:25,850 --> 00:31:30,750 Tényleg szép egy sor dolgot. 518 00:31:30,750 --> 00:31:35,940 >> Azt hiszem, ez az összes azt mondom összességében. 519 00:31:35,940 --> 00:31:39,040 Még egy utolsó dolog fogok említeni mintegy API általában az, hogy a 520 00:31:39,040 --> 00:31:41,840 akkor néha befut valami úgynevezett sebességkorlátozást, 521 00:31:41,840 --> 00:31:44,940 valamint azt az elképzelést, sebességmeghatározó ez nem akarsz visszaélni API. 522 00:31:44,940 --> 00:31:48,130 Más szóval, ez tényleg jó, hogy sok ilyen weboldalak API-k 523 00:31:48,130 --> 00:31:51,070 hogy mehetsz és használata ingyenes. 524 00:31:51,070 --> 00:31:54,460 Azonban, ha így több millió vagy milliárd kérelmek naponta, 525 00:31:54,460 --> 00:31:57,610 Például, ha elakad egy végtelen ciklusba, ami végtelenül lekérdezése 526 00:31:57,610 --> 00:32:00,680 valamilyen API-és kapok vissza a hatalmas mennyiségű adat, 527 00:32:00,680 --> 00:32:04,570 Nyilvánvaló, hogy ez nem jó, akkor mi van a sok API tennie, hogy ezt az arányt korlátozó funkció 528 00:32:04,570 --> 00:32:09,970 hogy azt mondja, csak akkor tudjuk, hogy 1000 kéréseket naponta IP-címét, vagy valami ilyesmi. 529 00:32:09,970 --> 00:32:12,540 És ha csinálsz egy csomó vizsgálatok és az ilyesmit, 530 00:32:12,540 --> 00:32:14,890 akkor néha befut, hogy, és hirtelen leáll leszopott 531 00:32:14,890 --> 00:32:18,280 és azt mondják, nem, én nem így többé adatokat. 532 00:32:18,280 --> 00:32:20,000 >> Mit akarok a játszani a szabályokat. 533 00:32:20,000 --> 00:32:22,950 Azt szeretnénk, hogy győződjön meg arról, hogy olvassa el az API spec figyelmesen. 534 00:32:22,950 --> 00:32:26,330 Ha van egyes szabályok társulnak hozzá, mint te csak akkor tud X lekérdezések naponta 535 00:32:26,330 --> 00:32:30,000 vagy akár csak a hozzáférést egy az adatbázis egy részének egy bizonyos számú alkalommal 536 00:32:30,000 --> 00:32:32,900 vagy valami ilyesmi, azt szeretnénk, hogy győződjön meg róla, hogy tapadnak. 537 00:32:32,900 --> 00:32:38,360 Mindaddig, amíg játszani az említett szabályokat, akkor valószínűleg egy nagyon szép időt API-k. 538 00:32:38,360 --> 00:32:42,030 A teljes elvihető API nagyon, nagyon hasznos. 539 00:32:42,030 --> 00:32:45,610 >> Van egy API-t szinte minden nagyobb webes szolgáltatás odakint. 540 00:32:45,610 --> 00:32:50,700 Elég sok olyan része a Google Tools Suite, a Google Maps, a Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, a Google Naptár, mindezen dolgok API. 542 00:32:54,390 --> 00:32:58,280 Használhatod őket, hogy mind a ketten az adatokat a szerver és adatokat küldeni a szerverre. 543 00:32:58,280 --> 00:33:00,870 Más szóval, ha akarod, hogy egy naptár alkalmazás, amely lehet frissíteni 544 00:33:00,870 --> 00:33:04,190 valakinek a Google Calendar, van egy API-e. 545 00:33:04,190 --> 00:33:07,810 Ha azt szeretnénk, hogy győződjön meg valamit, ami fogja mondani, hogy hol 546 00:33:07,810 --> 00:33:12,530 a helyét egy bizonyos cím akkor használja a Google Maps API-e. 547 00:33:12,530 --> 00:33:15,860 API fantasztikusan hasznos, és ők mindenütt. 548 00:33:15,860 --> 00:33:18,700 Ha érdekel valami ötlet, 549 00:33:18,700 --> 00:33:22,170 ott talán egy kapcsolódó API segítségével kap egy csomó adat 550 00:33:22,170 --> 00:33:25,060 nagyon gyorsan és nagyon egyszerűen. 551 00:33:25,060 --> 00:33:28,140 >> Ha még mindig keres egy projekt, vagy ha egyszerűen csak szeretne játszani körül 552 00:33:28,140 --> 00:33:31,820 valami általában API érdemes csinál. 553 00:33:31,820 --> 00:33:37,200 Köszönöm, és örülök, hogy válaszoljon a kérdésekre, hogy ti esetleg. 554 00:33:37,200 --> 00:33:44,900 Oké, köszi. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]