1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminar] [Uvod programer za 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 >> Pozdravljeni vsi, jaz sem Billy, in danes bom govoril o API-jev, 5 00:00:12,100 --> 00:00:15,220 ali vmesnikov za programiranje aplikacij, 6 00:00:15,220 --> 00:00:20,040 zlasti v okviru CS50 končnih projektov in take stvari. 7 00:00:20,040 --> 00:00:22,490 Na splošno, kaj je API? 8 00:00:22,490 --> 00:00:25,530 V zelo široko, to je neke vrste srednji človek, ki omogoča 2 kosa 9 00:00:25,530 --> 00:00:28,610 programske opreme za medsebojno komunikacijo. 10 00:00:28,610 --> 00:00:32,530 To je neke vrste zelo široke opredelitve in ni, da je to pomembno za tisto, kar smo iskali na. 11 00:00:32,530 --> 00:00:35,450 Kaj si resnično želimo, je neke vrste uporabne, ker srednjega 12 00:00:35,450 --> 00:00:40,570 komunicirati z neke vrste podatkovne baze nekje. 13 00:00:40,570 --> 00:00:43,310 >> Tukaj je karta, in v bistvu gre za to, da 14 00:00:43,310 --> 00:00:46,790 smo vloga, in želimo, da bi dobili podatke iz zbirke podatkov, 15 00:00:46,790 --> 00:00:49,570 vendar ne želimo, da zbirko podatkov neposredno. 16 00:00:49,570 --> 00:00:52,710 Namesto tega želimo iti skozi tovrstne srednji človek, je API. 17 00:00:52,710 --> 00:00:55,440 Ideja, da je številka 2 in 3 na grafikonu 18 00:00:55,440 --> 00:00:57,750 sta bo zelo zapleten in neurejen. 19 00:00:57,750 --> 00:00:59,960 Z drugimi besedami, ko je poizvedovanje API baze podatkov, 20 00:00:59,960 --> 00:01:03,300 to je verjetno, da bo lahko z uporabo SQL tabele in vse te vrste stvari, 21 00:01:03,300 --> 00:01:05,489 in smo se naučili nekaj o tem v CS50, vendar na splošno, 22 00:01:05,489 --> 00:01:07,590 ste opazili, da je malo bolečine. 23 00:01:07,590 --> 00:01:10,590 To postane zelo, zelo zapleten in neurejen, še posebej, če delate 24 00:01:10,590 --> 00:01:12,530 kompleksna vprašanja in da se takšne stvari. 25 00:01:12,530 --> 00:01:15,960 >> Kaj si resnično želimo, je nekakšen uporaben in enostaven način 26 00:01:15,960 --> 00:01:19,780 , da bi dobili te podatke, in to je ideja, številke 1 in 4 na grafikonu. 27 00:01:19,780 --> 00:01:23,600 Z drugimi besedami, želimo resnično preprost način povedati, da API, kaj bi dobili za nas 28 00:01:23,600 --> 00:01:27,760 in zelo preprost način, da bi dobili podatke nazaj. 29 00:01:27,760 --> 00:01:33,020 Obstaja ena glavna način, da se take podatke običajno poslanih in prejetih 30 00:01:33,020 --> 00:01:36,490 ki je JSON, ali zapis JavaScript Object. 31 00:01:36,490 --> 00:01:40,370 To se lahko razlikujejo malo, kolikor je kako poslati zahtevek za API. 32 00:01:40,370 --> 00:01:43,210 Z drugimi besedami, če hočeš nekaj določeno količino podatkov, 33 00:01:43,210 --> 00:01:46,670 kako povedati API, da bi dobili, da se podatki lahko razlikujejo malo. 34 00:01:46,670 --> 00:01:49,210 Ponavadi gre za izdelavo neke vrste prošnjo omrežja. 35 00:01:49,210 --> 00:01:53,130 Z drugimi besedami, dostop do neke vrste URL, ki se bo povedal API 36 00:01:53,130 --> 00:01:56,190 točno tisto, kar želite, vendar podatki, je skoraj vedno pošljejo nazaj, 37 00:01:56,190 --> 00:01:59,530 z drugimi besedami, številka 4 v JSON. 38 00:01:59,530 --> 00:02:01,030 >> Kaj je JSON točno? 39 00:02:01,030 --> 00:02:03,030 Kot sem rekel, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 To je v bistvu univerzalni standard za pošiljanje in prejemanje podatkov. 41 00:02:07,090 --> 00:02:11,410 Ideja je, da imate te 3 vrste stvari. 42 00:02:11,410 --> 00:02:13,540 Imate nize, hashmaps in primitivcev. 43 00:02:13,540 --> 00:02:16,580 Polja in hashmaps si pogledal malo v CS50, 44 00:02:16,580 --> 00:02:19,870 ampak si nekako prišel zelo strog čut za to, kar so. 45 00:02:19,870 --> 00:02:22,780 Z drugimi besedami, z nizi veste, da oni tip omejeni, 46 00:02:22,780 --> 00:02:26,560 tako da imate samo eno vrsto tipa, ki gre skozi celoten niz. 47 00:02:26,560 --> 00:02:29,310 JSON je veliko bolj prizanesljiva z take stvari. 48 00:02:29,310 --> 00:02:33,590 V bistvu ideja je, da zgraditi ta objekt, 49 00:02:33,590 --> 00:02:36,270 , ki je lahko sestavljena iz katerega koli od teh 3 stvari 50 00:02:36,270 --> 00:02:39,470 in je lahko sestavljena iz več tiste od njih, in jih je mogoče gnezditi. 51 00:02:39,470 --> 00:02:42,110 >> Tukaj je vrsta primer JSON, 52 00:02:42,110 --> 00:02:47,910 ki je te Zaviti oklepaji tu predstavljajo svoje HashMap, 53 00:02:47,910 --> 00:02:51,400 in HashMap je v bistvu preslikava iz nekakšnega ključa 54 00:02:51,400 --> 00:02:53,340 do neke vrednosti. 55 00:02:53,340 --> 00:02:56,440 Boste videli, da tu imamo lastnosti ključa, 56 00:02:56,440 --> 00:02:59,600 in da je kartiranje na paleto, ki je vsa ta stvar. 57 00:02:59,600 --> 00:03:04,120 Bomo videli še en element HashMap, ki je to ključnega pomena, isAwesome 58 00:03:04,120 --> 00:03:07,370 ki zemljevide enostavne prave vrednosti, z drugimi besedami, boolean. 59 00:03:07,370 --> 00:03:09,420 Primitivnih lahko strune. Lahko so cela števila. 60 00:03:09,420 --> 00:03:11,960 Lahko so bools, kaj podobnega. 61 00:03:11,960 --> 00:03:18,410 In vidite vsebino tega polja, ki kaže na lastnosti ima 2 niza v njem, 62 00:03:18,410 --> 00:03:20,050 self-podobna in čudovito. 63 00:03:20,050 --> 00:03:27,410 To so lastnosti JSON 2, in vidimo, da je JSON super. 64 00:03:27,410 --> 00:03:30,060 Če pogledamo, da je malo bolj se bom za izgradnjo 65 00:03:30,060 --> 00:03:32,870 bolj zapleten primer JSON tukaj. 66 00:03:32,870 --> 00:03:37,000 >> Začnimo z vrsto, na primer, le prazen niz. 67 00:03:37,000 --> 00:03:39,180 Ampak to je nekako dolgočasno, tako da bomo napolnila malo, 68 00:03:39,180 --> 00:03:43,420 in kot sem rekel, nizi so v JSON vnesite omejeni, 69 00:03:43,420 --> 00:03:46,400 Tako lahko imamo tudi tukaj niz, ki je hi, 70 00:03:46,400 --> 00:03:49,330 in to je še en element te matrike. 71 00:03:49,330 --> 00:03:53,450 In prav tako lahko dodamo hashmapping tukaj, ki se dogaja, da imajo nekaj preslikave. 72 00:03:53,450 --> 00:04:00,470 To se dogaja, da so preslikave iz imena do niza Billyjem. 73 00:04:00,470 --> 00:04:04,590 Imamo preslikavo iz imena do Billyja, in imamo kartiranje 74 00:04:04,590 --> 00:04:10,860 najljubša barva modra. 75 00:04:10,860 --> 00:04:12,700 To je v bistvu dober primer JSON. 76 00:04:12,700 --> 00:04:18,160 Nekako pride v-Ops, morate piko tam, vse različnih delov. 77 00:04:18,160 --> 00:04:21,140 Še enkrat, to ni tip vezan na vse, tako da lahko imate kakršnokoli vrste 78 00:04:21,140 --> 00:04:24,710 notri kaj hočeš, in ideja je, da je samo-podobno. 79 00:04:24,710 --> 00:04:28,830 Z drugimi besedami, ta tukaj je predmet JSON, saj je to stvar, 80 00:04:28,830 --> 00:04:33,200 kot je le to, tako da lahko imajo primitivna biti predmet, 81 00:04:33,200 --> 00:04:35,680 matrika je cilj ali HashMap biti predmet. 82 00:04:35,680 --> 00:04:40,270 >> Kot lahko vidite vrste, JSON je zelo, zelo koristne, da je tako vsestranski. 83 00:04:40,270 --> 00:04:45,860 Lahko imaš vse možne podatke, ki jih je mogoče zamisliti, ki so shranjeni v JSON. 84 00:04:45,860 --> 00:04:47,900 To omogoča zelo lepo jezik za uporabo z API-jev 85 00:04:47,900 --> 00:04:50,770 ker je precej pomeni, da ne glede na to, kateri podatki, ki jih želite 86 00:04:50,770 --> 00:04:54,270 tam se dogaja, da se na nek način priti nazaj v JSON. 87 00:04:54,270 --> 00:04:58,600 Pred nekaj lastnosti, zaradi katerih JSON še posebej dobro za te stvari. 88 00:04:58,600 --> 00:05:02,270 Kot lahko vidite, v primerjavi z veliko stvari, ki si delal z pri CS50 89 00:05:02,270 --> 00:05:06,040 to je relativno zelo enostaven za branje in tudi zelo enostavno napisati. 90 00:05:06,040 --> 00:05:09,700 Lahko ga alinee, če hočeš, da sem delal na tem primeru, 91 00:05:09,700 --> 00:05:12,990 ki vam daje lepo, lepo različico, ki si ga lahko ogledate zelo dobro. 92 00:05:12,990 --> 00:05:17,150 Toda poleg tega je tudi enostaven za branje in pisanje za računalnik. 93 00:05:17,150 --> 00:05:19,870 Z drugimi besedami, to je enostavno razčleniti in enostaven za kodiranje, 94 00:05:19,870 --> 00:05:23,820 kar pomeni, da je to zelo hitro, kolikor je branje podatkov je zaskrbljen, 95 00:05:23,820 --> 00:05:26,460 in se lahko JSON ustvarili zelo hitro. 96 00:05:26,460 --> 00:05:30,300 >> Prav tako je zelo enostaven dostop do različnih delov JSON in take stvari. 97 00:05:30,300 --> 00:05:33,320 To je lepo in prav, da je to samo-podobno, 98 00:05:33,320 --> 00:05:36,090 z drugimi besedami, dejstvo, da lahko imajo v JSON JSON v JSON 99 00:05:36,090 --> 00:05:40,040 je res lepo za shranjevanje podatkov. 100 00:05:40,040 --> 00:05:45,490 Drugi del, ki je na splošno zelo koristno pri delu z API je jQuery. 101 00:05:45,490 --> 00:05:49,290 Naučili ste se malo JavaScripta, kar je lep način, 102 00:05:49,290 --> 00:05:53,710 da manipulirajo HTML in CSS v spletne strani. 103 00:05:53,710 --> 00:05:57,190 Vendar pa lahko to nekako je bolečina kodo JavaScript v preprostem, 104 00:05:57,190 --> 00:05:59,810 predvsem zato, ker je res JavaScript verbose jezika. 105 00:05:59,810 --> 00:06:03,020 Moraš se naučiti veliko sintakse, in tako narediti zelo preprostih stvari 106 00:06:03,020 --> 00:06:07,590 je potrebno veliko kode, tako jQuery je knjižnica za JavaScript. 107 00:06:07,590 --> 00:06:09,800 Z drugimi besedami, da je JavaScript datoteke, ki jih lahko naložite 108 00:06:09,800 --> 00:06:12,730 in potem uporabite jQuery funkcije narediti določene stvari. 109 00:06:12,730 --> 00:06:15,670 In jQuery bistvu naredi vaše življenje veliko lažje. 110 00:06:15,670 --> 00:06:20,390 To poenostavlja kaj bi potrebovali na stotine vrstic v JavaScriptu do nekaj vrstic v jQuery. 111 00:06:20,390 --> 00:06:24,430 >> To je še posebej uporabno, če uporabljate API, ker na splošno 112 00:06:24,430 --> 00:06:27,600 kako boste dostop do API-je tako, da AJAX zahteve, 113 00:06:27,600 --> 00:06:30,130 in verjamem, David je navedeno v predavanju, ki AJAX zahteva 114 00:06:30,130 --> 00:06:33,120 na splošno, ko delate omrežja zahtevo za neke vrste strežnika 115 00:06:33,120 --> 00:06:37,760 in dobili nazaj neke vrste podatkov in posodabljanje strani trenutku. 116 00:06:37,760 --> 00:06:41,840 Ker je v preprostem JavaScript bi to lahko noro število črt 117 00:06:41,840 --> 00:06:44,620 potrditi vse glave in narediti vse, da take stvari, 118 00:06:44,620 --> 00:06:46,810 jQuery je res preprosto funkcijo imenovano AJAX, 119 00:06:46,810 --> 00:06:51,760 in vse, kar morate storiti, je, da AJAX parametre, ki jih želite dati API, 120 00:06:51,760 --> 00:06:56,830 lokacija API in morebitna dodatna vrsta možnosti, ki jih želite oblikovati. 121 00:06:56,830 --> 00:07:02,480 To je zelo, zelo lepo in zelo koristno za te stvari. 122 00:07:02,480 --> 00:07:06,970 To je vse, kar potrebujemo, da začnete pridobivanje naše roke umazane v API. 123 00:07:06,970 --> 00:07:10,220 >> Grem, da bi do nekaj primerov in raziskovanje njihove različne lastnosti 124 00:07:10,220 --> 00:07:13,150 in zakaj so uporabne za različne vrste stvari. 125 00:07:13,150 --> 00:07:15,570 Prva stvar, da bom dejansko vam pokaže nekaj, kar delam 126 00:07:15,570 --> 00:07:18,310 V svojem raziskovalnem laboratoriju, ki je Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 in v bistvu ideja o Viewer Ngram je lahko iščete neke vrste besede 128 00:07:23,270 --> 00:07:28,840 ali besedna zveza, in videli, kako pogosto se je pojavil v določenem nizu besedila v daljšem časovnem obdobju. 129 00:07:28,840 --> 00:07:33,160 Ta primer tukaj je ta nabor podatkov o dojenčkih 130 00:07:33,160 --> 00:07:36,480 , ki so bili rojeni v New Yorku med leti 1920 in 2000. 131 00:07:36,480 --> 00:07:40,090 Mi lahko iščete na primer za ime Jennifer, 132 00:07:40,090 --> 00:07:44,400 in vidimo, da pre-1960 je bila res ne uporabljajo tako zelo, 133 00:07:44,400 --> 00:07:48,900 in potem ko smo prišli v poznejših letih pa postaja se vedno bolj uporabljajo. 134 00:07:48,900 --> 00:07:53,680 Mi lahko storite tudi primerjave, tako da če primerjamo Jennifer, na primer, Thomas, 135 00:07:53,680 --> 00:07:56,520 lahko vidimo, Thomas je bil precej razširjena v zgodovini, 136 00:07:56,520 --> 00:07:58,780 ker je Jennifer novejši ime. 137 00:07:58,780 --> 00:08:00,590 To lahko storimo, da se take stvari. 138 00:08:00,590 --> 00:08:02,460 >> Kako ta aplikacija deluje? 139 00:08:02,460 --> 00:08:06,030 V bistvu deluje preko API. 140 00:08:06,030 --> 00:08:08,660 Z drugimi besedami, imamo določene parametre tukaj. 141 00:08:08,660 --> 00:08:11,360 Imamo parametre, kaj smo pravzaprav iščejo, 142 00:08:11,360 --> 00:08:13,720 ki so ta imena, potem pa imamo še nekaj drugih lastnosti, 143 00:08:13,720 --> 00:08:16,570 kot Y osi in osjo x. 144 00:08:16,570 --> 00:08:18,440 Ogledate si lahko imamo nekaj različnih možnosti, kolikor je 145 00:08:18,440 --> 00:08:20,860 časovna ločljivost uporabljajo in da se takšne stvari. 146 00:08:20,860 --> 00:08:26,700 Imamo te možnosti kolikor je tisto, kar smo dejansko želijo podatki iz baze podatkov, 147 00:08:26,700 --> 00:08:29,400 in želimo, da bi dobili te podatke nazaj v nekaj uporabnih način. 148 00:08:29,400 --> 00:08:34,020 Navadno, če smo poizvedovanje zbirke podatkov, neposredno bi bilo nekako je bolečina storiti 149 00:08:34,020 --> 00:08:38,970 Verjetno zato, ker se ti podatki o otroških imen živi v nekem baze nekje, 150 00:08:38,970 --> 00:08:42,789 in bi bilo res zapleteno, da ga ročno poizvedbo 151 00:08:42,789 --> 00:08:45,830 in se odloči, kaj podatki, da se vrnete. 152 00:08:45,830 --> 00:08:49,300 Z drugimi besedami, samo skrbi Jennifer in Thomas v tem primeru, 153 00:08:49,300 --> 00:08:53,410 in smo samo skrbi zaradi neke osi in vse te vrste stvari. 154 00:08:53,410 --> 00:08:55,720 >> Kako pridemo okoli tega? 155 00:08:55,720 --> 00:09:01,200 Kopati v tem API-jem malo več pokazal ti bom še en primer te platforme 156 00:09:01,200 --> 00:09:04,490 ki uporablja nekoliko drugačno nabor podatkov. 157 00:09:04,490 --> 00:09:09,950 Ta nabor podatkov, namesto da bi otroška imena, je pravzaprav zgolj celoten 158 00:09:09,950 --> 00:09:12,460 natisniti publikacijo bazo odprto knjižnico, 159 00:09:12,460 --> 00:09:18,410 kar je ogromen vir besedil, objavljenih po zadnjih 100 let ali tako. 160 00:09:18,410 --> 00:09:23,540 Ideja je, da imamo to compository na milijone in milijone besedila, 161 00:09:23,540 --> 00:09:27,420 ki lahko zdaj poiščete različnih besed in fraz noter 162 00:09:27,420 --> 00:09:30,840 Tukaj je primer, ki se giblje malo drugače od prejšnjega primera 163 00:09:30,840 --> 00:09:33,350 Sem ti pokazal, ki je imamo te 3 iskalnih poizvedb, 164 00:09:33,350 --> 00:09:36,290 vojna, vojna, francoska beseda za vojno, ki je guerre. 165 00:09:36,290 --> 00:09:40,380 In mi smo iskali v 3 različnih delov celotne baze. 166 00:09:40,380 --> 00:09:45,080 Z drugimi besedami, v tej prvi poizvedbi smo samo iščejo v ZDA, 167 00:09:45,080 --> 00:09:51,150 v drugem pa samo v Združenem kraljestvu, in šele od 3. del objavljenih v Franciji. 168 00:09:51,150 --> 00:09:53,120 Bomo videli nekaj zanimivih vzorcev pojavijo. 169 00:09:53,120 --> 00:09:58,180 Na primer, vidimo tukaj nekje ki- 170 00:09:58,180 --> 00:10:02,410 Ups, sem zamočil na osi malo, pa si lahko ogledate prav tukaj na tem območju 171 00:10:02,410 --> 00:10:05,730 po državljanski vojni pa je velik skok v ameriški izdaji 172 00:10:05,730 --> 00:10:08,340 vendar ne tako velik skok v drugih dveh, in to je očitno zato, ker 173 00:10:08,340 --> 00:10:10,880 American Civil War se dogaja v tem trenutku. 174 00:10:10,880 --> 00:10:13,890 >> Vidimo lahko nekaj kul stvari tam, 175 00:10:13,890 --> 00:10:17,070 ampak tisto, kar resnično skrbi, kako smo dobili te podatke. 176 00:10:17,070 --> 00:10:21,320 Odpeljal te bom v zakulisju v tej aplikaciji na malo. 177 00:10:21,320 --> 00:10:24,540 Krava trik je, če delate z mestom in vrsti zanima 178 00:10:24,540 --> 00:10:27,430 kaj se dogaja v zakulisju, lahko odpirajo orodij za razvijalce. 179 00:10:27,430 --> 00:10:30,200 Bom uporabljate razvijalce Chrome orodja, in da se tistim, 180 00:10:30,200 --> 00:10:35,160 lahko storite nadzor, premik, J in ki vas popelje na konzolo JavaScript. 181 00:10:35,160 --> 00:10:37,420 Obstaja nekaj zavihkov tukaj. 182 00:10:37,420 --> 00:10:39,680 So lahko vsi zelo koristen v različnih okoliščinah, vendar me skrbi omrežja 183 00:10:39,680 --> 00:10:44,150 Na kartici prav zdaj, in sem dejansko morali osvežiti, da bi dobili, da delajo. 184 00:10:44,150 --> 00:10:50,180 Žal mi je. 185 00:10:50,180 --> 00:10:52,320 Prav rad bi naključni primer. 186 00:10:52,320 --> 00:10:54,700 Ok, bomo uporabili ta primer namesto takrat. 187 00:10:54,700 --> 00:11:01,330 >> Ideja je, da je to tukaj API, 188 00:11:01,330 --> 00:11:05,330 in lahko vidite točno to, kar API se vrača. 189 00:11:05,330 --> 00:11:10,220 To je tisto, kar mu je vloga dobili nazaj od API, ki je poslan ta zahtevek. 190 00:11:10,220 --> 00:11:13,680 Naj povečate malo, 191 00:11:13,680 --> 00:11:18,340 in smo lahko videli, da je v bistvu le niz ključnih parov vrednosti v JSON. 192 00:11:18,340 --> 00:11:23,220 Z drugimi besedami, imamo to HashMap tukaj, ki je opredelil vrednosti. 193 00:11:23,220 --> 00:11:26,440 Z drugimi besedami, to je popis leta na vrednosti. 194 00:11:26,440 --> 00:11:32,600 Leta 1765 je kar beseda, ki jo je prvotno iskali uporablja 90-krat 195 00:11:32,600 --> 00:11:35,810 od 1 milijona EUR, tako da smo dobili nazaj ta rezultat. 196 00:11:35,810 --> 00:11:40,280 To ni ravno JSON, saj imamo ta majhen rezultat glavo tukaj, 197 00:11:40,280 --> 00:11:45,630 ampak obvestilo, da je vsa ta cilj tukaj je samo ena velika JSON Nič. 198 00:11:45,630 --> 00:11:51,070 Imamo množico tukaj, ki vsebuje ves ta element, 199 00:11:51,070 --> 00:11:55,590 in lahko vidite, da je celoten element se konča tam, in potem imamo še eno veliko element 200 00:11:55,590 --> 00:11:59,430 da gre vse navzdol do konca, in da se tukaj konča. 201 00:11:59,430 --> 00:12:02,200 Imamo zelo veliko paleto z 2 objektov v njem, 202 00:12:02,200 --> 00:12:04,630 in vsak od teh predmetov je HashMap. 203 00:12:04,630 --> 00:12:07,340 Ogledate si lahko znotraj vsake od teh hashmaps imamo preslikavo 204 00:12:07,340 --> 00:12:12,700 te vrednosti indeksa do 0 in vrednostjo Ta vrednost je v drugo HashMap, 205 00:12:12,700 --> 00:12:18,360 , ki je ponovno kartiranje vrednosti os X na osi Y vrednosti. 206 00:12:18,360 --> 00:12:20,970 >> Ogledate si lahko JSON gets malo bolj zapleteno malo, vendar na splošno, 207 00:12:20,970 --> 00:12:24,190 To je dejansko zelo uporabna, in je zelo enostaven za dostop v primerjavi s 208 00:12:24,190 --> 00:12:27,390 druge različne oblike zapisa. 209 00:12:27,390 --> 00:12:30,550 Kolikor je tisto, kar smo dejansko pošiljanje podatkov API, da bi dobili, 210 00:12:30,550 --> 00:12:34,690 Jaz bom šel v zadnjem delu malo tukaj. 211 00:12:34,690 --> 00:12:39,850 To je velik JavaScript datoteke, ki je obravnavanju vseh interakcij na spletni aplikaciji, 212 00:12:39,850 --> 00:12:44,810 in zato ne skrbi, večino tega, vendar pa ni vseeno nekaj od tega. 213 00:12:44,810 --> 00:12:47,410 Na primer, skrbimo za to buildQuery funkcijo, 214 00:12:47,410 --> 00:12:50,670 in ideja te naloge je v bistvu kar je iskal po strani, 215 00:12:50,670 --> 00:12:53,750 poskušal ugotoviti, kaj uporabnik želi, da se pozanima, ali z drugimi besedami, 216 00:12:53,750 --> 00:12:57,090 preverjanje te škatle, kjer sem vložek njihove iskanih izrazov 217 00:12:57,090 --> 00:13:01,380 preverjanje različnih Y in X osi vrednosti, ki ste jih izbrali, in vse take stvari, 218 00:13:01,380 --> 00:13:06,650 in to se dogaja, da izpljune to poizvedbo vrednost, ki lahko nato pošljete off za API. 219 00:13:06,650 --> 00:13:09,180 >> To izgleda zapletena, zato je zelo zapletena 220 00:13:09,180 --> 00:13:18,090 ampak kaj bom storil, v resnici, sem že delal to, kar je super- 221 00:13:18,090 --> 00:13:21,640 je, da bom dobil konzolo, da natisnete točno to poizvedbo vrednost 222 00:13:21,640 --> 00:13:28,110 da je pošiljanje off na API. 223 00:13:28,110 --> 00:13:30,870 To je pravzaprav tukaj. Žal mi je, da oddaja veliko stvari. 224 00:13:30,870 --> 00:13:33,690 Ampak to je tisto, kar nas skrbi, je to predmet tukaj. 225 00:13:33,690 --> 00:13:35,300 To je izraz predmet. 226 00:13:35,300 --> 00:13:40,670 Z drugimi besedami, to je točno tisto, kar spletna aplikacija pošilja na API, 227 00:13:40,670 --> 00:13:45,730 zato poglejmo noter malo, in vidimo, imamo nekaj vrednosti tukaj. 228 00:13:45,730 --> 00:13:48,710 Vidimo, da so to vrsto grof, ki je dogodke na milijon besed, 229 00:13:48,710 --> 00:13:51,460 ki je točno tisto, kar smo se odločili na osi Y tukaj. 230 00:13:51,460 --> 00:13:53,740 To je, če ta prihaja. 231 00:13:53,740 --> 00:13:58,010 Imamo bazo podatkov vrednost, kar pomeni, da je nekaj gotovo baze 232 00:13:58,010 --> 00:14:01,610 da so ti podatki, ki živijo v, in želimo, da dostop do teh podatkov izrecno 233 00:14:01,610 --> 00:14:04,950 za razliko od otroških imen podatkov, na primer. 234 00:14:04,950 --> 00:14:08,320 Potem imamo to vrednost skupine, 235 00:14:08,320 --> 00:14:12,090 , ki je dejal, da želimo iskati po letu, v nasprotju z 236 00:14:12,090 --> 00:14:16,030 katera koli druga os X vrednost. 237 00:14:16,030 --> 00:14:19,040 Potem imamo metodo, ki bo del API narediti več stvari. 238 00:14:19,040 --> 00:14:22,360 Z drugimi besedami, ta API vrne tudi druge vrste podatkov, 239 00:14:22,360 --> 00:14:27,740 vendar v tem primeru želimo, da prikaz vrednosti osi X, Y osi vrednosti. 240 00:14:27,740 --> 00:14:30,730 To je tisto, ki jo pripoveduje, da je to, 241 00:14:30,730 --> 00:14:35,020 in imamo to vrsto iskanja omejitve, ki vsebuje 2 vrednosti. 242 00:14:35,020 --> 00:14:40,720 Prvi je to, kar vidimo tukaj, to je vse vrednosti 243 00:14:40,720 --> 00:14:43,020 vsebovane v tem prvem malo polje na vrhu. 244 00:14:43,020 --> 00:14:47,570 >> Z drugimi besedami, želimo iskati besedne bitke, in želimo, da ga filtrirati 245 00:14:47,570 --> 00:14:51,920 po angleških besedil v ameriški literaturi. 246 00:14:51,920 --> 00:14:54,590 Imamo to državo, ki je ZDA. 247 00:14:54,590 --> 00:14:59,130 Imamo jezik, ki je angleščina, tako da imamo vse te različne dele 248 00:14:59,130 --> 00:15:02,690 da so vsi govori API točno tisto, kar si želimo. 249 00:15:02,690 --> 00:15:04,940 Ne vemo, kaj so podatki, ki jih dobimo nazaj je še, 250 00:15:04,940 --> 00:15:10,970 vendar vemo, da podatki, se bo trajalo določeno obliko. 251 00:15:10,970 --> 00:15:13,650 Ta primer je vrsta na zapletene strani, 252 00:15:13,650 --> 00:15:16,180 in ne bi nujno uporabo API ta kompleks, 253 00:15:16,180 --> 00:15:20,600 vendar pa je to, da vam pokažem obseg in moč, kar lahko storite API. 254 00:15:20,600 --> 00:15:24,980 Z drugimi besedami, z relativno enostavnega sistema poizvedbe smo v bistvu imeli vnosno polje 255 00:15:24,980 --> 00:15:29,490 z nekaj drugimi selektorji v različnih krajih. 256 00:15:29,490 --> 00:15:32,010 >> Naj povečavo nazaj ven. 257 00:15:32,010 --> 00:15:37,720 Imamo vnosno polje z nekaj različnih metapodatkovnih izbire, 258 00:15:37,720 --> 00:15:40,610 in imamo Y os in os X izbore. 259 00:15:40,610 --> 00:15:42,830 Mi ne dejansko imajo, da mnoga področja, 260 00:15:42,830 --> 00:15:46,210 in smo lahko videli zelo hitro smo lahko poizveduje neke vrste API 261 00:15:46,210 --> 00:15:48,510 in dobili podatke nazaj, nato pa ga v tem grafikonu 262 00:15:48,510 --> 00:15:52,080 ki se potem dogaja, da ga prikažete uporabnega način. 263 00:15:52,080 --> 00:15:54,970 Če pogledamo še en primer, da bi se lahko malo bolj seznanjeni z vami 264 00:15:54,970 --> 00:15:56,510 bomo obrniti na Facebooku. 265 00:15:56,510 --> 00:15:59,440 API Facebook, se imenuje Graf Facebook, 266 00:15:59,440 --> 00:16:04,390 in v bistvu, kaj to pomeni, je Facebook vidi kot te obsežne zbirke podatkov 267 00:16:04,390 --> 00:16:08,000 z veliko različnih delov, ki imajo vse določene odnose drug do drugega. 268 00:16:08,000 --> 00:16:11,070 Z drugimi besedami, sem si na Facebook, tako da imam profil, 269 00:16:11,070 --> 00:16:14,310 in sem tudi nekatere prijatelje, in vsak od njih ima profil, 270 00:16:14,310 --> 00:16:17,580 in vsak od mojih prijateljev je stena, ki ima drugačne pripombe na to, 271 00:16:17,580 --> 00:16:20,800 in vsak od teh pripomb je všeč in vse te stvari. 272 00:16:20,800 --> 00:16:23,100 >> Obstaja veliko različnih delov na Facebooku. 273 00:16:23,100 --> 00:16:26,670 To je zelo zapletena API, in tam je ton lahko storite z njo, 274 00:16:26,670 --> 00:16:28,450 ampak to je pravzaprav zelo preprost za uporabo. 275 00:16:28,450 --> 00:16:33,680 Jaz bom za začetek, ki ga bo graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 ki je moj enkraten ime računa in ime vašega računa bo bodisi 277 00:16:38,430 --> 00:16:43,710 kakšna beseda, če ste jo izbrali, ali pa lahko samo niz številk. 278 00:16:43,710 --> 00:16:46,360 Kaj smo dobili nazaj, je precej osnovna informacija. 279 00:16:46,360 --> 00:16:50,460 Vidimo, da imam ime, ki je Billy, priimek, ki je Janitsch. 280 00:16:50,460 --> 00:16:53,370 Tam je edinstvena Facebook ID, ki ga imam. 281 00:16:53,370 --> 00:16:57,920 Vidite lahko, da sem ženska in da imam nastavitev jezika 282 00:16:57,920 --> 00:17:01,290 British angleščini. 283 00:17:01,290 --> 00:17:03,490 Z drugimi besedami, smo videli zelo osnovne informacije tukaj. 284 00:17:03,490 --> 00:17:08,670 To ni preveč, vendar pa nam predstavo o tem, kaj je tam. 285 00:17:08,670 --> 00:17:10,849 >> Mi lahko narediš isto stvar z Davidom Malan, npr. 286 00:17:10,849 --> 00:17:13,599 Mislim, da mu je ime dmalan. 287 00:17:13,599 --> 00:17:16,369 Vidimo David Malan je edinstven ID. 288 00:17:16,369 --> 00:17:19,300 Ima ime, ime, srednje ime, priimek. 289 00:17:19,300 --> 00:17:24,210 Vidimo tudi, da je on moški in da ima jezik nastavljen na angleščino. 290 00:17:24,210 --> 00:17:26,869 Z drugimi besedami, smo videli zelo osnovne informacije tukaj. 291 00:17:26,869 --> 00:17:28,860 Torej, kaj se zgodi, če se želimo preveriti kaj drugega? 292 00:17:28,860 --> 00:17:33,060 Recimo, da me zanima, kaj se je David Malan všeč na Facebooku. 293 00:17:33,060 --> 00:17:36,860 Lahko naredim / všeč. Zdaj pa smo naleteli na problem. 294 00:17:36,860 --> 00:17:39,280 Imamo neke vrste napake, ki pravi, da je dostop žeton 295 00:17:39,280 --> 00:17:41,660 je potrebno zahtevati ta vir. 296 00:17:41,660 --> 00:17:44,730 Ampak, če mislite o tem, da je dejansko smiselno, saj bi bilo čudno 297 00:17:44,730 --> 00:17:47,830 če bi lahko dostop vsak del baze Facebook 298 00:17:47,830 --> 00:17:50,170 Samo iz neke vrste preprost API, kajne? 299 00:17:50,170 --> 00:17:56,040 Z drugimi besedami, verjetno vaših podatkov ni mogoče dostopati z vsakomur, ki ga želi. 300 00:17:56,040 --> 00:17:58,330 >> Ta napaka je točno, kaj to pomeni. 301 00:17:58,330 --> 00:18:03,630 Nekateri API zahtevajo določene dovoljenja za dostop do svojih podatkov. 302 00:18:03,630 --> 00:18:06,940 In še bolj napredne API, kot je Facebook, 1, 303 00:18:06,940 --> 00:18:09,840 bo treba nekatera dovoljenja narediti določene stvari. 304 00:18:09,840 --> 00:18:12,650 Vidim te osnovne informacije o David Malan. 305 00:18:12,650 --> 00:18:15,950 Vidim, da je on moški in da živi v ZDA, 306 00:18:15,950 --> 00:18:19,270 ampak jaz ne morem videti ničesar mimo. 307 00:18:19,270 --> 00:18:23,050 Da bi se temu za zdaj, Facebook ima to lepo orodje 308 00:18:23,050 --> 00:18:27,690 ki je graf API raziskovalec, in ideja, da lahko nekako 309 00:18:27,690 --> 00:18:31,880 make up dovoljenja za sebe glede na vaše lastne potrebe 310 00:18:31,880 --> 00:18:35,680 in si oglejte stvari, ki jih lahko posebej pogledu računa. 311 00:18:35,680 --> 00:18:45,120 Na primer, če naredim graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Ups, mislim, da imam za ponovni moj žeton tukaj. 313 00:18:53,510 --> 00:18:55,950 Ok. 314 00:18:55,950 --> 00:19:01,740 Če bom še enkrat, super, zdaj vidim, da sem dobil to predmet nazaj 315 00:19:01,740 --> 00:19:06,300 ki pravi, da mi je všeč bazen rezanci, ki so v kategoriji iger in igrač. 316 00:19:06,300 --> 00:19:08,620 Všeč mi je mrože, ki so v kategoriji živali. 317 00:19:08,620 --> 00:19:10,180 To so moja dejanska Facebook všeč. 318 00:19:10,180 --> 00:19:13,280 Oni so nekako nerodno. 319 00:19:13,280 --> 00:19:16,090 >> Vendar pa lahko vidimo ta podatek je vse vrne v JSON. 320 00:19:16,090 --> 00:19:18,160 To je zelo berljiva. 321 00:19:18,160 --> 00:19:20,970 Z drugimi besedami, imamo to preslikavo podatkov nekakšno matriko, 322 00:19:20,970 --> 00:19:25,220 in vsak element tega sklopa je HashMap, ki preslika 323 00:19:25,220 --> 00:19:28,530 ime in podobno kategorijo kot. 324 00:19:28,530 --> 00:19:31,240 Vsak, kot je edinstven ID. 325 00:19:31,240 --> 00:19:34,510 Obstajajo vse vrste različnih stvari, podatkov, ki jih lahko dobite, 326 00:19:34,510 --> 00:19:37,980 in če ste zainteresirani za uporabo Facebooka API za CS50 končni projekt 327 00:19:37,980 --> 00:19:40,720 ali kaj podobnega, da je pravzaprav zelo izvedljivo. 328 00:19:40,720 --> 00:19:44,260 V bistvu, kako priti okoli pristnosti stvar je Facebook 329 00:19:44,260 --> 00:19:48,030 uporablja sistem, imenovan OAuth ali Odpri preverjanje pristnosti, 330 00:19:48,030 --> 00:19:52,870 in ne želim, da se v to zdaj, ker OAuth ali drugačen način 331 00:19:52,870 --> 00:19:56,060 preverjanje pristnosti ponavadi zelo razlikujejo med različnimi API-jev, 332 00:19:56,060 --> 00:19:58,320 tako da sem lahko preživijo dlje časa dogaja v vsaki, 333 00:19:58,320 --> 00:20:01,170 ampak oni so pravzaprav precej samoumevno. 334 00:20:01,170 --> 00:20:04,050 >> Če Google Facebook API je zelo berljiva. 335 00:20:04,050 --> 00:20:06,670 Obstaja celo spec. 336 00:20:06,670 --> 00:20:10,210 Na primer, to je dokumentacija za Facebook API, 337 00:20:10,210 --> 00:20:14,170 in lahko vidite, da sem na strani uporabnika, tako da sem lahko izvedeli vse o različnih vrstah stvari 338 00:20:14,170 --> 00:20:17,170 ki so na voljo, da se, kolikor je podatke 339 00:20:17,170 --> 00:20:21,550 in tudi različna dovoljenja, da moram za dostop do njih. 340 00:20:21,550 --> 00:20:25,470 Kot smo videli, da ne potrebujemo dovoljenj za dostop do imena ali spol, 341 00:20:25,470 --> 00:20:29,380 ampak tistega, ki jih ne potrebujejo dovoljenja za večino stvari. 342 00:20:29,380 --> 00:20:33,040 Ta stran, ali pa je ta spletna stran bo tudi vam povem, kako priti 343 00:20:33,040 --> 00:20:35,640 žeton, da bi lahko, da se prijavite. 344 00:20:35,640 --> 00:20:39,290 Večina sistemov za preverjanje pristnosti uporabiti nekakšen znak 345 00:20:39,290 --> 00:20:42,880 kje si dobil to edinstveno vrednost, ki je res dolgo in naključni niz, 346 00:20:42,880 --> 00:20:46,240 in lahko na ta način povezujejo zahtevo, da delate z vami. 347 00:20:46,240 --> 00:20:50,560 Z drugimi besedami, vedo, da ne delaš nič sumljivega s svojimi podatki. 348 00:20:50,560 --> 00:20:53,340 Vedo, kaj ste dobili. 349 00:20:53,340 --> 00:20:56,180 Prav tako vemo, da imate dovoljenje za ogled te informacije. 350 00:20:56,180 --> 00:20:59,110 >> Če ste naredili Facebook app in vaš program ima določene uporabnike, 351 00:20:59,110 --> 00:21:03,380 in so ti uporabniki lahko da aplikacija za dostop do določenih delov svojega profila, 352 00:21:03,380 --> 00:21:07,790 potem karkoli API ključ ali žeton, da aplikacija uporablja 353 00:21:07,790 --> 00:21:11,090 bodo mogli dostopati do podatkov za te uporabnike. 354 00:21:11,090 --> 00:21:13,780 Morda se sliši zapleteno, vendar ni tako slabo, 355 00:21:13,780 --> 00:21:16,810 in če želite uporabljati Facebook bi jaz zelo priporočam, da si 356 00:21:16,810 --> 00:21:18,990 menijo, igranje okrog s svojim API. 357 00:21:18,990 --> 00:21:21,610 To je zelo kul, in lahko naredijo veliko različnih stvari z njim. 358 00:21:21,610 --> 00:21:24,880 Če uporabnik podeljuje ta dovoljenja se lahko celo vrnili k API 359 00:21:24,880 --> 00:21:28,820 in povedati želim, da bi dejansko objavili na steno tega uporabnika, ali želim, da so jih objavili fotografijo, 360 00:21:28,820 --> 00:21:32,390 in zato na novice krme boste včasih teh nadležnih stvari 361 00:21:32,390 --> 00:21:37,840 rek je tvoj prijatelj gledal ta video na nekakšni čudni mestu ali kaj podobnega. 362 00:21:37,840 --> 00:21:43,120 To je zato, ker je bila ta aplikacija dostop do post na steni te osebe. 363 00:21:43,120 --> 00:21:48,350 Ideja splošno je Facebook API precej zapleteno, ampak tudi zelo koristno. 364 00:21:48,350 --> 00:21:53,220 Definitivno vredno preverjanje ven, če ste še vedno išče končni projekt. 365 00:21:53,220 --> 00:21:57,930 >> Drugi niz API-jev, da bom šel čez je CS50 API. 366 00:21:57,930 --> 00:22:00,070 Dovolite mi, da povečate tukaj. 367 00:22:00,070 --> 00:22:03,390 CS50 je dejansko pripravila celo vrsto API-jev 368 00:22:03,390 --> 00:22:07,080 ki jo lahko uporabite za končni projekt ali samo za vse, kar delate. 369 00:22:07,080 --> 00:22:12,830 In oni so večinoma povezane Harvard, in se razlikuje od menija Huds, 370 00:22:12,830 --> 00:22:17,780 na primer, s tem Harvard dogodki API, ki bo vam dostop do seznama 371 00:22:17,780 --> 00:22:21,290 različne prireditve, ki se bodo na na Harvardu, in da takšne stvari. 372 00:22:21,290 --> 00:22:24,510 In tako lahko kliknete na kateri koli od teh in dobil spec za to, 373 00:22:24,510 --> 00:22:28,090 ki jih boste lahko našli za vse API, in ideja je, 374 00:22:28,090 --> 00:22:33,920 vam omogoča, da veste,, posebej, kaj zahtevajo od API in kako jo zahteva. 375 00:22:33,920 --> 00:22:37,370 Z drugimi besedami, če želim vse dogodke, ki se dogajajo jutri 376 00:22:37,370 --> 00:22:42,550 potem moram očitno ji ta datum, ki ga želim v določeni obliki, 377 00:22:42,550 --> 00:22:46,030 in B, bo to povej mi, kaj točno se dogaja, da nazaj k meni. 378 00:22:46,030 --> 00:22:48,590 To bo rekel bom, da se vrnete vam ta predmet JSON, 379 00:22:48,590 --> 00:22:50,960 ali, kot lahko vidite, obstajajo različne oblike. 380 00:22:50,960 --> 00:22:54,050 >> Vrnete lahko tudi podatke kot CSV, na primer. 381 00:22:54,050 --> 00:22:57,620 Ampak veš točno, kako, da se podatki bo videti, ko ga boste dobili nazaj 382 00:22:57,620 --> 00:23:00,610 tako da lahko pričakujete, da boste storiti nekatere stvari z njim. 383 00:23:00,610 --> 00:23:07,240 Lahko se pomaknite navzdol in glej, na primer, če želimo, da se pozanima o API 384 00:23:07,240 --> 00:23:11,500 da bi dobili koledar, potem lahko uporabite ta poseben URL 385 00:23:11,500 --> 00:23:16,480 in mu nekatere parametre, ki se bodo podatki, ki jih želimo natančno. 386 00:23:16,480 --> 00:23:19,540 In prav tako, če želimo podatke nazaj v določeni obliki, 387 00:23:19,540 --> 00:23:23,790 potem bomo lahko od nje zahteva, da vnese podatke v CSV, 388 00:23:23,790 --> 00:23:27,700 in to je samo še en parameter, da smo prehod na API. 389 00:23:27,700 --> 00:23:29,210 Veliko kul stvari za početi tam. 390 00:23:29,210 --> 00:23:32,550 Jaz bi vsekakor priporočam preverjanje iz CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Grem pogledati na tem API hrane Harvard, zlasti za malo. 392 00:23:36,000 --> 00:23:39,870 Ena stvar, ki sem dejansko namenjen je to Harvard Noms spletni strani, 393 00:23:39,870 --> 00:23:44,930 ki uporablja CS50 hrane API za pridobivanje Huds meni za tisti dan. 394 00:23:44,930 --> 00:23:50,400 In za ljudi podaljšanja šolanja, HUDS je jedilnica storitev na Harvardu. 395 00:23:50,400 --> 00:23:55,130 Kaj vam je ta stran, ki vsebuje vse dnevne obroke, tako da bomo videli kosilo. 396 00:23:55,130 --> 00:23:58,130 Imamo nekaj različnih kategorij. Imamo fižol in polnozrnat postajo. 397 00:23:58,130 --> 00:24:00,340 Imamo rjavi riž postajo. 398 00:24:00,340 --> 00:24:03,360 Vidimo lahko, za malico imamo teh nekaj hrane predmetov. 399 00:24:03,360 --> 00:24:07,030 Če kliknemo na njih, nato pa smo dobili informacije o hranilni vrednosti. 400 00:24:07,030 --> 00:24:12,240 Vidiš, to je podatki o hranilni vrednosti za grenivke, v primeru, da ste se vprašali. 401 00:24:12,240 --> 00:24:14,870 In tako spet, bomo uzrli zadnji konec sem malo 402 00:24:14,870 --> 00:24:18,530 in videti, kaj točno to počne, da bi dobili te podatke. 403 00:24:18,530 --> 00:24:21,710 In izkazalo se je, da dejansko ni zelo zapleteno na vse. 404 00:24:21,710 --> 00:24:28,720 Ta datoteka izgleda malo grdo, ampak imejte v mislih, da je to ravnanje celotno spletno mesto, 405 00:24:28,720 --> 00:24:34,130 in če bi se pomaknite navzdol vidimo to funkcijo sprememb podatkov. 406 00:24:34,130 --> 00:24:36,630 >> Zdaj pa samo, da je jasno, je to napisano v CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 , ki je jezik, ki ste jih verjetno ni videl. 408 00:24:39,570 --> 00:24:44,810 Ampak to je zelo berljivo, tako da bom hodil po njej, kot da je psevdokod. 409 00:24:44,810 --> 00:24:49,080 Spremeni datum je funkcija, ki se dogaja, da te vrednosti na datum, 410 00:24:49,080 --> 00:24:51,740 in to tudi dogaja, da se na eni strani, ki jih ne skrbi toliko. 411 00:24:51,740 --> 00:24:54,110 Ampak pomembno je, da ima ta datum 412 00:24:54,110 --> 00:25:00,080 in da je dan, da želimo, da zahteva vse prehrambenih izdelkov za. 413 00:25:00,080 --> 00:25:04,030 In potem boste videli, da imamo malo sintakse tukaj 414 00:25:04,030 --> 00:25:09,000 , ki je v bistvu razčlenjevanju ta datum v berljivi obliki. 415 00:25:09,000 --> 00:25:11,920 Z drugimi besedami, zahteva API datum v določeni obliki. 416 00:25:11,920 --> 00:25:17,390 Ne moreš kar reči, 16 november 2012 AD. 417 00:25:17,390 --> 00:25:20,320 To ne bo vedel, kaj storiti s tem. Želi datum v določeni obliki. 418 00:25:20,320 --> 00:25:23,230 Vsi delamo tukaj se ga daje točno to obliko, 419 00:25:23,230 --> 00:25:26,520 ki je letos vrednost in nato vezaj, mesečno vrednost, 420 00:25:26,520 --> 00:25:29,420 en pomišljaj in datum vrednost. 421 00:25:29,420 --> 00:25:34,910 In smo tudi rekli, da želimo, da podatki, ki potuje v JSON. 422 00:25:34,910 --> 00:25:37,560 >> Sedaj delamo to zahtevo AJAX, in kot sem že omenil, 423 00:25:37,560 --> 00:25:41,680 jQuery je to super koristno funkcijo, ki AJAX vse, kar morate storiti je, da določite 424 00:25:41,680 --> 00:25:45,780 nekaj parametrov tukaj, in to vam bo dala točno tisto, kar želite. 425 00:25:45,780 --> 00:25:50,490 Mi smo povedali, da je URL želimo, da bi šel v to CS50 hrane API, 426 00:25:50,490 --> 00:25:52,270 ki smo jo dobili iz spec. 427 00:25:52,270 --> 00:25:56,730 Pravimo, da želimo podatke v JSON in da 428 00:25:56,730 --> 00:25:59,490 bomo dati teh podatkov, ki smo določene tukaj. 429 00:25:59,490 --> 00:26:02,670 To je dan, ko želimo živilskih postavke za. 430 00:26:02,670 --> 00:26:07,790 In potem vse, kar morate storiti, je določiti neko funkcijo uspešnosti, 431 00:26:07,790 --> 00:26:11,980 ki je v bistvu tisto, kar se zgodi, ko se vrne, da se podatki API. 432 00:26:11,980 --> 00:26:15,490 Z drugimi besedami, smo se pakirajo vse parametre, ki jih želimo, 433 00:26:15,490 --> 00:26:20,530 ki v tem primeru je dan, ki ga želite, in dejstvo, da smo ga želeli v JSON, 434 00:26:20,530 --> 00:26:23,840 in jo poslala na API, tako da sedaj API je rekel, v redu, 435 00:26:23,840 --> 00:26:26,350 Tukaj so vaši podatki, sem ga dobil nazaj za vas. 436 00:26:26,350 --> 00:26:29,930 Imamo uspeh funkcijo, kar pomeni, da je določen API 437 00:26:29,930 --> 00:26:32,230 uspešno vrne nekaj podatkov, kaj bomo storili z njim? 438 00:26:32,230 --> 00:26:35,980 >> In izkazalo se je, da vse kar počnemo, je to imenujemo posodobitev meni funkcija 439 00:26:35,980 --> 00:26:42,680 s kakršnimi koli je API vrnil, tako da bomo lahko poiščete da 440 00:26:42,680 --> 00:26:47,970 in videli, da so vsi delamo uporablja kup novih sintakse tukaj 441 00:26:47,970 --> 00:26:52,220 posodobiti HTML in vstavljanje teh novih podatkov. 442 00:26:52,220 --> 00:26:56,580 Kaj to nam je, da imamo te puščice na obeh straneh, in smo lahko kliknete, 443 00:26:56,580 --> 00:27:01,060 in zdaj smo iskali na podlagi podatkov za naslednji dan in še enkrat za naslednji dan, 444 00:27:01,060 --> 00:27:04,820 in vsakič, ko je posodobitev, da datumsko vrednost in iskanje API, 445 00:27:04,820 --> 00:27:07,510 dobili nazaj nekaj podatkov in ga je dala v mestu. 446 00:27:07,510 --> 00:27:10,590 Again, lahko vidite, super, super koristno. 447 00:27:10,590 --> 00:27:14,410 Ta program je zame nekaj ur skupaj kramp, 448 00:27:14,410 --> 00:27:20,140 in imam malo več izkušenj, seveda, vendar vaše CS50 končni projekt 449 00:27:20,140 --> 00:27:22,870 lahko ogledate nekaj zelo všeč. 450 00:27:22,870 --> 00:27:29,540 >> API je super zmogljiv za količino napora, ki jih sprejmejo. 451 00:27:29,540 --> 00:27:32,800 Zadnja stvar, bom šel čez je nekaj več API-jev na splošno. 452 00:27:32,800 --> 00:27:35,480 Ne bom, kolikor v njih, kolikor je tisto, kar počnejo, posebej, 453 00:27:35,480 --> 00:27:38,740 ampak bom dal idejo o tem, kaj je tam zunaj. 454 00:27:38,740 --> 00:27:42,700 2 res koristni tisti, če ste zainteresirani za analizo podatkov in vizualizacijo 455 00:27:42,700 --> 00:27:45,960 ali kaj podobnega, da so Freebase in Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia, verjetno vsi veste, je brezplačna spletna enciklopedija, 457 00:27:49,800 --> 00:27:53,230 in je dejansko API, tako da, če želite, na primer, 458 00:27:53,230 --> 00:27:56,250 dobili vse tekstov in člankov za hobotnice 459 00:27:56,250 --> 00:27:58,030 lahko zelo enostavno narediti. 460 00:27:58,030 --> 00:28:02,300 Samo reči, hej, Wikipedia API, rad bi podatke vrne kot je ta, 461 00:28:02,300 --> 00:28:07,010 in sem ga rad v tej obliki, in člen želim je, hobotnice, 462 00:28:07,010 --> 00:28:09,820 in zelo hitro vam bo dala nazaj te informacije. 463 00:28:09,820 --> 00:28:12,230 To je lahko zelo koristno, če želite, da bi neko mesto 464 00:28:12,230 --> 00:28:16,200 da je bolje, pregledovalnik Wikipediji ali kaj podobnega. 465 00:28:16,200 --> 00:28:21,350 >> Freebase je nekako podobno, čeprav je malo težje, kolikor API. 466 00:28:21,350 --> 00:28:24,390 Freebase je kot Wikipedia v tem, da je spletna enciklopedija 467 00:28:24,390 --> 00:28:29,050 ki vsebuje veliko in veliko različnih podatkov o vseh mogočih različnih temah, 468 00:28:29,050 --> 00:28:33,150 vendar pa je shranjena v relacijski zbirki podatkov, ki je nekoliko drugačna od Wikipedije. 469 00:28:33,150 --> 00:28:36,410 Wikipedia ima svoje članke in članke povezane z drugimi izdelki, 470 00:28:36,410 --> 00:28:38,860 vendar za večino del, če želite podatke za hobotnice, 471 00:28:38,860 --> 00:28:41,990 greš na hobotnico člena, se te podatke, in imate kup besedila 472 00:28:41,990 --> 00:28:43,830 O hobotnice, tako da je super. 473 00:28:43,830 --> 00:28:46,870 Freebase deluje v nekoliko bolj zapleten način v tem, da 474 00:28:46,870 --> 00:28:48,930 Vse je povezano med seboj. 475 00:28:48,930 --> 00:28:52,620 Z drugimi besedami, če iščete hobotnice 476 00:28:52,620 --> 00:28:54,940 potem je cel kup kategorij, povezanih z njo. 477 00:28:54,940 --> 00:28:57,920 >> Na primer, da je žival, živi pod vodo, 478 00:28:57,920 --> 00:28:59,710 ima določeno telesno temperaturo. 479 00:28:59,710 --> 00:29:01,210 Ne vem. 480 00:29:01,210 --> 00:29:04,230 In vseh teh kategorij so povezave do drugih krajev, kjer lahko greste 481 00:29:04,230 --> 00:29:06,640 videti stvari z isto kategorijo. 482 00:29:06,640 --> 00:29:13,450 Z drugimi besedami, hobotnica zbirka podatkov vsebuje povezavo do podatkov iz vseh živali, 483 00:29:13,450 --> 00:29:16,790 in da bo mi gibljejo v bazi res hitro. 484 00:29:16,790 --> 00:29:21,740 To je lahko zelo koristno, če delaš nekaj podobnega primerjav. 485 00:29:21,740 --> 00:29:24,490 Z drugimi besedami, glede nekaterih stvari, ki jih želite videti 486 00:29:24,490 --> 00:29:27,890 kaj je to povezano in videli, kaj se da ni povezan z. 487 00:29:27,890 --> 00:29:30,700 Takšne stvari. To je lahko koristno na več načinov. 488 00:29:30,700 --> 00:29:34,250 Če iščete več izziv in biti sposoben narediti nekaj bolj zapletene stvari 489 00:29:34,250 --> 00:29:38,740 Menim, da pri tem pogled na Freebase API. 490 00:29:38,740 --> 00:29:44,670 Ampak večinoma, Wikipedia je zelo preprosta kraj za iti tako daleč, kot je pridobivanje informacij. 491 00:29:44,670 --> 00:29:48,340 Drug kraj, da bom pogledati je Last.fm, in sem dejansko šel na spletno stran 492 00:29:48,340 --> 00:29:53,800 v primeru, nekateri ljudje ne poznajo, a Last.fm je v bistvu glasba 493 00:29:53,800 --> 00:29:57,220 okus in priporočila spletni strani. 494 00:29:57,220 --> 00:29:59,000 Lahko naredite račun. 495 00:29:59,000 --> 00:30:04,250 Lahko začnete nalaganje glasbe iz vašega predvajalnika glasbe 496 00:30:04,250 --> 00:30:08,020 na spletni strani in v bistvu se bo začela vam daje priporočila glasbe 497 00:30:08,020 --> 00:30:10,030 na to, kaj boste poslušali. 498 00:30:10,030 --> 00:30:14,270 >> Na primer, če greš v svoj profil stran, to je moje, 499 00:30:14,270 --> 00:30:18,180 lahko vidite, da imate seznam nedavno poslušali skladbe. 500 00:30:18,180 --> 00:30:22,550 Ogledate si lahko splošne najljubše izvajalce, vsi take stvari, 501 00:30:22,550 --> 00:30:25,280 in spet, obstaja velika API za Last.fm, 502 00:30:25,280 --> 00:30:29,360  in ga lahko uporabite za veliko in veliko res kul stvari. 503 00:30:29,360 --> 00:30:38,870 Na primer, bom šel na stran prijatelja, ki ima to Last.fm Orodja spletne strani. 504 00:30:38,870 --> 00:30:42,380 To je pravzaprav ena platforma, ki je zgrajena na Last.fm API, 505 00:30:42,380 --> 00:30:45,420 in ne več lepih zanimivih stvari. 506 00:30:45,420 --> 00:30:50,260 Če sem se prijavite s svojim uporabniškim imenom, na primer, 507 00:30:50,260 --> 00:30:53,110 Lahko ga prosite za ustvarjanje tag cloud, na primer, 508 00:30:53,110 --> 00:30:56,480 in kaj bo storil, je vrni sliko 509 00:30:56,480 --> 00:30:59,850 vse različne zvrsti in da je vrsta stvari, ki mi je všeč poslušati. 510 00:30:59,850 --> 00:31:01,410 Kako se to počne? 511 00:31:01,410 --> 00:31:05,670 Zelo bistvu to je rekel, da je Last.fm API tukaj je ta uporabnik. 512 00:31:05,670 --> 00:31:10,710 Rad bi vedel žanr vseh pesmi, ki so jih kdaj poslušali, 513 00:31:10,710 --> 00:31:15,130 in lahko to storite tako, da precej preprosto AJAX klic na Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Boste dobili nazaj velik seznam, nato pa seveda nekatere druge stvari, ki se izvaja 515 00:31:18,990 --> 00:31:22,280 da se spremeni v besedo oblak, pa si lahko ogledate na splošno 516 00:31:22,280 --> 00:31:25,850 to je zelo enostaven dostop in zelo enostaven za uporabo. 517 00:31:25,850 --> 00:31:30,750 Res lepo za več stvari. 518 00:31:30,750 --> 00:31:35,940 >> Mislim, da je približno vse, da bom na splošno povedal. 519 00:31:35,940 --> 00:31:39,040 Še zadnja stvar, bom omenil o API, ki je na splošno 520 00:31:39,040 --> 00:31:41,840 Včasih boste naleteli na nekaj, kar ti omejevanje hitrosti 521 00:31:41,840 --> 00:31:44,940 in ideja omejevanje hitrosti je ne želite, da zlorabljajo API. 522 00:31:44,940 --> 00:31:48,130 Z drugimi besedami, to je res lepo, da veliko teh spletnih strani so API 523 00:31:48,130 --> 00:31:51,070 da lahko greš in uporabo brezplačno. 524 00:31:51,070 --> 00:31:54,460 Vendar, če boste milijone ali milijarde prošenj na dan, 525 00:31:54,460 --> 00:31:57,610 na primer, če si zaljubljen v neskončno zanko, ki je neskončno poizvedovanje 526 00:31:57,610 --> 00:32:00,680 neke vrste API in dobili nazaj ogromno količino podatkov, 527 00:32:00,680 --> 00:32:04,570 Očitno to ni dobro, pa kaj veliko API storiti, je bilo to omejevanje hitrosti predvajanja 528 00:32:04,570 --> 00:32:09,970 , ki pravi, da lahko samo še 1.000 zahtevkov na dan, na IP naslov ali kaj podobnega. 529 00:32:09,970 --> 00:32:12,540 In če delaš veliko poskusov in take stvari, 530 00:32:12,540 --> 00:32:14,890 boste včasih vodijo v to, in nenadoma vas bo izklopila 531 00:32:14,890 --> 00:32:18,280 in reči ne, ne bom vam daje vse več podatkov. 532 00:32:18,280 --> 00:32:20,000 >> Kaj želite storiti, je igrati po pravilih. 533 00:32:20,000 --> 00:32:22,950 Hočeš, da poskrbite, da boste prebrali API spec previdno. 534 00:32:22,950 --> 00:32:26,330 Če ima določena pravila v zvezi z njo, kot si lahko le X poizvedb na dan 535 00:32:26,330 --> 00:32:30,000 ali lahko le dostop do dela baze podatkov določeno število krat 536 00:32:30,000 --> 00:32:32,900 ali kaj podobnega, ki ga želite poskrbite, da boste držali tega. 537 00:32:32,900 --> 00:32:38,360 Dokler boste igrali v teh pravil boste verjetno imeli res lepo s pomočjo API. 538 00:32:38,360 --> 00:32:42,030 Vaša splošna takeaway je API so zelo, zelo koristno. 539 00:32:42,030 --> 00:32:45,610 >> Obstaja API za skoraj vse velike spletne storitve tam zunaj. 540 00:32:45,610 --> 00:32:50,700 Precej kakšen del orodja Google Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Koledar, vse te stvari so API. 542 00:32:54,390 --> 00:32:58,280 Lahko jih uporabite tako dobili podatke iz strežnika in pošiljanje podatkov na strežnik. 543 00:32:58,280 --> 00:33:00,870 Z drugimi besedami, če boste želeli, da bi koledar app, da lahko posodobi 544 00:33:00,870 --> 00:33:04,190 nekdo Google Koledar, tam je API za to. 545 00:33:04,190 --> 00:33:07,810 Če želite nekaj, kar se dogaja, da ti povem kje 546 00:33:07,810 --> 00:33:12,530 mesto določenem naslovu, je lahko s pomočjo Google Maps API za to. 547 00:33:12,530 --> 00:33:15,860 API fantastično koristno, in so povsod. 548 00:33:15,860 --> 00:33:18,700 Če ste zainteresirani za nekakšno idejo, 549 00:33:18,700 --> 00:33:22,170 tam je verjetno povezano API, ki jih lahko uporabite, da bi dobili veliko podatkov 550 00:33:22,170 --> 00:33:25,060 zelo hitro in zelo enostavno. 551 00:33:25,060 --> 00:33:28,140 >> Če še vedno iščete projekt, ali če želite le igral 552 00:33:28,140 --> 00:33:31,820 z nekaj na splošno, API so vsekakor vredno početje. 553 00:33:31,820 --> 00:33:37,200 Hvala, in jaz sem vesel, da odgovori na vsa vprašanja, ki jih imajo fantje. 554 00:33:37,200 --> 00:33:44,900 V redu, hvala. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]