1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminari] [Introducció d'un programador a les 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 [Aquesta és CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hola a tots, sóc Billy, i avui vaig a parlar de les API, 5 00:00:12,100 --> 00:00:15,220 o interfícies de programació d'aplicacions, 6 00:00:15,220 --> 00:00:20,040 específicament en el context dels projectes finals CS50 i aquest tipus de coses. 7 00:00:20,040 --> 00:00:22,490 En general el que és un API? 8 00:00:22,490 --> 00:00:25,530 En termes molt generals, és una mena d'intermediari que permet 2 peces 9 00:00:25,530 --> 00:00:28,610 de programari per comunicar-se entre si. 10 00:00:28,610 --> 00:00:32,530 Això és una espècie de definició molt àmplia i no és tan rellevant per al que estem veient. 11 00:00:32,530 --> 00:00:35,450 El que realment volem és una espècie de mitjana útil 12 00:00:35,450 --> 00:00:40,570 per comunicar-se amb algun tipus de base de dades en algun lloc. 13 00:00:40,570 --> 00:00:43,310 >> Aquí està un gràfic, i, bàsicament, és la idea que 14 00:00:43,310 --> 00:00:46,790 Som una aplicació, i volem obtenir dades d'una base de dades, 15 00:00:46,790 --> 00:00:49,570 però no volem per consultar la base de dades directament. 16 00:00:49,570 --> 00:00:52,710 En el seu lloc, volen passar per aquest tipus d'intermediari, l'API. 17 00:00:52,710 --> 00:00:55,440 La idea darrere d'això és els números 2 i 3 de la taula 18 00:00:55,440 --> 00:00:57,750 són alhora serà molt complicat i desordenat. 19 00:00:57,750 --> 00:00:59,960 En altres paraules, quan l'API es consulta la base de dades, 20 00:00:59,960 --> 00:01:03,300 probablement estarà usant taules SQL i tot aquest tipus de coses, 21 00:01:03,300 --> 00:01:05,489 i hem après una mica sobre això en CS50, però en general, 22 00:01:05,489 --> 00:01:07,590 t'has adonat que és una mica de dolor. 23 00:01:07,590 --> 00:01:10,590 Es posa molt, molt complicat i confús, especialment quan vostè està fent 24 00:01:10,590 --> 00:01:12,530 consultes complexes i aquest tipus de coses. 25 00:01:12,530 --> 00:01:15,960 >> El que realment volem és una espècie de forma útil i senzilla 26 00:01:15,960 --> 00:01:19,780 per obtenir aquestes dades, i aquesta és la idea darrere dels números 1 i 4 de la taula. 27 00:01:19,780 --> 00:01:23,600 En altres paraules, volem una manera molt senzilla de dir-li a l'API de què aconseguir per a nosaltres 28 00:01:23,600 --> 00:01:27,760 i una forma molt senzilla d'obtenir aquestes dades. 29 00:01:27,760 --> 00:01:33,020 Hi ha un camí principal que les dades que s'envien i es reben en general, 30 00:01:33,020 --> 00:01:36,490 que és JSON o JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 Això pot variar una mica pel que fa a la forma d'enviar la sol · licitud a l'API. 32 00:01:40,370 --> 00:01:43,210 En altres paraules, si vols alguna cosa de certa quantitat de dades, 33 00:01:43,210 --> 00:01:46,670 com dir-li l'API per obtenir aquestes dades pot variar una mica. 34 00:01:46,670 --> 00:01:49,210 En general, implica la realització d'algun tipus de sol · licitud de xarxa. 35 00:01:49,210 --> 00:01:53,130 En altres paraules, l'accés a algun tipus d'URL que dirà l'API 36 00:01:53,130 --> 00:01:56,190 exactament el que vol, però les dades són gairebé sempre s'envien de tornada, 37 00:01:56,190 --> 00:01:59,530 en altres paraules, el número 4 a JSON. 38 00:01:59,530 --> 00:02:01,030 >> Què és JSON exactament? 39 00:02:01,030 --> 00:02:03,030 Com he dit, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 És bàsicament l'estàndard universal per a la transmissió i recepció de dades. 41 00:02:07,090 --> 00:02:11,410 La idea és que vostè té aquestes tres categories de coses. 42 00:02:11,410 --> 00:02:13,540 Vostè té arrays, HashMaps, i primitives. 43 00:02:13,540 --> 00:02:16,580 Matrius i HashMaps t'he mirat una mica en CS50, 44 00:02:16,580 --> 00:02:19,870 però has aconseguit una espècie de sentit molt estricte del que són. 45 00:02:19,870 --> 00:02:22,780 En altres paraules, amb arranjaments que saben que estan escrigui enquadernat, 46 00:02:22,780 --> 00:02:26,560 de manera que només tenen una classe de tipus que va al llarg de tota la matriu. 47 00:02:26,560 --> 00:02:29,310 JSON és molt més indulgent amb aquest tipus de coses. 48 00:02:29,310 --> 00:02:33,590 Bàsicament, la idea és que la construcció d'aquest objecte, 49 00:02:33,590 --> 00:02:36,270 que pot estar compost de qualsevol d'aquestes 3 coses 50 00:02:36,270 --> 00:02:39,470 i pot estar compost pels múltiples d'ells, i poden estar niats. 51 00:02:39,470 --> 00:02:42,110 >> Aquí hi ha una mena d'exemple de JSON, 52 00:02:42,110 --> 00:02:47,910 que són aquestes claus aquí representen el HashMap, 53 00:02:47,910 --> 00:02:51,400 i un HashMap és bàsicament una assignació d'algun tipus de clau 54 00:02:51,400 --> 00:02:53,340 a algun tipus de valor. 55 00:02:53,340 --> 00:02:56,440 Veuràs que aquí tenim la clau de propietats, 56 00:02:56,440 --> 00:02:59,600 i això és mapejar en una matriu, que és tot això. 57 00:02:59,600 --> 00:03:04,120 Veiem altre element del HashMap, que és aquest isAwesome clau, 58 00:03:04,120 --> 00:03:07,370 que s'assigna a un valor simple veritat, és a dir, un booleà. 59 00:03:07,370 --> 00:03:09,420 Les primitives poden ser cadenes. Ells poden ser nombres enters. 60 00:03:09,420 --> 00:03:11,960 Poden ser Bools, res d'això. 61 00:03:11,960 --> 00:03:18,410 I veure el contingut d'aquesta matriu que apunta propietats té 2 cadenes al mateix, 62 00:03:18,410 --> 00:03:20,050 auto-similar i meravellós. 63 00:03:20,050 --> 00:03:27,410 Aquestes són dues propietats de JSON, i veiem que JSON és impressionant. 64 00:03:27,410 --> 00:03:30,060 Per veure que una mica més de prop que vaig a construir 65 00:03:30,060 --> 00:03:32,870 un exemple més complex de JSON aquí. 66 00:03:32,870 --> 00:03:37,000 >> Anem a començar amb una matriu, per exemple, només una matriu buida. 67 00:03:37,000 --> 00:03:39,180 Però això és una espècie de avorrit, així que anem a omplir una mica, 68 00:03:39,180 --> 00:03:43,420 i com he dit, les matrius en JSON s'escriu unit, 69 00:03:43,420 --> 00:03:46,400 el que també podria tenir una cadena d'aquí, que és hi, 70 00:03:46,400 --> 00:03:49,330 i aquest és un altre element d'aquesta matriu. 71 00:03:49,330 --> 00:03:53,450 I de la mateixa manera, podríem afegir una hashmapping aquí, que tindrà unes poques assignacions. 72 00:03:53,450 --> 00:04:00,470 Tindrà una assignació de nom a la cadena de Billy. 73 00:04:00,470 --> 00:04:04,590 Comptem amb una assignació de nom a Billy, i tenim un mapatge de 74 00:04:04,590 --> 00:04:10,860 color favorit el blau. 75 00:04:10,860 --> 00:04:12,700 Això és, bàsicament, un bon exemple de JSON. 76 00:04:12,700 --> 00:04:18,160 En certa manera s'aconsegueix en-crits, necessiten una coma allà, totes les diferents parts d'aquest. 77 00:04:18,160 --> 00:04:21,140 Un cop més, no està obligat a escriure tot el que pot tenir qualsevol classe de tipus 78 00:04:21,140 --> 00:04:24,710 dins del que vulguis, i la idea és que és auto-similar. 79 00:04:24,710 --> 00:04:28,830 En altres paraules, això d'aquí és un objecte JSON, com és tota aquesta cosa, 80 00:04:28,830 --> 00:04:33,200 com és això, el que pot tenir un físic un objecte, 81 00:04:33,200 --> 00:04:35,680 una matriu ser un objecte o un HashMap ser un objecte. 82 00:04:35,680 --> 00:04:40,270 >> Com es pot veure de classe, JSON és molt, molt útil, ja que és molt versàtil. 83 00:04:40,270 --> 00:04:45,860 Vostè pot tenir totes les dades possibles que es poden concebre emmagatzemats en JSON. 84 00:04:45,860 --> 00:04:47,900 Això fa que sigui un llenguatge realment agradable d'usar amb les API 85 00:04:47,900 --> 00:04:50,770 perquè més o menys vol dir que no importa el que les dades que voleu 86 00:04:50,770 --> 00:04:54,270 que hi haurà alguna manera de posar-lo de nou en JSON. 87 00:04:54,270 --> 00:04:58,600 A poques propietats que fan JSON especialment bo per a aquest tipus de coses. 88 00:04:58,600 --> 00:05:02,270 Com es pot veure, en comparació amb un munt de coses que vostè ha estat treballant en CS50 89 00:05:02,270 --> 00:05:06,040 és relativament molt fàcil de llegir i també molt fàcil d'escriure. 90 00:05:06,040 --> 00:05:09,700 Pot guió si ho desitja, com si estigués fent en aquest exemple, 91 00:05:09,700 --> 00:05:12,990 que li dóna una bona versió, bastant que es pot veure molt bé. 92 00:05:12,990 --> 00:05:17,150 Però, d'altra banda, també és fàcil de llegir i escriure per a un ordinador. 93 00:05:17,150 --> 00:05:19,870 En altres paraules, és fàcil d'analitzar i fàcil de codificar, 94 00:05:19,870 --> 00:05:23,820 el que significa que és bastant ràpid pel que fa a la lectura de les dades es refereix, 95 00:05:23,820 --> 00:05:26,460 i JSON es pot generar molt ràpidament. 96 00:05:26,460 --> 00:05:30,300 >> També és molt fàcil d'accedir a les diferents parts de JSON i aquest tipus de coses. 97 00:05:30,300 --> 00:05:33,320 Això està molt bé, ia més, el fet que és auto-similar 98 00:05:33,320 --> 00:05:36,090 en altres paraules, el fet que es pot tenir dins de JSON JSON JSON dins 99 00:05:36,090 --> 00:05:40,040 és molt agradable per a l'emmagatzematge de dades. 100 00:05:40,040 --> 00:05:45,490 Una altra part que generalment és molt útil en el treball amb les API és jQuery. 101 00:05:45,490 --> 00:05:49,290 Vostè ha après una mica de JavaScript, que és una bona manera de 102 00:05:49,290 --> 00:05:53,710 per manipular HTML i CSS dins d'un lloc web. 103 00:05:53,710 --> 00:05:57,190 Però pot classe de ser un mal de codi en JavaScript sense format, 104 00:05:57,190 --> 00:05:59,810 en gran part perquè Javascript és un llenguatge molt detallat. 105 00:05:59,810 --> 00:06:03,020 Vostè ha d'aprendre molt de la sintaxi, i només per fer coses molt simples 106 00:06:03,020 --> 00:06:07,590 es necessita una gran quantitat de codi, de manera que jQuery és una biblioteca de JavaScript. 107 00:06:07,590 --> 00:06:09,800 En altres paraules, es tracta d'un arxiu JavaScript que pot carregar 108 00:06:09,800 --> 00:06:12,730 i aleshores utilitzar les funcions d'jQuery per fer certes coses. 109 00:06:12,730 --> 00:06:15,670 I jQuery bàsicament fa la vida molt més fàcil. 110 00:06:15,670 --> 00:06:20,390 Simplifica el prendria centenars de línies en JavaScript a unes poques línies en jQuery. 111 00:06:20,390 --> 00:06:24,430 >> És especialment útil si vostè està utilitzant les API, ja que generalment 112 00:06:24,430 --> 00:06:27,600 com es va a accedir API és fent peticions AJAX, 113 00:06:27,600 --> 00:06:30,130 i crec que David s'ha esmentat en la conferència que les sol · licituds d'AJAX 114 00:06:30,130 --> 00:06:33,120 són en general quan vostè està fent una sol · licitud de xarxa a algun tipus de servidor 115 00:06:33,120 --> 00:06:37,760 i tornar a algun tipus de dades i l'actualització d'una pàgina instantàniament. 116 00:06:37,760 --> 00:06:41,840 Mentre que en JavaScript sense format que portaria el nombre de línies boges 117 00:06:41,840 --> 00:06:44,620 per validar tots els encapçalats i fer totes aquestes coses, 118 00:06:44,620 --> 00:06:46,810 jQuery té una funció molt simple anomenat AJAX, 119 00:06:46,810 --> 00:06:51,760 i tot el que ha de fer en AJAX és donar als paràmetres que es volen donar a l'API, 120 00:06:51,760 --> 00:06:56,830 la ubicació de l'API i qualsevol tipus addicional d'opcions que voleu configurar. 121 00:06:56,830 --> 00:07:02,480 És molt, molt bo i molt útil per a aquest tipus de coses. 122 00:07:02,480 --> 00:07:06,970 Això és tot el que necessitem per començar a rebre les nostres mans brutes a l'API. 123 00:07:06,970 --> 00:07:10,220 >> Vaig a portar a col · lació alguns exemples i explorar les seves diferents propietats 124 00:07:10,220 --> 00:07:13,150 i per què són útils per a diferents tipus de coses. 125 00:07:13,150 --> 00:07:15,570 La primera cosa que realment vaig a mostrar és una cosa que estic treballant en 126 00:07:15,570 --> 00:07:18,310 en el meu laboratori de recerca, que és un visor de Ngram, 127 00:07:18,310 --> 00:07:23,270 i, bàsicament, la idea d'un Visor Ngram es pot buscar algun tipus de paraula 128 00:07:23,270 --> 00:07:28,840 o frase i veure amb quina freqüència es va aparèixer en un cert conjunt de text en el temps. 129 00:07:28,840 --> 00:07:33,160 Aquest exemple és aquest conjunt de dades dels nadons 130 00:07:33,160 --> 00:07:36,480 que van néixer a Nova York entre 1920 i 2000. 131 00:07:36,480 --> 00:07:40,090 Podem buscar, per exemple, per al nom de Jennifer, 132 00:07:40,090 --> 00:07:44,400 i veiem que abans de 1960 en realitat no es va utilitzar gairebé res, 133 00:07:44,400 --> 00:07:48,900 i després com ens fiquem en els últims anys s'està tornant cada vegada més utilitzada. 134 00:07:48,900 --> 00:07:53,680 També podem fer comparacions, de manera que si comparem a Jennifer, per exemple, Thomas, 135 00:07:53,680 --> 00:07:56,520 podem veure Thomas ha estat bastant freqüent al llarg de la història, 136 00:07:56,520 --> 00:07:58,780 mentre que Jennifer és un nom més recent. 137 00:07:58,780 --> 00:08:00,590 Podem fer aquest tipus de coses. 138 00:08:00,590 --> 00:08:02,460 >> Com funciona aquesta aplicació? 139 00:08:02,460 --> 00:08:06,030 Bàsicament, funciona a través d'una API. 140 00:08:06,030 --> 00:08:08,660 En altres paraules, tenim certs paràmetres aquí. 141 00:08:08,660 --> 00:08:11,360 Comptem amb els paràmetres del que en realitat estem buscant, 142 00:08:11,360 --> 00:08:13,720 Quins són aquests noms, i després tenim l'immoble alguns altres, 143 00:08:13,720 --> 00:08:16,570 com l'eix Y i l'eix X. 144 00:08:16,570 --> 00:08:18,440 Vostè pot veure que tenim algunes opcions diferents pel que fa a la 145 00:08:18,440 --> 00:08:20,860 temps de resolució a utilitzar i aquest tipus de coses. 146 00:08:20,860 --> 00:08:26,700 Tenim aquestes opcions quant a les dades que realment volem de la base de dades, 147 00:08:26,700 --> 00:08:29,400 i volem obtenir aquestes dades d'alguna manera útil. 148 00:08:29,400 --> 00:08:34,020 En general, si es consulta la base de dades directament seria una espècie de ser un dolor per fer 149 00:08:34,020 --> 00:08:38,970 presumiblement perquè aquestes dades sobre els noms del nadó viu en alguna base de dades en algun lloc, 150 00:08:38,970 --> 00:08:42,789 i seria realment complicat haver de consultar manualment 151 00:08:42,789 --> 00:08:45,830 i decidir exactament quines dades per tornar. 152 00:08:45,830 --> 00:08:49,300 En altres paraules, només es preocupen per Jennifer i Thomas en aquest cas, 153 00:08:49,300 --> 00:08:53,410 i només es preocupen en un determinat eix i totes aquestes coses. 154 00:08:53,410 --> 00:08:55,720 >> Com podem evitar això? 155 00:08:55,720 --> 00:09:01,200 Per aprofundir en aquesta API una mica més et vaig a mostrar un altre exemple d'aquesta plataforma 156 00:09:01,200 --> 00:09:04,490 que utilitza un conjunt de dades lleugerament diferent. 157 00:09:04,490 --> 00:09:09,950 Aquest conjunt de dades, en lloc de ser els noms del nadó, és en realitat la totalitat 158 00:09:09,950 --> 00:09:12,460 imprimir dades de publicacions de la Biblioteca Oberta, 159 00:09:12,460 --> 00:09:18,410 que és una font gegant de textos publicats al llarg dels últims 100 anys més o menys. 160 00:09:18,410 --> 00:09:23,540 La idea és que tenim aquesta compository de milions i milions de textos, 161 00:09:23,540 --> 00:09:27,420 que ara podem buscar paraules i frases diferents polz 162 00:09:27,420 --> 00:09:30,840 Aquest és un exemple que varia una mica diferent de l'exemple anterior 163 00:09:30,840 --> 00:09:33,350 Et vaig mostrar, que és que tenim aquests 3 consultes de cerca, 164 00:09:33,350 --> 00:09:36,290 la guerra, la guerra i la paraula francesa per a la guerra, que és guerre. 165 00:09:36,290 --> 00:09:40,380 I estem buscant dins dels 3 diferents seccions de la base de dades total. 166 00:09:40,380 --> 00:09:45,080 En altres paraules, en aquesta primera consulta, nosaltres només estem buscant als EUA, 167 00:09:45,080 --> 00:09:51,150 en el segon, només al Regne Unit, i el tercer només de les obres publicades a França. 168 00:09:51,150 --> 00:09:53,120 Veiem alguns patrons interessants. 169 00:09:53,120 --> 00:09:58,180 Per exemple, veiem a la tornada d'aquí que- 170 00:09:58,180 --> 00:10:02,410 Vaja, em va espatllar l'eix una mica, però es pot veure a la dreta en aquest rang aquí 171 00:10:02,410 --> 00:10:05,730 al voltant de la Guerra Civil hi ha un gran repunt en l'edició americana 172 00:10:05,730 --> 00:10:08,340 però no un gran repunt en els altres dos, i això és òbviament perquè 173 00:10:08,340 --> 00:10:10,880 la Guerra Civil que estava succeint en aquell moment. 174 00:10:10,880 --> 00:10:13,890 >> Podem veure algunes coses interessants allà, 175 00:10:13,890 --> 00:10:17,070 però el que realment importa és com arribem a aquestes dades. 176 00:10:17,070 --> 00:10:21,320 Et portaré darrere de les escenes d'aquesta aplicació en una mica. 177 00:10:21,320 --> 00:10:24,540 Un bon truc és que si vostè està treballant amb el lloc i el tipus de volen saber 178 00:10:24,540 --> 00:10:27,430 el que passa darrere de les escenes, pot obrir les eines de desenvolupament. 179 00:10:27,430 --> 00:10:30,200 Vaig a estar utilitzant eines de Chrome per a desenvolupadors, i per arribar als 180 00:10:30,200 --> 00:10:35,160 vostè pot fer el control, shift, J, i que et porta a la consola de JavaScript. 181 00:10:35,160 --> 00:10:37,420 Hi ha algunes fitxes aquí. 182 00:10:37,420 --> 00:10:39,680 Tots ells poden ser molt útils en diferents circumstàncies, però em preocupo per la xarxa 183 00:10:39,680 --> 00:10:44,150 fitxa en aquest moment, i que en realitat ha de actualitzar per aconseguir el treball. 184 00:10:44,150 --> 00:10:50,180 Oh, ho sento. 185 00:10:50,180 --> 00:10:52,320 Li agrada donar un exemple a l'atzar. 186 00:10:52,320 --> 00:10:54,700 Bé, utilitzarem aquest exemple llavors. 187 00:10:54,700 --> 00:11:01,330 >> La idea és que hi ha aquí aquesta API, 188 00:11:01,330 --> 00:11:05,330 i vostè pot veure exactament el que l'API està tornant. 189 00:11:05,330 --> 00:11:10,220 Això és el que l'aplicació està a la volta de l'API d'haver enviat la sol · licitud. 190 00:11:10,220 --> 00:11:13,680 Permetin-me ampliar una mica, 191 00:11:13,680 --> 00:11:18,340 i que, bàsicament, pot veure que és només una sèrie de parells de valors clau en JSON. 192 00:11:18,340 --> 00:11:23,220 En altres paraules, tenim aquest HashMap aquí que l'assignació de valors. 193 00:11:23,220 --> 00:11:26,440 En altres paraules, és la cartografia anys a valors. 194 00:11:26,440 --> 00:11:32,600 En 1765, qualsevol paraula que inicialment buscat s'usa 90 vegades 195 00:11:32,600 --> 00:11:35,810 d'1 milió, així que estem tornant a aquest resultat. 196 00:11:35,810 --> 00:11:40,280 No és exactament JSON ja que tenim aquesta capçalera resultat poc aquí, 197 00:11:40,280 --> 00:11:45,630 però observi que aquest objecte sencer aquí és només una gran taca gran JSON. 198 00:11:45,630 --> 00:11:51,070 Tenim aquí una sèrie que conté aquest element del seu conjunt, 199 00:11:51,070 --> 00:11:55,590 i es pot veure que tot element acaba allà, i després tenim un altre gran element 200 00:11:55,590 --> 00:11:59,430 que va tot el camí fins al final, i que acaba aquí. 201 00:11:59,430 --> 00:12:02,200 Comptem amb una àmplia molt gran amb 2 objectes-hi, 202 00:12:02,200 --> 00:12:04,630 i cada un d'aquests objectes és un HashMap. 203 00:12:04,630 --> 00:12:07,340 Es pot veure en cada un d'aquests HashMaps s'observa una associació 204 00:12:07,340 --> 00:12:12,700 d'aquest valor d'índex 0 i el valor d'aquest valor a un altre HashMap, 205 00:12:12,700 --> 00:12:18,360 que al seu torn és el mapeig de valors de l'eix X amb els valors de l'eix Y. 206 00:12:18,360 --> 00:12:20,970 >> Vostè pot veure JSON posa una mica complicat, però en general, 207 00:12:20,970 --> 00:12:24,190 en realitat és molt útil, i és molt fàcil d'accedir en comparació amb 208 00:12:24,190 --> 00:12:27,390 altres diferents formes de notació. 209 00:12:27,390 --> 00:12:30,550 Quant al que en realitat estem enviant dades a l'API per obtenir, 210 00:12:30,550 --> 00:12:34,690 Vaig a entrar a la part de darrere una mica aquí. 211 00:12:34,690 --> 00:12:39,850 Aquest és el gran arxiu JavaScript que està manejant totes les interaccions de l'aplicació web, 212 00:12:39,850 --> 00:12:44,810 pel que no els importa la major part d'això, però ens preocupem per part d'ella. 213 00:12:44,810 --> 00:12:47,410 Per exemple, ens preocupem per aquesta funció BuildQuery, 214 00:12:47,410 --> 00:12:50,670 i la idea d'aquesta funció és bàsicament el que està buscant al voltant de la pàgina, 215 00:12:50,670 --> 00:12:53,750 esbrinar el que l'usuari vol consultar, en altres paraules, 216 00:12:53,750 --> 00:12:57,090 la comprovació de les caixes on han aportacions dels seus termes de cerca, 217 00:12:57,090 --> 00:13:01,380 comprovació dels diferents valors I i de l'eix X que han triat i tot aquest tipus de coses, 218 00:13:01,380 --> 00:13:06,650 i que va a escopir aquest valor de la consulta, que després es pot enviar a l'API. 219 00:13:06,650 --> 00:13:09,180 >> Això sembla complicat, i és complicat bastant 220 00:13:09,180 --> 00:13:18,090 però el que vaig a fer, de fet, ja estic fent això, que és gran- 221 00:13:18,090 --> 00:13:21,640 és que em vaig a posar la consola per imprimir exactament aquest valor consulta 222 00:13:21,640 --> 00:13:28,110 que està enviant fora a l'API. 223 00:13:28,110 --> 00:13:30,870 Això és en realitat aquí mateix. Ho sentim, imprimeix un munt de coses. 224 00:13:30,870 --> 00:13:33,690 Però això és el que ens importa, aquest objecte aquí. 225 00:13:33,690 --> 00:13:35,300 Aquest és l'objecte de la consulta. 226 00:13:35,300 --> 00:13:40,670 En altres paraules, això és exactament el que l'aplicació web és l'enviament a l'API, 227 00:13:40,670 --> 00:13:45,730 i així que anem a veure aquí a una mica, i veiem que tenim alguns valors aquí. 228 00:13:45,730 --> 00:13:48,710 Veiem que tenim aquest tipus de recompte, que és ocurrències per milió de paraules, 229 00:13:48,710 --> 00:13:51,460 que és exactament el que hem triat en l'eix I d'aquí. 230 00:13:51,460 --> 00:13:53,740 Aquí és on que ve. 231 00:13:53,740 --> 00:13:58,010 Tenim un valor de base de dades, el que significa que hi ha una base de dades determinada 232 00:13:58,010 --> 00:14:01,610 que aquestes dades es viu, i volem accedir a aquestes dades específicament 233 00:14:01,610 --> 00:14:04,950 en lloc dels noms de nadó de dades, per exemple. 234 00:14:04,950 --> 00:14:08,320 Després tenim aquest valor grups, 235 00:14:08,320 --> 00:14:12,090 que ja és dir que volem buscar per any en comparació amb 236 00:14:12,090 --> 00:14:16,030 qualsevol altre valor X eix. 237 00:14:16,030 --> 00:14:19,040 Llavors tenim un mètode, que algunes API farà diverses coses. 238 00:14:19,040 --> 00:14:22,360 En altres paraules, aquesta API també pot retornar altres tipus de dades, 239 00:14:22,360 --> 00:14:27,740 però en aquest cas, volem que el mapeig de valors de l'eix X amb els valors de l'eix Y. 240 00:14:27,740 --> 00:14:30,730 Això és el que està dient que fer allà, 241 00:14:30,730 --> 00:14:35,020 i tenim aquesta matriu recerca límits, que conté dos valors. 242 00:14:35,020 --> 00:14:40,720 El primer és el que veiem aquí, que és de tots els valors 243 00:14:40,720 --> 00:14:43,020 continguda dins d'aquesta petita caixa primer en la part superior. 244 00:14:43,020 --> 00:14:47,570 >> En altres paraules, volem buscar la paraula batalla, i volem filtrar 245 00:14:47,570 --> 00:14:51,920 per textos en espanyol dins de la literatura americana. 246 00:14:51,920 --> 00:14:54,590 Tenim aquest país, que és EUA. 247 00:14:54,590 --> 00:14:59,130 Tenim una llengua, que és l'anglès, així que tenim tots aquests diferents parts 248 00:14:59,130 --> 00:15:02,690 que estan dient l'API exactament el que volem. 249 00:15:02,690 --> 00:15:04,940 No sabem quins són les dades que obtenim d'esquena és, però, 250 00:15:04,940 --> 00:15:10,970 però sabem que les dades es van a prendre una forma determinada. 251 00:15:10,970 --> 00:15:13,650 Aquest exemple és una espècie de al costat complicat, 252 00:15:13,650 --> 00:15:16,180 i no necessàriament seria l'ús d'una API aquest complex, 253 00:15:16,180 --> 00:15:20,600 però això és mostrar l'abast i poder del que API pot fer. 254 00:15:20,600 --> 00:15:24,980 En altres paraules, utilitzant un sistema de consulta relativament simple que bàsicament tenen un quadre d'entrada 255 00:15:24,980 --> 00:15:29,490 amb uns selectors d'alguns altres en diferents llocs. 256 00:15:29,490 --> 00:15:32,010 >> Permetin-me amplia aquí. 257 00:15:32,010 --> 00:15:37,720 Tenim un quadre d'entrada amb una selecció de metadades diferents poques, 258 00:15:37,720 --> 00:15:40,610 i comptem amb eix Y i l'eix X seleccions. 259 00:15:40,610 --> 00:15:42,830 En realitat no tenen camps que molts 260 00:15:42,830 --> 00:15:46,210 i podem veure molt fàcilment que som capaços de consultar algun tipus d'API 261 00:15:46,210 --> 00:15:48,510 i obtenir dades de tornada i després el va posar en aquesta taula, 262 00:15:48,510 --> 00:15:52,080 que després es mostrarà d'una manera útil. 263 00:15:52,080 --> 00:15:54,970 Per veure un altre exemple que pot resultar una mica més familiar per vostès 264 00:15:54,970 --> 00:15:56,510 anem a recórrer a Facebook. 265 00:15:56,510 --> 00:15:59,440 API de Facebook que es diu el Gràfic de Facebook, 266 00:15:59,440 --> 00:16:04,390 i, bàsicament, el que significa que és Facebook es veu com aquesta enorme base de dades 267 00:16:04,390 --> 00:16:08,000 de moltes parts diferents que tenen totes les relacions determinades entre si. 268 00:16:08,000 --> 00:16:11,070 En altres paraules, sóc un usuari de Facebook, així que tinc un perfil, 269 00:16:11,070 --> 00:16:14,310 i també tinc alguns amics, i cada un d'ells té un perfil, 270 00:16:14,310 --> 00:16:17,580 i cada un dels meus amics té un mur, que té diferents comentaris sobre el mateix, 271 00:16:17,580 --> 00:16:20,800 i cada un d'aquests comentaris té gustos i totes aquestes coses. 272 00:16:20,800 --> 00:16:23,100 >> Hi ha un munt de parts diferents a Facebook. 273 00:16:23,100 --> 00:16:26,670 És una API enormement complex, i hi ha un munt que pots fer amb ell, 274 00:16:26,670 --> 00:16:28,450 però en realitat és bastant fàcil d'utilitzar. 275 00:16:28,450 --> 00:16:33,680 Vaig a començar per anar a graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 com és el meu nom de compte únic, i el seu nom de compte serà o bé 277 00:16:38,430 --> 00:16:43,710 algun tipus de paraula si l'ha triat, o potser només sigui una cadena de nombres. 278 00:16:43,710 --> 00:16:46,360 El que s'obté és informació bastant bàsica. 279 00:16:46,360 --> 00:16:50,460 Veiem que tinc un nom, que és Billy, un cognom, que és Janitsch. 280 00:16:50,460 --> 00:16:53,370 Hi ha una única ID de Facebook que tinc. 281 00:16:53,370 --> 00:16:57,920 Es pot veure que sóc home i que tinc la meva configuració d'idioma 282 00:16:57,920 --> 00:17:01,290 per Anglès britànic. 283 00:17:01,290 --> 00:17:03,490 En altres paraules, estem veient una informació molt bàsica aquí. 284 00:17:03,490 --> 00:17:08,670 No és massa, però ens dóna una idea del que hi ha. 285 00:17:08,670 --> 00:17:10,849 >> Podem fer el mateix amb David Malan, per exemple. 286 00:17:10,849 --> 00:17:13,599 Crec que el seu nom és dmalan. 287 00:17:13,599 --> 00:17:16,369 Veiem David Malan té un identificador únic. 288 00:17:16,369 --> 00:17:19,300 Ell té un nom, nom de pila, segon nom, cognom. 289 00:17:19,300 --> 00:17:24,210 També veiem que és home i té el seu conjunt d'idiomes per als Estats Units Anglès. 290 00:17:24,210 --> 00:17:26,869 En altres paraules, estem veient bastant informació bàsica aquí. 291 00:17:26,869 --> 00:17:28,860 Ara, què passa si intentem veure alguna cosa més? 292 00:17:28,860 --> 00:17:33,060 Diguem que jo estic interessat en el que David Malan ha agradat a Facebook. 293 00:17:33,060 --> 00:17:36,860 Que puc fer / talla. Ara ens hem trobat amb un problema. 294 00:17:36,860 --> 00:17:39,280 Tenim una mena d'error que diu que un testimoni d'accés 295 00:17:39,280 --> 00:17:41,660 està obligat a sol · licitar aquest recurs. 296 00:17:41,660 --> 00:17:44,730 Però si es pensa en això, que en realitat té sentit perquè seria estrany 297 00:17:44,730 --> 00:17:47,830 si es pot accedir a cada part de la base de dades de Facebook 298 00:17:47,830 --> 00:17:50,170 només a partir d'algun tipus d'API simple, oi? 299 00:17:50,170 --> 00:17:56,040 En altres paraules, és de suposar que la seva informació no es pot accedir per qualsevol persona que ho desitgi. 300 00:17:56,040 --> 00:17:58,330 >> Aquest error és precisament el que significa. 301 00:17:58,330 --> 00:18:03,630 Algunes API requereixen certs autorització per accedir a les seves dades. 302 00:18:03,630 --> 00:18:06,940 I APIs encara més avançada, com el Facebook un, 303 00:18:06,940 --> 00:18:09,840 requerirà certs permisos per fer certes coses. 304 00:18:09,840 --> 00:18:12,650 Puc veure aquesta informació bàsica sobre David Malan. 305 00:18:12,650 --> 00:18:15,950 Puc veure que és masculí i que viu als EUA, 306 00:18:15,950 --> 00:18:19,270 però no puc veure res més enllà d'això. 307 00:18:19,270 --> 00:18:23,050 Per evitar això, per ara, Facebook té aquesta bona eina 308 00:18:23,050 --> 00:18:27,690 que és la gràfica API explorador, i la idea que es pot ordenar de 309 00:18:27,690 --> 00:18:31,880 compensar els permisos per a tu mateix sobre la base del seu propi compte 310 00:18:31,880 --> 00:18:35,680 a continuació, veure les coses que específicament seu compte pot veure. 311 00:18:35,680 --> 00:18:45,120 Per exemple, si faig graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Vaja, suposo que he de revalidar el meu testimoni aquí. 313 00:18:53,510 --> 00:18:55,950 Bé. 314 00:18:55,950 --> 00:19:01,740 Si ho faig de nou, genial, ara veig que em surt aquest objecte de nou 315 00:19:01,740 --> 00:19:06,300 que diu que m'agraden els fideus de la piscina, que es troben en la categoria Jocs i joguines. 316 00:19:06,300 --> 00:19:08,620 M'agrada morses, que són a la categoria dels Animals. 317 00:19:08,620 --> 00:19:10,180 Aquests són els meus gustos real Facebook. 318 00:19:10,180 --> 00:19:13,280 Són una mica violent. 319 00:19:13,280 --> 00:19:16,090 >> Però podem veure totes aquestes dades es tornen en JSON. 320 00:19:16,090 --> 00:19:18,160 És molt fàcil de llegir. 321 00:19:18,160 --> 00:19:20,970 En altres paraules, tenim aquesta assignació de dades d'algun tipus d'una matriu, 322 00:19:20,970 --> 00:19:25,220 i cada element d'aquesta matriu és un HashMap que mapeja 323 00:19:25,220 --> 00:19:28,530 el nom d'un producte i la categoria d'un igual. 324 00:19:28,530 --> 00:19:31,240 Cadascun com té un identificador únic. 325 00:19:31,240 --> 00:19:34,510 Hi ha tot tipus de coses diferents de dades que podem obtenir, 326 00:19:34,510 --> 00:19:37,980 i si vostè està interessat en l'ús de l'API de Facebook per a un projecte final CS50 327 00:19:37,980 --> 00:19:40,720 o alguna cosa com això en realitat és bastant factible. 328 00:19:40,720 --> 00:19:44,260 Bàsicament com moure per la cosa d'autenticació és Facebook 329 00:19:44,260 --> 00:19:48,030 utilitza un sistema anomenat OAuth, o autenticació oberta, 330 00:19:48,030 --> 00:19:52,870 i jo no vull entrar en això ara perquè OAuth o els diferents tipus 331 00:19:52,870 --> 00:19:56,060 d'autenticació tendeix a variar molt entre diferents APIs, 332 00:19:56,060 --> 00:19:58,320 pel que podia passar molt temps revisant cada un, 333 00:19:58,320 --> 00:20:01,170 però en realitat són bastant auto-explicatiu. 334 00:20:01,170 --> 00:20:04,050 >> Si Google API de Facebook és molt fàcil de llegir. 335 00:20:04,050 --> 00:20:06,670 Hi ha un conjunt d'especificacions. 336 00:20:06,670 --> 00:20:10,210 Per exemple, aquesta és la documentació de l'API de Facebook, 337 00:20:10,210 --> 00:20:14,170 i es pot veure que estic a la pàgina d'usuari, pel que pot aprendre tot sobre els diferents tipus de coses 338 00:20:14,170 --> 00:20:17,170 que estan disponibles per aconseguir les dades de la mesura del 339 00:20:17,170 --> 00:20:21,550 i també els diferents permisos que necessito per poder accedir-hi. 340 00:20:21,550 --> 00:20:25,470 Com hem vist, no és necessari tenir autorització per accedir al nom o el gènere, 341 00:20:25,470 --> 00:20:29,380 però més enllà que cal tenir permisos per a la majoria de les coses. 342 00:20:29,380 --> 00:20:33,040 Aquesta pàgina, o millor dit, aquest lloc web també li dirà com arribar 343 00:20:33,040 --> 00:20:35,640 un símbol de poder autenticar. 344 00:20:35,640 --> 00:20:39,290 La majoria dels sistemes d'autenticació d'utilitzar algun tipus de senyal 345 00:20:39,290 --> 00:20:42,880 on s'obté aquest valor únic, que és una cadena molt llarga i aleatòria, 346 00:20:42,880 --> 00:20:46,240 i de quina manera es pot associar a la sol · licitud que vostè està fent amb vostè. 347 00:20:46,240 --> 00:20:50,560 En altres paraules, ells saben que no estàs fent res sospitós amb les seves dades. 348 00:20:50,560 --> 00:20:53,340 Ells saben exactament el que està rebent. 349 00:20:53,340 --> 00:20:56,180 També saben que tens permís per veure aquesta informació. 350 00:20:56,180 --> 00:20:59,110 >> Si heu fet la aplicació de Facebook i la seva aplicació té certs usuaris, 351 00:20:59,110 --> 00:21:03,380 i els usuaris que han permès aplicació per accedir a certes parts del seu perfil, 352 00:21:03,380 --> 00:21:07,790 llavors qualsevol cosa API clau o símbol que aquesta aplicació està utilitzant 353 00:21:07,790 --> 00:21:11,090 serà capaç d'accedir a les dades per a aquests usuaris. 354 00:21:11,090 --> 00:21:13,780 Això pot semblar complicat, però no és tan dolent, 355 00:21:13,780 --> 00:21:16,810 i si vols utilitzar Facebook Jo recomanaria que vostè 356 00:21:16,810 --> 00:21:18,990 considerar jugar amb la seva API. 357 00:21:18,990 --> 00:21:21,610 És molt bo, i vostè pot fer un munt de coses diferents a ella. 358 00:21:21,610 --> 00:21:24,880 Si l'usuari li concedeix aquests permisos pot fins i tot tornar a l'API 359 00:21:24,880 --> 00:21:28,820 i dir que vols publicar en realitat a la paret de l'usuari, o vull tenir publicar una foto, 360 00:21:28,820 --> 00:21:32,390 i per això en el seu servei de notícies que de vegades hauràs aquestes coses molestes 361 00:21:32,390 --> 00:21:37,840 dient que el seu amic ha vist el vídeo en algun lloc estrany o alguna cosa per l'estil. 362 00:21:37,840 --> 00:21:43,120 Això és perquè l'aplicació ha tingut accés a publicar al mur d'aquesta persona. 363 00:21:43,120 --> 00:21:48,350 La idea general de l'API de Facebook és bastant complicat, però també és útil realment. 364 00:21:48,350 --> 00:21:53,220 Definitivament val la pena visitar si vostè encara està buscant un projecte final. 365 00:21:53,220 --> 00:21:57,930 >> Un altre conjunt d'APIs que em vaig a anar de nou és CS50 API. 366 00:21:57,930 --> 00:22:00,070 Permetin-me fer un zoom aquí. 367 00:22:00,070 --> 00:22:03,390 CS50 realitat ha reunit una sèrie d'APIs 368 00:22:03,390 --> 00:22:07,080 que es pot utilitzar per a un projecte final o simplement per a qualsevol cosa que vostè està fent. 369 00:22:07,080 --> 00:22:12,830 I estan majoritàriament relacionats amb la Universitat de Harvard, i varien des del menú HUDS, 370 00:22:12,830 --> 00:22:17,780 per exemple, a aquesta API Harvard Esdeveniments, que li permetrà accedir a una llista de 371 00:22:17,780 --> 00:22:21,290 diferents esdeveniments que estan succeint a Harvard i aquest tipus de coses. 372 00:22:21,290 --> 00:22:24,510 I, llavors, pot fer clic a qualsevol d'aquests i obtenir una especificació per a això, 373 00:22:24,510 --> 00:22:28,090 que podràs trobar per a qualsevol API, i és la idea 374 00:22:28,090 --> 00:22:33,920 li permet saber, A, específicament el de sol · licitar a l'API i com sol · licitar. 375 00:22:33,920 --> 00:22:37,370 En altres paraules, si voleu que tots els esdeveniments que estan succeint demà 376 00:22:37,370 --> 00:22:42,550 llavors he de òbviament donar-li aquesta data que desitja en un format determinat, 377 00:22:42,550 --> 00:22:46,030 i B, que em dirà exactament el que donarà a mi. 378 00:22:46,030 --> 00:22:48,590 Li dic que vaig a tornar aquest objecte JSON, 379 00:22:48,590 --> 00:22:50,960 o com vostè pot veure, hi ha diferents formats. 380 00:22:50,960 --> 00:22:54,050 >> També pot retornar les dades com un arxiu CSV, per exemple. 381 00:22:54,050 --> 00:22:57,620 Però vostè sap exactament com aquesta informació es veurà quan t'ho torna 382 00:22:57,620 --> 00:23:00,610 així que vostè pot esperar per fer certes coses amb ella. 383 00:23:00,610 --> 00:23:07,240 Ens pot desplaçar cap avall i veure, per exemple, si vol consultar l'API 384 00:23:07,240 --> 00:23:11,500 per obtenir un calendari, llavors podem utilitzar aquesta URL en particular 385 00:23:11,500 --> 00:23:16,480 i li donen certs paràmetres que seran les dades que volem exactament. 386 00:23:16,480 --> 00:23:19,540 I de la mateixa manera, si volem que les dades de nou en un format determinat, 387 00:23:19,540 --> 00:23:23,790 llavors podem fer per mostrar les dades en un arxiu CSV, 388 00:23:23,790 --> 00:23:27,700 i això és un altre paràmetre que estem passant a l'API. 389 00:23:27,700 --> 00:23:29,210 Un munt de coses interessants que fer. 390 00:23:29,210 --> 00:23:32,550 Sens dubte recomanem que visitis les API CS50. 391 00:23:32,550 --> 00:23:36,000 >> Vaig a mirar aquesta API Aliments de Harvard, en particular per una mica. 392 00:23:36,000 --> 00:23:39,870 Una cosa que he fet és dissenyat aquest lloc web Harvard Noms, 393 00:23:39,870 --> 00:23:44,930 que utilitza l'API Dinar CS50 per recuperar el menú HUDS per al dia. 394 00:23:44,930 --> 00:23:50,400 I per a la gent d'escola d'extensió, HUDS és el servei de menjador a Harvard. 395 00:23:50,400 --> 00:23:55,130 El que s'obté és aquesta pàgina que conté tots els àpats del dia, així que veiem el dinar. 396 00:23:55,130 --> 00:23:58,130 Tenim unes categories diferents. Tenim el fesol i l'estació de gra sencer. 397 00:23:58,130 --> 00:24:00,340 Tenim l'estació arròs integral. 398 00:24:00,340 --> 00:24:03,360 Podem veure que tenim per el brunch aquests aliments pocs. 399 00:24:03,360 --> 00:24:07,030 Si fem clic sobre ells, llavors obtenim la informació nutricional. 400 00:24:07,030 --> 00:24:12,240 Vostè veu aquesta és la informació nutricional de aranja, en cas que es pregunten. 401 00:24:12,240 --> 00:24:14,870 I així, una vegada més, anem a mirar a la part de darrere aquí una mica 402 00:24:14,870 --> 00:24:18,530 i veure exactament què està fent això per obtenir aquestes dades. 403 00:24:18,530 --> 00:24:21,710 I resulta que en realitat no ser molt complex en absolut. 404 00:24:21,710 --> 00:24:28,720 Aquest arxiu es veu una mica desordenat i tingueu en compte que aquest és el maneig de tot el lloc web, 405 00:24:28,720 --> 00:24:34,130 i si em desplaço cap avall veiem aquesta funció de canvi de dades. 406 00:24:34,130 --> 00:24:36,630 >> Ara, només perquè quedi clar, això està escrit en CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 que és un llenguatge que és probable que no hagi vist abans. 408 00:24:39,570 --> 00:24:44,810 Però és molt fàcil de llegir, així que vaig a caminar a través d'ell com si es tractés d'pseudocodi. 409 00:24:44,810 --> 00:24:49,080 Data de canvi és una funció que prendrà en aquest valor de data, 410 00:24:49,080 --> 00:24:51,740 i també es prendrà en un principi, el que no els importa tant. 411 00:24:51,740 --> 00:24:54,110 Però l'important és que té aquesta data, 412 00:24:54,110 --> 00:25:00,080 i aquesta data és el dia que volem demanar a tots els articles de menjar per. 413 00:25:00,080 --> 00:25:04,030 I després veus que tenim una mica de sintaxi aquí, 414 00:25:04,030 --> 00:25:09,000 que és bàsicament analitzar aquesta data en un format llegible. 415 00:25:09,000 --> 00:25:11,920 En altres paraules, l'API requereix la data en un format determinat. 416 00:25:11,920 --> 00:25:17,390 No es pot dir 16 novembre 2012 AD. 417 00:25:17,390 --> 00:25:20,320 No sabrà què fer amb això. Vol la data en un format específic. 418 00:25:20,320 --> 00:25:23,230 Tot el que estem fent aquí és el que dóna exactament aquest format, 419 00:25:23,230 --> 00:25:26,520 que és un valor any i després un guió, un valor mesos, 420 00:25:26,520 --> 00:25:29,420 altre guió i el valor de data. 421 00:25:29,420 --> 00:25:34,910 I també diem que volem que les dades siguin sortides en JSON. 422 00:25:34,910 --> 00:25:37,560 >> Ara estem fent aquesta petició AJAX, i com he esmentat abans, 423 00:25:37,560 --> 00:25:41,680 jQuery té aquesta funció super útil AJAX que tot el que ha de fer és especificar 424 00:25:41,680 --> 00:25:45,780 alguns paràmetres baix aquí, i li tornarà exactament el que vols. 425 00:25:45,780 --> 00:25:50,490 Ho estem dient que la direcció que vol que vagi a aquesta API és menjar CS50, 426 00:25:50,490 --> 00:25:52,270 que ens van donar de l'especificació. 427 00:25:52,270 --> 00:25:56,730 Diem que volem que les dades en JSON i que 428 00:25:56,730 --> 00:25:59,490 donarem aquestes dades que hem definit aquí. 429 00:25:59,490 --> 00:26:02,670 Aquest és el dia que volem que els aliments per. 430 00:26:02,670 --> 00:26:07,790 I llavors tot el que has de fer és definir algun tipus de funció èxit, 431 00:26:07,790 --> 00:26:11,980 que és bàsicament el que succeeix quan l'API retorna les dades. 432 00:26:11,980 --> 00:26:15,490 En altres paraules, hem empaquetat de tots els paràmetres que vulguem, 433 00:26:15,490 --> 00:26:20,530 que en aquest cas és el dia en què el volem i el fet que la volem en JSON, 434 00:26:20,530 --> 00:26:23,840 i el va enviar a l'API, de manera que ara l'API està dient, està bé, 435 00:26:23,840 --> 00:26:26,350 Aquí està la seva informació, el tinc de nou. 436 00:26:26,350 --> 00:26:29,930 Tenim èxit de la funció, ja que vol dir que l'API 437 00:26:29,930 --> 00:26:32,230 amb èxit retorna algunes dades, què fem amb ell? 438 00:26:32,230 --> 00:26:35,980 >> I resulta que l'únic que fan és cridar a aquesta funció del menú d'actualització 439 00:26:35,980 --> 00:26:42,680 amb el que l'API ha tornat, de manera que podem buscar aquesta 440 00:26:42,680 --> 00:26:47,970 i veure que tot el que estem fent des d'un munt de nova sintaxi aquí 441 00:26:47,970 --> 00:26:52,220 per actualitzar el codi HTML i inserir aquestes noves dades. 442 00:26:52,220 --> 00:26:56,580 El que això permet és que tenim aquestes fletxes a cada costat, i fem clic pot, 443 00:26:56,580 --> 00:27:01,060 i ara estem veient les dades per al dia següent i de nou per al dia següent, 444 00:27:01,060 --> 00:27:04,820 i cada vegada que s'actualitza el valor de data i la consulta de l'API, 445 00:27:04,820 --> 00:27:07,510 tornar a estar algunes dades i posar-la al lloc. 446 00:27:07,510 --> 00:27:10,590 Un cop més, es pot veure, super, super útil. 447 00:27:10,590 --> 00:27:14,410 Aquesta aplicació em va prendre un parell d'hores per hackejar junts, 448 00:27:14,410 --> 00:27:20,140 i tinc l'experiència una mica més, és clar, però el seu projecte final CS50 449 00:27:20,140 --> 00:27:22,870 Pot ser una cosa molt semblant a això. 450 00:27:22,870 --> 00:27:29,540 >> APIs són súper potent per la quantitat d'esforç que es prenen. 451 00:27:29,540 --> 00:27:32,800 L'últim que vaig a anar de nou és una API de poc més àmplia. 452 00:27:32,800 --> 00:27:35,480 No vaig a arribar tan lluny en la mesura del què fan concretament, 453 00:27:35,480 --> 00:27:38,740 però et vaig a donar una idea del que hi ha allà fora. 454 00:27:38,740 --> 00:27:42,700 2 els realment útils, si vostè està interessat en l'anàlisi de dades o la visualització 455 00:27:42,700 --> 00:27:45,960 o alguna cosa per l'estil, són Freebase i Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-presumiblement tots vostès saben, és una enciclopèdia en línia lliure, 457 00:27:49,800 --> 00:27:53,230 i que en realitat té una API, de manera que si ho desitja, per exemple, 458 00:27:53,230 --> 00:27:56,250 obtenir tots els textos i els articles per al pop 459 00:27:56,250 --> 00:27:58,030 vostè pot fàcilment fer això. 460 00:27:58,030 --> 00:28:02,300 Només dir hey, Wikipedia API, m'agradaria que les dades retornats com aquest, 461 00:28:02,300 --> 00:28:07,010 i m'agradaria que en aquest format, i l'article que m'agradaria és pop, 462 00:28:07,010 --> 00:28:09,820 i molt aviat se li va a tornar aquesta informació. 463 00:28:09,820 --> 00:28:12,230 Això pot ser molt útil si voleu fer algun tipus de lloc 464 00:28:12,230 --> 00:28:16,200 això és un visor millor per Viquipèdia o alguna cosa per l'estil. 465 00:28:16,200 --> 00:28:21,350 >> Freebase és una espècie de semblant, encara que és una mica més difícil pel que fa a API. 466 00:28:21,350 --> 00:28:24,390 Freebase és com la Wikipedia en que és una enciclopèdia en línia 467 00:28:24,390 --> 00:28:29,050 que conté munts i munts de diferents dades sobre tot tipus de temes diferents, 468 00:28:29,050 --> 00:28:33,150 però s'emmagatzema en una base de dades relacional, que és lleugerament diferent de la Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia té els seus articles i objectes vinculats a altres articles, 470 00:28:36,410 --> 00:28:38,860 però en la seva major part, si voleu que les dades de pop, 471 00:28:38,860 --> 00:28:41,990 vas al article pop, obtenir aquestes dades, i vostè té un munt de text 472 00:28:41,990 --> 00:28:43,830 sobre els pops, i això és genial. 473 00:28:43,830 --> 00:28:46,870 Freebase funciona d'una manera lleugerament més complicat que en 474 00:28:46,870 --> 00:28:48,930 tot el que està relacionat amb un altre. 475 00:28:48,930 --> 00:28:52,620 En altres paraules, si estem a la recerca de pop 476 00:28:52,620 --> 00:28:54,940 llavors té un munt de categories associades amb ella. 477 00:28:54,940 --> 00:28:57,920 >> Per exemple, és un animal que viu sota l'aigua, 478 00:28:57,920 --> 00:28:59,710 que té una temperatura corporal determinada. 479 00:28:59,710 --> 00:29:01,210 No. 480 00:29:01,210 --> 00:29:04,230 I totes aquestes categories són enllaços a altres llocs on es pot anar 481 00:29:04,230 --> 00:29:06,640 a veure les coses amb aquesta mateixa categoria. 482 00:29:06,640 --> 00:29:13,450 En altres paraules, el conjunt de pop dades contindria un enllaç a les dades establertes per a tots els animals, 483 00:29:13,450 --> 00:29:16,790 i que em deixava moure a la base de dades molt ràpid. 484 00:29:16,790 --> 00:29:21,740 Això pot ser molt útil si vostè està fent alguna cosa així com comparacions. 485 00:29:21,740 --> 00:29:24,490 En altres paraules, donada una certa cosa, et vull veure 486 00:29:24,490 --> 00:29:27,890 Què més es relaciona amb i veure què més no està relacionat amb. 487 00:29:27,890 --> 00:29:30,700 Aquest tipus de coses. Pot ser útil en un nombre de maneres. 488 00:29:30,700 --> 00:29:34,250 Si vostè està buscant alguna cosa més que un repte i ser capaços de fer coses més complexes 489 00:29:34,250 --> 00:29:38,740 Jo consideraria fer una ullada a l'API de Freebase. 490 00:29:38,740 --> 00:29:44,670 No obstant això, en gran part, Wikipedia és un lloc molt senzill d'arribar tan lluny com l'obtenció d'informació. 491 00:29:44,670 --> 00:29:48,340 Un altre lloc que vaig a mirar és Last.fm, i de fet vaig a anar al lloc 492 00:29:48,340 --> 00:29:53,800 en cas que algunes persones no estan familiaritzats, però Last.fm és bàsicament una música 493 00:29:53,800 --> 00:29:57,220 gustos i el lloc web recomanacions. 494 00:29:57,220 --> 00:29:59,000 Vostè pot fer un compte. 495 00:29:59,000 --> 00:30:04,250 Vostè pot començar a pujar música des de la seva reproductor de música 496 00:30:04,250 --> 00:30:08,020 el lloc web, i bàsicament començarà a donar-li recomanacions de música 497 00:30:08,020 --> 00:30:10,030 d'acord amb el que escoltes. 498 00:30:10,030 --> 00:30:14,270 >> Per exemple, si vostè va a la seva pàgina de perfil-això és meu- 499 00:30:14,270 --> 00:30:18,180 es pot veure que tenen una llista de poc vaig escoltar a pistes. 500 00:30:18,180 --> 00:30:22,550 Es pot veure en general artistes favorits, totes aquestes coses, 501 00:30:22,550 --> 00:30:25,280 i de nou, hi ha una API gran darrere de Last.fm, 502 00:30:25,280 --> 00:30:29,360  i es pot utilitzar per fer munts i munts de coses molt interessants. 503 00:30:29,360 --> 00:30:38,870 Per exemple, vaig a anar a la pàgina d'un amic que té aquest lloc web Last.fm eines. 504 00:30:38,870 --> 00:30:42,380 Això és en realitat una altra plataforma que es construeix a l'API de Last.fm, 505 00:30:42,380 --> 00:30:45,420 i que fa una sèrie de boniques coses interessants. 506 00:30:45,420 --> 00:30:50,260 Si em connecto amb el meu nom d'usuari, per exemple, 507 00:30:50,260 --> 00:30:53,110 Ho puc fer per generar un núvol d'etiquetes, per exemple, 508 00:30:53,110 --> 00:30:56,480 i el que farà és donar-me de nou una imatge de 509 00:30:56,480 --> 00:30:59,850 tots els diferents gèneres i aquest tipus de coses que m'agrada escoltar. 510 00:30:59,850 --> 00:31:01,410 Com es fa això? 511 00:31:01,410 --> 00:31:05,670 Molt bàsicament està dient a l'API de Last.fm aquí està aquest usuari. 512 00:31:05,670 --> 00:31:10,710 M'agradaria saber el gènere de cada cançó que he escoltat, 513 00:31:10,710 --> 00:31:15,130 i vostè pot fer que en fer una trucada AJAX bastant simple a l'API de Last.fm. 514 00:31:15,130 --> 00:31:18,990 Vas a obtenir una llista gran, i llavors, evidentment, algunes altres coses que s'està fent 515 00:31:18,990 --> 00:31:22,280 per convertir-la en un núvol de paraules, però es pot veure en general 516 00:31:22,280 --> 00:31:25,850 que és molt fàcil d'accedir i molt fàcil d'utilitzar. 517 00:31:25,850 --> 00:31:30,750 Molt bonic per a una sèrie de coses. 518 00:31:30,750 --> 00:31:35,940 >> Crec que això és tot el que diré en general. 519 00:31:35,940 --> 00:31:39,040 Una última cosa que vaig a esmentar sobre les API en general és que 520 00:31:39,040 --> 00:31:41,840 de vegades es trobarà amb una cosa que es diu limitació de velocitat, 521 00:31:41,840 --> 00:31:44,940 i la idea de la limitació de velocitat és que no vull abusar d'APIs. 522 00:31:44,940 --> 00:31:48,130 En altres paraules, és molt bo que molts d'aquests llocs web tenen APIs 523 00:31:48,130 --> 00:31:51,070 que vostè pot anar i utilitzar de forma gratuïta. 524 00:31:51,070 --> 00:31:54,460 No obstant això, si vostè està fent milions o milers de milions de peticions al dia, 525 00:31:54,460 --> 00:31:57,610 per exemple, si vostè està encallat en un bucle infinit que està infinitament consulta 526 00:31:57,610 --> 00:32:00,680 algun tipus d'API i tornar a una enorme quantitat de dades, 527 00:32:00,680 --> 00:32:04,570 òbviament això no és bo, així que el que molta API fer és tenir aquesta característica limitant de la velocitat 528 00:32:04,570 --> 00:32:09,970 que diu que vostè només pot fer 1.000 sol · licituds per dia per adreça IP o alguna cosa per l'estil. 529 00:32:09,970 --> 00:32:12,540 I si vostè està fent un munt de proves i aquest tipus de coses, 530 00:32:12,540 --> 00:32:14,890 que de vegades es quedarà en això, i de sobte se li apaga 531 00:32:14,890 --> 00:32:18,280 i diuen que no, jo no vaig a donar més dades. 532 00:32:18,280 --> 00:32:20,000 >> El que vull fer és jugar amb les regles. 533 00:32:20,000 --> 00:32:22,950 Vostè vol assegurar-se que vostè llegeixi l'especificació API acuradament. 534 00:32:22,950 --> 00:32:26,330 Si té certes regles que se li atribueix, com només es pot fer consultes per dia X 535 00:32:26,330 --> 00:32:30,000 o que només es pot accedir a una part de la base de dades d'un cert nombre de vegades 536 00:32:30,000 --> 00:32:32,900 o alguna cosa per l'estil que vostè vol assegurar-se que s'adhereixen a això. 537 00:32:32,900 --> 00:32:38,360 Mentre jugues dins d'aquestes regles és probable que tingui un molt bon temps usant APIs. 538 00:32:38,360 --> 00:32:42,030 La seva Takeaway general és APIs són molt, molt útil. 539 00:32:42,030 --> 00:32:45,610 >> Hi ha una API per gairebé qualsevol servei web gran que hi ha. 540 00:32:45,610 --> 00:32:50,700 Gairebé qualsevol part de la suite d'eines de Google, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Calendar, totes aquestes coses tenen APIs. 542 00:32:54,390 --> 00:32:58,280 Vostè les pot utilitzar per ambdós Obtenir dades des del servidor i enviar dades al servidor. 543 00:32:58,280 --> 00:33:00,870 En altres paraules, si vostè vol fer una aplicació de calendari que pot actualitzar 544 00:33:00,870 --> 00:33:04,190 Calendari d'algú Google, hi ha una API per això. 545 00:33:04,190 --> 00:33:07,810 Si vols fer alguna cosa que et dirà on 546 00:33:07,810 --> 00:33:12,530 la ubicació d'una direcció específica és que es pot utilitzar l'API de Google Maps per això. 547 00:33:12,530 --> 00:33:15,860 APIs són increïblement útils, i estan per tot arreu. 548 00:33:15,860 --> 00:33:18,700 Si estàs interessat en algun tipus d'idea, 549 00:33:18,700 --> 00:33:22,170 és probable que hi hagi una API relacionada que pot utilitzar per obtenir una gran quantitat de dades 550 00:33:22,170 --> 00:33:25,060 molt ràpidament i molt simplement. 551 00:33:25,060 --> 00:33:28,140 >> Si vostè encara està buscant un projecte o si el que desitja és jugar 552 00:33:28,140 --> 00:33:31,820 amb alguna cosa en general, les API són definitivament val la pena. 553 00:33:31,820 --> 00:33:37,200 Gràcies, i estic encantat de respondre a qualsevol pregunta que vostè pugui tenir. 554 00:33:37,200 --> 00:33:44,900 Bé, moltes gràcies. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]