1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminè sou] [Yon ti rale yon pwogramè nan APIs] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Inivèsite Harvard] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Sa a se CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hi, tout moun, mwen Billy, ak jodi a mwen pral yo dwe ap pale de APIs, 5 00:00:12,100 --> 00:00:15,220 oswa interfaces pwogramasyon aplikasyon an, 6 00:00:15,220 --> 00:00:20,040 espesyalman nan yon kontèks CS50 pwojè final ak ki sòt de bagay. 7 00:00:20,040 --> 00:00:22,490 An jeneral sa a se yon API? 8 00:00:22,490 --> 00:00:25,530 An tèm trè laj, li nan sòt de yon nonm nan mitan ki pèmèt 2 moso 9 00:00:25,530 --> 00:00:28,610 nan lojisyèl yo kominike youn ak lòt. 10 00:00:28,610 --> 00:00:32,530 Sa a se yon kalite definisyon trè gran, epi se pa sa ki enpòtan pou ki sa nou ap chèche a. 11 00:00:32,530 --> 00:00:35,450 Ki sa nou vle reyèlman se kèk sòt de tè mitan itil 12 00:00:35,450 --> 00:00:40,570 yo kominike avèk kèk sòt de baz done kèk kote. 13 00:00:40,570 --> 00:00:43,310 >> Isit la nan yon tablo, yon ak fondamantalman lide a se ke 14 00:00:43,310 --> 00:00:46,790 nou se yon aplikasyon, epi nou vle jwenn done ki sòti nan yon baz done, 15 00:00:46,790 --> 00:00:49,570 men nou pa vle sijè rechèch baz done a dirèkteman. 16 00:00:49,570 --> 00:00:52,710 Olye de sa nou vle ale nan sa a sòt de nonm nan mitan, API la. 17 00:00:52,710 --> 00:00:55,440 Lide a dèyè ki se nimewo 2 ak 3 sou tablo ki 18 00:00:55,440 --> 00:00:57,750 yo tou de pral kapab trè konplike ak lèd. 19 00:00:57,750 --> 00:00:59,960 Nan lòt mo, lè API la ap enteroje baz done a, 20 00:00:59,960 --> 00:01:03,300 Li pwobableman pwal yo dwe lè l sèvi avèk tab SQL ak nan tout sa sòt de bagay, 21 00:01:03,300 --> 00:01:05,489 epi nou te aprann yon ti jan sou li nan CS50, men an jeneral, 22 00:01:05,489 --> 00:01:07,590 ou te remake ke li nan yon ti jan nan yon doulè. 23 00:01:07,590 --> 00:01:10,590 Li vin trè, trè konplike ak lèd, espesyalman lè w ap fè 24 00:01:10,590 --> 00:01:12,530 queries konplèks ak ki sòt de bagay sa. 25 00:01:12,530 --> 00:01:15,960 >> Ki sa nou vle reyèlman se kèk sòt de fason itil ak senp 26 00:01:15,960 --> 00:01:19,780 jwenn ke done, ak ki nan lide nan dèyè nimewo 1 ak 4 sou tablo a. 27 00:01:19,780 --> 00:01:23,600 Nan lòt mo, nou vle yon fason vrèman senp di API nan sa ki jwenn pou nou 28 00:01:23,600 --> 00:01:27,760 epi se yon fason vrèman senp yo ka resevwa ke done tounen. 29 00:01:27,760 --> 00:01:33,020 Gen se yon fason prensipal ki se ke done anjeneral voye ak resevwa, 30 00:01:33,020 --> 00:01:36,490 ki se JSON, oswa JavaScript Notasyon objè. 31 00:01:36,490 --> 00:01:40,370 Ki ka varye yon ti kras osi lwen ke ki jan ou voye demann lan bay API la. 32 00:01:40,370 --> 00:01:43,210 Nan lòt mo, si ou vle gen kèk sèten kantite done, 33 00:01:43,210 --> 00:01:46,670 ki jan ou di API a jwenn ke done yo ka varye yon ti kras. 34 00:01:46,670 --> 00:01:49,210 Pi souvan sa enplike nan fè kèk sòt de demann rezo-a. 35 00:01:49,210 --> 00:01:53,130 Nan lòt mo, gen aksè nan kèk sòt de URL ki nan pral di API la 36 00:01:53,130 --> 00:01:56,190 egzakteman sa w vle, men done sa yo, se prèske toujou voye tounen lakay yo 37 00:01:56,190 --> 00:01:59,530 nan lòt mo, nimewo 4 nan JSON. 38 00:01:59,530 --> 00:02:01,030 >> Ki sa ki JSON egzakteman? 39 00:02:01,030 --> 00:02:03,030 Kòm mwen te di, JavaScript Notasyon objè. 40 00:02:03,030 --> 00:02:07,090 Li nan fondamantalman estanda a inivèsèl pou transmèt ak resevwa done. 41 00:02:07,090 --> 00:02:11,410 Lide a se ke ou gen kategori sa yo 3 nan bagay sa yo. 42 00:02:11,410 --> 00:02:13,540 Ou gen ranje, hashmaps, ak primitif. 43 00:02:13,540 --> 00:02:16,580 Matris ak hashmaps ou te gade yon ti jan nan CS50, 44 00:02:16,580 --> 00:02:19,870 men ou te sòt de pran yon sans trè sevè nan ki sa yo ye. 45 00:02:19,870 --> 00:02:22,780 Nan lòt mo, ak ranje ou konnen ke yo ap tape mare, 46 00:02:22,780 --> 00:02:26,560 konsa ou gen sèlman yon sèl sòt de kalite ki ale nan tout etalaj a tout antye. 47 00:02:26,560 --> 00:02:29,310 JSON se yon anpil plis tolerance ak ki sòt de bagay sa. 48 00:02:29,310 --> 00:02:33,590 Fondamantalman lide a se ou konstwi sa a objè, 49 00:02:33,590 --> 00:02:36,270 ki ka konpoze de nenpòt kilès nan 3 bagay sa yo 50 00:02:36,270 --> 00:02:39,470 epi li ka konpoze nan yo menm plizyè nan yo, epi yo ka pare solèy. 51 00:02:39,470 --> 00:02:42,110 >> Sòt isit la nan yon egzanp sou JSON, 52 00:02:42,110 --> 00:02:47,910 ki se sa yo parantèz Curly isit la reprezante hashmap ou a, 53 00:02:47,910 --> 00:02:51,400 ak yon hashmap se fondamantalman yon kat soti nan kèk sòt de kle 54 00:02:51,400 --> 00:02:53,340 nan kèk sòt de valè. 55 00:02:53,340 --> 00:02:56,440 Ou pral wè isit la ke nou gen kle nan pwopriyete yo, 56 00:02:56,440 --> 00:02:59,600 ak ki nan planifikasyon sou yon etalaj, ki se bagay sa a tout antye. 57 00:02:59,600 --> 00:03:04,120 Nou wè yon lòt eleman nan hashmap la, ki se sa a isAwesome kle yo, 58 00:03:04,120 --> 00:03:07,370 ki kat nan yon valè primitif nan verite a, nan lòt mo, yon Boolean. 59 00:03:07,370 --> 00:03:09,420 Primitif ka strings. Yo ka nonm antye relatif. 60 00:03:09,420 --> 00:03:11,960 Yo ka bools, anyen tankou sa. 61 00:03:11,960 --> 00:03:18,410 Epi ou wè sa ki nan sa a etalaj ki pwopriyete pwen gen 2 strings nan li, 62 00:03:18,410 --> 00:03:20,050 pwòp tèt ou-menm jan ak bèl bagay. 63 00:03:20,050 --> 00:03:27,410 Moun sa yo se 2 pwopriyete JSON, epi nou wè ke JSON se pè. 64 00:03:27,410 --> 00:03:30,060 Fè yon gade nan ki yon ti kras pi byen mwen pral konstwi 65 00:03:30,060 --> 00:03:32,870 yon egzanp plis konplèks nan JSON isit la. 66 00:03:32,870 --> 00:03:37,000 >> Kite la kòmanse avèk yon etalaj, pou egzanp, jis yon etalaj vid. 67 00:03:37,000 --> 00:03:39,180 Men sa a sòt de raz, se konsa nou pral ranpli li moute yon ti jan, 68 00:03:39,180 --> 00:03:43,420 ak jan mwen te di, ranje nan JSON yo tape mare, 69 00:03:43,420 --> 00:03:46,400 pou nou te kapab gen tou yon fisèl isit la, ki se hi, 70 00:03:46,400 --> 00:03:49,330 ak sa a, se yon lòt eleman nan ki etalaj. 71 00:03:49,330 --> 00:03:53,450 Konsa tou, nou te ka ajoute yon hashmapping isit la, ki se pral gen yon mapin kèk. 72 00:03:53,450 --> 00:04:00,470 Li nan pral gen yon kat soti nan non fisèl Billy la. 73 00:04:00,470 --> 00:04:04,590 Nou gen yon kat soti nan non Billy, epi nou gen yon kat nan 74 00:04:04,590 --> 00:04:10,860 pi renmen koulè ble. 75 00:04:10,860 --> 00:04:12,700 Sa a se fondamantalman yon bon ekzanp de JSON. 76 00:04:12,700 --> 00:04:18,160 Li kalite rantre nan-whoops, bezwen yon vigil gen-tout nan pati yo diferan nan li. 77 00:04:18,160 --> 00:04:21,140 Yon fwa ankò, li pa tape mare l 'nan tout, kidonk, ou ka gen nenpòt ki kalite kalite 78 00:04:21,140 --> 00:04:24,710 andedan anyen ou vle, ak lide a se li nan tèt-menm jan an. 79 00:04:24,710 --> 00:04:28,830 Nan lòt mo, dwa sa a isit la se yon objè JSON, kòm se bagay sa a tout antye, 80 00:04:28,830 --> 00:04:33,200 kòm se jis sa a, kidonk, ou ka gen yon primitif dwe yon objè, 81 00:04:33,200 --> 00:04:35,680 yon etalaj pou yon objè oswa yon hashmap dwe yon objè. 82 00:04:35,680 --> 00:04:40,270 >> Jan ou kapab kalite wè, JSON se reyèlman, reyèlman itil nan ke li nan konsa versatile. 83 00:04:40,270 --> 00:04:45,860 Ou ka gen nenpòt done posib ke ou ka vin ansent ki estoke nan JSON. 84 00:04:45,860 --> 00:04:47,900 Ki fè li yon lang reyèlman bon yo sèvi ak ak APIs 85 00:04:47,900 --> 00:04:50,770 paske li bèl anpil vle di ke pa gen pwoblèm sa done ke ou vle 86 00:04:50,770 --> 00:04:54,270 gen nan pral fè kèk fason jwenn li tounen nan JSON. 87 00:04:54,270 --> 00:04:58,600 Yon pwopriyete kèk ki fè JSON patikilyèman bon pou sa a sòt de bagay sa. 88 00:04:58,600 --> 00:05:02,270 Kòm ou ka wè, konpare ak yon anpil nan bagay sa yo ke ou ve yo te ap travay ak nan CS50 89 00:05:02,270 --> 00:05:06,040 li nan comparativement trè fasil pou li e pou tou trè fasil ekri. 90 00:05:06,040 --> 00:05:09,700 Ou ka itilize li soti si ou vle, tankou mwen te fè nan ki egzanp, 91 00:05:09,700 --> 00:05:12,990 sa ki ba ou yon bèl, vèsyon trè ke ou kapab wè vrèman byen. 92 00:05:12,990 --> 00:05:17,150 Men, ankò, li la tou fasil yo li ak ekri pou yon òdinatè. 93 00:05:17,150 --> 00:05:19,870 Nan lòt mo, li fasil analizan ak fasil Programme, 94 00:05:19,870 --> 00:05:23,820 ki vle di ke li nan bèl vit osi lwen ke lekti done a ap konsène, 95 00:05:23,820 --> 00:05:26,460 ak JSON kapab pwodwi reyèlman byen vit. 96 00:05:26,460 --> 00:05:30,300 >> Li la tou trè fasil jwenn aksè nan diferan pati nan JSON ak ki sòt de bagay. 97 00:05:30,300 --> 00:05:33,320 Sa a bèl, epi Anplis de sa, reyalite a ke li nan tèt-ki similè yo, 98 00:05:33,320 --> 00:05:36,090 nan lòt mo, lefèt ke ou ka gen JSON nan JSON nan JSON 99 00:05:36,090 --> 00:05:40,040 se reyèlman bon pou estoke done. 100 00:05:40,040 --> 00:05:45,490 Yon lòt pati ki se jeneralman reyèlman itil nan travay ak APIs se jQuery. 101 00:05:45,490 --> 00:05:49,290 Ou te aprann yon ti kras nan JavaScript, ki se yon fason bèl 102 00:05:49,290 --> 00:05:53,710 manipile HTML ak CSS nan yon sit entènèt. 103 00:05:53,710 --> 00:05:57,190 Men, li kapab kalite gen yon doulè nan kòd nan plenn JavaScript, 104 00:05:57,190 --> 00:05:59,810 lajman paske JavaScript se yon vrèman sil lang. 105 00:05:59,810 --> 00:06:03,020 Ou gen yo aprann yon anpil nan sentaks, ak jis fè bagay trè senp 106 00:06:03,020 --> 00:06:07,590 li pran yon anpil nan kòd, se konsa jQuery se yon bibliyotèk pou JavaScript. 107 00:06:07,590 --> 00:06:09,800 Nan lòt mo, li nan yon dosye JavaScript ke ou ka chaje 108 00:06:09,800 --> 00:06:12,730 ak Lè sa a, itilize fonksyon jQuery fè sèten bagay. 109 00:06:12,730 --> 00:06:15,670 Ak jQuery fondamantalman fè lavi ou anpil antye pi fasil. 110 00:06:15,670 --> 00:06:20,390 Li senplifye sa ki ta pran dè santèn de liy nan JavaScript desann nan yon liy kèk moun nan jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Li nan patikilyèman itil si w ap sèvi ak APIs paske jeneralman 112 00:06:24,430 --> 00:06:27,600 kouman yo pral gen aksè nan APIs se pa fè Ajax demann, 113 00:06:27,600 --> 00:06:30,130 e mwen kwè David te mansyone nan konferans ki Ajax demann 114 00:06:30,130 --> 00:06:33,120 yo jeneralman lè w ap fè yon demann rezo a kèk sòt de sèvè 115 00:06:33,120 --> 00:06:37,760 yo ak pou jwenn tounen kèk sòt de done ak jour yon paj enstantane. 116 00:06:37,760 --> 00:06:41,840 Lè nou konsidere ke nan JavaScript plenn ki ta pran nimewo fou nan liy 117 00:06:41,840 --> 00:06:44,620 valide tout Tèt yo, epi fè tout sa nan ki sòt de bagay, 118 00:06:44,620 --> 00:06:46,810 jQuery gen yon fonksyon vrèman senp rele Ajax, 119 00:06:46,810 --> 00:06:51,760 ak tout sa ou dwe fè nan Ajax se bay paramèt sa yo ke ou vle bay API la, 120 00:06:51,760 --> 00:06:56,830 ki kote API a ak nenpòt ki sòt plis nan opsyon ke ou vle nan konfigirasyon. 121 00:06:56,830 --> 00:07:02,480 Li nan reyèlman, reyèlman bèl ak trè itil pou sa a jan de bagay konsa. 122 00:07:02,480 --> 00:07:06,970 Sa a tout sa nou bezwen kòmanse resevwa men nou sal nan APIs. 123 00:07:06,970 --> 00:07:10,220 >> Mwen pral pote yo moute yon egzanp kèk ak eksplore pwopriyete diferan yo 124 00:07:10,220 --> 00:07:13,150 epi poukisa yo ap itil pou diferan kalite bagay sa yo. 125 00:07:13,150 --> 00:07:15,570 Premye bagay mwen pral aktyèlman montre ou se yon bagay ke mwen ap travay sou 126 00:07:15,570 --> 00:07:18,310 nan laboratwa rechèch mwen an, ki se yon Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 ak fondamantalman lide nan yon Viewer Ngram se ou kapab fè rechèch pou kèk kalite pawòl 128 00:07:23,270 --> 00:07:28,840 oubyen yon fraz epi wè konbyen fwa li a parèt nan yon seri sèten nan tèks sou tan. 129 00:07:28,840 --> 00:07:33,160 Egzanp sa a isit la se sa a seri done nan ti bebe 130 00:07:33,160 --> 00:07:36,480 yo ki te fèt nan New York ant 1920 ak 2000. 131 00:07:36,480 --> 00:07:40,090 Nou kapab fè rechèch, pou egzanp, pou Jennifer a non, 132 00:07:40,090 --> 00:07:44,400 e nou wè ke pre-ane 1960 li vrèman pa te itilize tout sa ki anpil, 133 00:07:44,400 --> 00:07:48,900 ak Lè sa a, kòm nou te an ane pita li a vin itilize pi plis ak plis. 134 00:07:48,900 --> 00:07:53,680 Nou kapab tou fè konparezon, kidonk si nou konpare Jennifer, pou egzanp, Toma, 135 00:07:53,680 --> 00:07:56,520 nou ka wè Thomas te gen bèl répandus toupatou nan listwa, 136 00:07:56,520 --> 00:07:58,780 Lè nou konsidere ke Jennifer se yon non plis ki resan. 137 00:07:58,780 --> 00:08:00,590 Nou ka fè sa jan de bagay konsa. 138 00:08:00,590 --> 00:08:02,460 >> Kòman sa fèt aplikasyon an? 139 00:08:02,460 --> 00:08:06,030 Fondamantalman, li ap travay via yon API. 140 00:08:06,030 --> 00:08:08,660 Nan lòt mo, nou gen sèten karakteristik isit la. 141 00:08:08,660 --> 00:08:11,360 Nou gen paramèt yo nan sa n ap aktyèlman pou chèche, 142 00:08:11,360 --> 00:08:13,720 ki se sa yo non, ak Lè sa a, nou gen yon kèk pwopriyete lòt, 143 00:08:13,720 --> 00:08:16,570 tankou aks la Y ak aks X la. 144 00:08:16,570 --> 00:08:18,440 Ou ka wè nou gen yon kèk opsyon diferan osi lwen ke nan 145 00:08:18,440 --> 00:08:20,860 rezolisyon tan itilize ak ki sòt de bagay sa. 146 00:08:20,860 --> 00:08:26,700 Nou gen opsyon sa yo osi lwen ke ki sa done nou aktyèlman vle soti nan baz done a, 147 00:08:26,700 --> 00:08:29,400 e nou vle jwenn ki done tounen nan kèk fason itil. 148 00:08:29,400 --> 00:08:34,020 Nòmalman, si nou te rekèt baz done a dirèkteman li ta sòt de gen yon doulè fè 149 00:08:34,020 --> 00:08:38,970 paske prezimableman sa a done sou non ti bebe ap viv nan kèk baz done yon kote, 150 00:08:38,970 --> 00:08:42,789 ak li ta reyèlman konplike 'gen yo sijè rechèch li manyèlman 151 00:08:42,789 --> 00:08:45,830 epi deside egzakteman ki sa done retounen. 152 00:08:45,830 --> 00:08:49,300 Nan lòt mo, nou sèlman pran swen sou Jennifer ak Toma nan ka sa a, 153 00:08:49,300 --> 00:08:53,410 epi nou sèlman pran swen sou sou yon aks ak sèten nan tout sa sòt de bagay. 154 00:08:53,410 --> 00:08:55,720 >> Ki jan nou jwenn alantou sa a? 155 00:08:55,720 --> 00:09:01,200 Ale pifon nan sa a API yon ti kras plis mwen pral montre w yon lòt egzanp nan sa a platfòm 156 00:09:01,200 --> 00:09:04,490 ki itilize yon yon ti kras diferan gwoup done ki. 157 00:09:04,490 --> 00:09:09,950 Sa a seri done, olye pou yo te non ti bebe, se aktyèlman jis tout la 158 00:09:09,950 --> 00:09:12,460 enprime baz done piblikasyon nan Bibliyotèk Open, 159 00:09:12,460 --> 00:09:18,410 ki se yon sous jeyan nan tèks pibliye nan tout ane ki sot pase 100 oswa sa. 160 00:09:18,410 --> 00:09:23,540 Lide a se nou gen sa a compository de milyon ak dè milyon de tèks, 161 00:09:23,540 --> 00:09:27,420 ki nou kapab kounye a rechèch pou mo ak fraz diferan pous 162 00:09:27,420 --> 00:09:30,840 Isit la nan yon egzanp ki varye yon ti kras diferan de egzanp lan anvan 163 00:09:30,840 --> 00:09:33,350 Mwen te montre ou, ki se nou gen sa yo queries rechèch 3, 164 00:09:33,350 --> 00:09:36,290 lagè, lagè, ak pawòl Bondye a franse pou fè lagè, ki se gè. 165 00:09:36,290 --> 00:09:40,380 Ak nou 're chache nan 3 seksyon diferan nan baz done a total. 166 00:09:40,380 --> 00:09:45,080 Nan lòt mo, nan sa a sijè rechèch premye n ap sèlman chache nan USA a, 167 00:09:45,080 --> 00:09:51,150 nan yon sèl nan dezyèm sèlman nan UK a, ak twazyèm lan sèlman de travay ki te pibliye nan Frans. 168 00:09:51,150 --> 00:09:53,120 Nou wè kèk modèl enteresan deyò. 169 00:09:53,120 --> 00:09:58,180 Pou egzanp, nou wè dwa alantou isit la ki- 170 00:09:58,180 --> 00:10:02,410 Wouch, mwen messed moute aks la yon ti jan, men ou ka wè dwa nan sa a ranje isit la 171 00:10:02,410 --> 00:10:05,730 alantou Lagè Sivil la gen yon Spike gwo nan edisyon Ameriken an 172 00:10:05,730 --> 00:10:08,340 men pa tankou yon Spike gwo nan de nan lòt, ak sa a, se evidamman paske 173 00:10:08,340 --> 00:10:10,880 Ameriken Lagè Sivil la te rive nan pwen sa a. 174 00:10:10,880 --> 00:10:13,890 >> Nou ka wè kèk bagay fre a, 175 00:10:13,890 --> 00:10:17,070 men ki sa nou reyèlman sousye de ki jan nou te resevwa sa a done. 176 00:10:17,070 --> 00:10:21,320 M ap pran ou dèyè sèn yo nan sa a app nan yon ti jan ti kras. 177 00:10:21,320 --> 00:10:24,540 Yon jwe fent pwòp se si w ap travay ak sit la ak kalite vle konnen 178 00:10:24,540 --> 00:10:27,430 sa k ap pase sou dèyè sèn nan, ou ka louvri moute zouti yo pwomotè. 179 00:10:27,430 --> 00:10:30,200 Mwen pral yo dwe lè l sèvi avèk zouti pou devlope Chrome a, epi pou li ale nan sa yo 180 00:10:30,200 --> 00:10:35,160 ou ka fè kontwòl, chanjman, J, ak ki pran ou nan konsole a ki JavaScript. 181 00:10:35,160 --> 00:10:37,420 Gen yon ongle kèk isit la. 182 00:10:37,420 --> 00:10:39,680 Yo ka tout dwe trè itil nan sikonstans diferan, men mwen pran swen sou rezo a 183 00:10:39,680 --> 00:10:44,150 tab kounye a, e mwen gen aktyèlman rafrechi jwenn ki ap travay. 184 00:10:44,150 --> 00:10:50,180 Oh, regrèt. 185 00:10:50,180 --> 00:10:52,320 Li renmen bay yon egzanp o aza. 186 00:10:52,320 --> 00:10:54,700 Okay, nou pral itilize sa a egzanp olye Lè sa a,. 187 00:10:54,700 --> 00:11:01,330 >> Lide a se gen nan sa a API isit la, 188 00:11:01,330 --> 00:11:05,330 epi ou ka wè ekzakteman ki sa API la ap retounen. 189 00:11:05,330 --> 00:11:10,220 Sa a se sa ki aplikasyon an ap resevwa tounen soti nan API la gen voye ki mande sa. 190 00:11:10,220 --> 00:11:13,680 Kite m 'rale nan yon ti jan, 191 00:11:13,680 --> 00:11:18,340 epi nou ka fondamantalman wè li nan jis yon seri de pè valè kle nan JSON. 192 00:11:18,340 --> 00:11:23,220 Nan lòt mo, nou gen sa a hashmap isit la ki nan planifikasyon valè. 193 00:11:23,220 --> 00:11:26,440 Nan lòt mo, li nan planifikasyon ane nan valè. 194 00:11:26,440 --> 00:11:32,600 Nan 1765 tou sa pawòl nou okòmansman fouye pou yo itilize 90 fwa 195 00:11:32,600 --> 00:11:35,810 soti nan 1 milyon dola, se konsa nou ap vin tounen sa a rezilta. 196 00:11:35,810 --> 00:11:40,280 Li nan pa egzakteman JSON depi nou gen sa a header rezilta ti kras isit la, 197 00:11:40,280 --> 00:11:45,630 men avi ke sa a objè antye isit la se jis yon gwo gwo JSON pate. 198 00:11:45,630 --> 00:11:51,070 Nou gen yon etalaj isit la ki gen sa a eleman antye, 199 00:11:51,070 --> 00:11:55,590 epi ou ka wè ke eleman antye fini la, ak Lè sa a, nou gen yon lòt eleman gwo 200 00:11:55,590 --> 00:11:59,430 ki ale tout wout la desann nan fen a, ak ki fini isit la. 201 00:11:59,430 --> 00:12:02,200 Nou gen yon etalaj reyèlman gwo ak 2 objè ki nan li, 202 00:12:02,200 --> 00:12:04,630 ak chak nan sa yo objè se yon hashmap. 203 00:12:04,630 --> 00:12:07,340 Ou ka wè nan chak nan sa yo hashmaps nou gen yon kat 204 00:12:07,340 --> 00:12:12,700 sa a valè endèks a 0 ak valè sa a valè a nan yon lòt hashmap, 205 00:12:12,700 --> 00:12:18,360 ki ankò se planifikasyon valè aks X Y valè aks. 206 00:12:18,360 --> 00:12:20,970 >> Ou ka wè JSON vin yon ti jan konplike, men an jeneral, 207 00:12:20,970 --> 00:12:24,190 li la aktyèlman trè itil, epi li trè fasil jwenn aksè nan konpare ak 208 00:12:24,190 --> 00:12:27,390 lòt diferan fòm notasyon. 209 00:12:27,390 --> 00:12:30,550 Osi lwen ke sa n ap aktyèlman voye done API a jwenn, 210 00:12:30,550 --> 00:12:34,690 Mwen pral ale nan fen a tounen yon ti jan isit la. 211 00:12:34,690 --> 00:12:39,850 Sa a se gwo JavaScript dosye a ki nan manyen tout entè-aksyon yo nan app a entènèt, 212 00:12:39,850 --> 00:12:44,810 epi pou nou pa pran swen sou pi fò nan sa a, men nou fè swen sou kèk nan li. 213 00:12:44,810 --> 00:12:47,410 Pou egzanp, nou pran swen sou sa a fonksyon buildQuery, 214 00:12:47,410 --> 00:12:50,670 ak lide nan fonksyon sa a se fondamantalman li nan kap alantou paj la, 215 00:12:50,670 --> 00:12:53,750 lè n ap kalkile konnen ki sa ki itilizatè a vle sijè rechèch, nan lòt mo, 216 00:12:53,750 --> 00:12:57,090 tcheke sa yo bwat kote yo te D 'tèm rechèch yo, 217 00:12:57,090 --> 00:13:01,380 tcheke Y a diferan ak X valè aks yo ke yo te chwazi ak nan tout sa sòt de bagay sa, 218 00:13:01,380 --> 00:13:06,650 ak li a pral krache soti sa a valè rechèch, ki mwen ka Lè sa a, voye yo ale nan API la. 219 00:13:06,650 --> 00:13:09,180 >> Sa a sanble konplike, epi li se bèl konplike 220 00:13:09,180 --> 00:13:18,090 men ki sa mwen pral-an reyalite, mwen te deja fè sa, ki se gwo- 221 00:13:18,090 --> 00:13:21,640 se ke mwen pral jwenn konsole nan enprime soti egzakteman ki sijè rechèch valè 222 00:13:21,640 --> 00:13:28,110 ke li nan voye yo ale nan API la. 223 00:13:28,110 --> 00:13:30,870 Sa a se aktyèlman isit la menm. Padon, li sorti yon anpil nan bagay sa yo. 224 00:13:30,870 --> 00:13:33,690 Men sa se ki sa nou pran swen sou, sa a objè dwa isit la. 225 00:13:33,690 --> 00:13:35,300 Sa a se objè a sijè rechèch. 226 00:13:35,300 --> 00:13:40,670 Nan lòt mo, sa a se ekzakteman ki sa aplikasyon nan entènèt ap voye API la, 227 00:13:40,670 --> 00:13:45,730 e konsa se pou yo gade andedan yon ti jan, epi nou wè nou gen kèk valè isit la. 228 00:13:45,730 --> 00:13:48,710 Nou wè nou gen sa a ki kalite konte, ki se evènman pou chak milyon dola mo, 229 00:13:48,710 --> 00:13:51,460 ki se ekzakteman ki sa nou te chwazi nan aks la Y sou isit la. 230 00:13:51,460 --> 00:13:53,740 Sa a kote ki nan vini soti nan. 231 00:13:53,740 --> 00:13:58,010 Nou gen yon valè baz done, ki vle di ke gen nan kèk baz done sèten 232 00:13:58,010 --> 00:14:01,610 ke sa a done ki abite nan, epi nou vle gen aksè a ki done espesyalman 233 00:14:01,610 --> 00:14:04,950 kòm yo te opoze ak done yo ti bebe non, pou egzanp. 234 00:14:04,950 --> 00:14:08,320 Lè sa a, nou gen sa a valè gwoup, 235 00:14:08,320 --> 00:14:12,090 ki se ki di ke nou vle fouye nan ane kòm opoze a 236 00:14:12,090 --> 00:14:16,030 nenpòt ki lòt aks X valè. 237 00:14:16,030 --> 00:14:19,040 Lè sa a, nou gen yon metòd, ki gen kèk APIs pral fè bagay sa yo miltip. 238 00:14:19,040 --> 00:14:22,360 Nan lòt mo, sa a API kapab tou retounen lòt kalite done, 239 00:14:22,360 --> 00:14:27,740 men nan ka sa a, nou vle pou kat nan X valè aks Y valè aks. 240 00:14:27,740 --> 00:14:30,730 Sa a ki sa k ap di li fè a, 241 00:14:30,730 --> 00:14:35,020 e nou gen sa a rechèch limit etalaj, ki gen 2 valè. 242 00:14:35,020 --> 00:14:40,720 Premye a se ki sa nou wè isit la, ki se tout valè yo a 243 00:14:40,720 --> 00:14:43,020 genyen nan ke bwat premye ti kras nan tèt la. 244 00:14:43,020 --> 00:14:47,570 >> Nan lòt mo, nou vle gade pou batay la mo, e nou vle filtre li 245 00:14:47,570 --> 00:14:51,920 pa tèks angle nan literati Ameriken. 246 00:14:51,920 --> 00:14:54,590 Nou gen peyi sa a, ki se USA. 247 00:14:54,590 --> 00:14:59,130 Nou gen yon lang, ki se angle, konsa nou gen tout moun sa yo diferan pati 248 00:14:59,130 --> 00:15:02,690 ke yo tout di API nan egzakteman ki sa nou vle. 249 00:15:02,690 --> 00:15:04,940 Nou pa konnen ki sa done sa yo ke nou jwenn tounen se ankò, 250 00:15:04,940 --> 00:15:10,970 men nou konnen ke done a pral pran yon fòm a sèten. 251 00:15:10,970 --> 00:15:13,650 Sa a egzanp se sòt de sou bò konplike, 252 00:15:13,650 --> 00:15:16,180 epi ou pa ta nesesèman dwe sèvi ak yon API sa a konplèks, 253 00:15:16,180 --> 00:15:20,600 men sa a se montre ou ki nivo ki ak pouvwa nan sa ki APIs ka fè. 254 00:15:20,600 --> 00:15:24,980 Nan lòt mo, lè l sèvi avèk yon sistèm rechèch relativman senp nou fondamantalman gen yon bwat D ' 255 00:15:24,980 --> 00:15:29,490 ak yon seleksyon kèk lòt nan diferan kote. 256 00:15:29,490 --> 00:15:32,010 >> Kite m 'rale tounen soti isit la. 257 00:15:32,010 --> 00:15:37,720 Nou gen yon bwat D 'ak yon seleksyon kèk Metadata diferan, 258 00:15:37,720 --> 00:15:40,610 e nou gen aks y ak X seleksyon aks. 259 00:15:40,610 --> 00:15:42,830 Nou pa gen aktyèlman jaden ke anpil, 260 00:15:42,830 --> 00:15:46,210 epi nou ka wè trè fasil nou ap kapab sijè rechèch kèk sòt de API 261 00:15:46,210 --> 00:15:48,510 epi pou yo jwenn done retounen lakay yo epi Lè sa a, mete l 'nan tablo sa a, 262 00:15:48,510 --> 00:15:52,080 ki se Lè sa a, ale nan montre li nan yon fason itil. 263 00:15:52,080 --> 00:15:54,970 Fè yon gade nan yon lòt egzanp ki ta kapab yon ti jan plis abitye nan ou nèg 264 00:15:54,970 --> 00:15:56,510 nou pral tounen vin jwenn Facebook. 265 00:15:56,510 --> 00:15:59,440 Se API Facebook a rele graf la Facebook, 266 00:15:59,440 --> 00:16:04,390 ak fondamantalman ki sa sa vle se Facebook wè tèt li kòm sa a baz done masiv 267 00:16:04,390 --> 00:16:08,000 nan anpil nan diferan pati ke tout gen relasyon sèten nan chak lòt. 268 00:16:08,000 --> 00:16:11,070 Nan lòt mo, mwen se yon itilizatè sou Facebook, Se konsa, mwen gen yon pwofil, 269 00:16:11,070 --> 00:16:14,310 epi tou mwen te gen zanmi sèten, epi chak nan yo gen yon pwofil, 270 00:16:14,310 --> 00:16:17,580 ak chak nan zanmi m 'te gen yon miray, ki te gen kòmantè diferan sou li, 271 00:16:17,580 --> 00:16:20,800 ak chak nan sa yo kòmantè gen likes ak nan tout sa sòt de bagay sa. 272 00:16:20,800 --> 00:16:23,100 >> Genyen anpil bagay nan diferan pati Facebook. 273 00:16:23,100 --> 00:16:26,670 Li se yon API lajman konplèks, ak gen nan tòn ou kapab fè avèk li, 274 00:16:26,670 --> 00:16:28,450 men li la aktyèlman trè senp yo itilize. 275 00:16:28,450 --> 00:16:33,680 Mwen pral kòmanse soti pa ale nan graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 ki se non kont inik m 'yo, ak non kont ou la ap swa 277 00:16:38,430 --> 00:16:43,710 kèk kalite mo si ou te chwazi li, oswa li ta ka jis pou yon afè de chif yo. 278 00:16:43,710 --> 00:16:46,360 Ki sa nou jwenn tounen se enfòmasyon trè de baz yo. 279 00:16:46,360 --> 00:16:50,460 Nou wè ke mwen gen yon non premye, ki se Billy, yon non sot pase yo, ki se Janitsch. 280 00:16:50,460 --> 00:16:53,370 Genyen nan yon inik Facebook ID ki m 'genyen. 281 00:16:53,370 --> 00:16:57,920 Ou ka wè sa mwen m gason epi ke mwen gen anviwònman lang mwen 282 00:16:57,920 --> 00:17:01,290 nan Britanik angle. 283 00:17:01,290 --> 00:17:03,490 Nan lòt mo, nou ap wè enfòmasyon trè debaz isit la. 284 00:17:03,490 --> 00:17:08,670 Li pa twò anpil, men li ban nou yon lide sou sa ki nan la. 285 00:17:08,670 --> 00:17:10,849 >> Nou ka fè menm bagay la bay David Malan, pou egzanp. 286 00:17:10,849 --> 00:17:13,599 Mwen panse ke non l 'se dmalan. 287 00:17:13,599 --> 00:17:16,369 Nou wè David Malan gen yon ID inik. 288 00:17:16,369 --> 00:17:19,300 Li gen yon non, premye non, dezyèm non non, pase non. 289 00:17:19,300 --> 00:17:24,210 Nou menm tou nou wè ke li se gason ak ki genyen ansanm lang l 'yo US angle. 290 00:17:24,210 --> 00:17:26,869 Nan lòt mo, nou ap wè enfòmasyon trè debaz isit la. 291 00:17:26,869 --> 00:17:28,860 Koulye a, kisa k ap rive si nou eseye tcheke deyò yon lòt bagay? 292 00:17:28,860 --> 00:17:33,060 Se pou nou di mwen ki enterese nan sa David Malan te renmen sou Facebook. 293 00:17:33,060 --> 00:17:36,860 Mwen kapab fè / likes. Koulye a, nou te kouri antre nan yon pwoblèm. 294 00:17:36,860 --> 00:17:39,280 Nou gen kèk sòt de erè ki di yon siy aksè 295 00:17:39,280 --> 00:17:41,660 yo egzije pou mande pou resous sa a. 296 00:17:41,660 --> 00:17:44,730 Men, si ou panse sou li, ki aktyèlman fè sans paske li ta dwe etranj 297 00:17:44,730 --> 00:17:47,830 si ou te ka jwenn aksè chak pati sèl nan baz done Facebook a 298 00:17:47,830 --> 00:17:50,170 jis nan kèk sòt de API senp, dwa? 299 00:17:50,170 --> 00:17:56,040 Nan lòt mo, prezimableman enfòmasyon ou a pa kapab accessible pa nenpòt moun ki vle li. 300 00:17:56,040 --> 00:17:58,330 >> Sa a erè se jisteman ki sa sa vle di. 301 00:17:58,330 --> 00:18:03,630 Gen kèk APIs mande pou otorizasyon sèten yo nan lòd jwenn aksè nan done yo. 302 00:18:03,630 --> 00:18:06,940 E menm plis avanse APIs, tankou Facebook a yon sèl, 303 00:18:06,940 --> 00:18:09,840 yo pral mande pou otorizasyon sèten fè sèten bagay. 304 00:18:09,840 --> 00:18:12,650 Mwen ka wè sa a enfòmasyon debaz sou David Malan. 305 00:18:12,650 --> 00:18:15,950 Mwen ka wè ke li se gason, se li ki ap viv nan peyi Etazini an, 306 00:18:15,950 --> 00:18:19,270 men mwen pa ka vrèman wè anyen sot pase sa. 307 00:18:19,270 --> 00:18:23,050 Pou jwenn alantou sa a pou kounye a, Facebook te gen zouti sa a bèl 308 00:18:23,050 --> 00:18:27,690 ki se graf API Explorer a, ak lide nan ki se ou ka sòt de 309 00:18:27,690 --> 00:18:31,880 fè moute otorizasyon pou tèt ou ki baze sou pwòp kont ou 310 00:18:31,880 --> 00:18:35,680 ak Lè sa a, wè bagay sa yo ke espesyalman kont ou kapab wè. 311 00:18:35,680 --> 00:18:45,120 Pou egzanp, si m 'fè graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 whoops, Mwen devine mwen gen rvalide siy m 'isit la. 313 00:18:53,510 --> 00:18:55,950 Oke. 314 00:18:55,950 --> 00:19:01,740 Si m 'fè pou ankò, gwo, koulye a mwen wè ke mwen jwenn sa a objè tounen 315 00:19:01,740 --> 00:19:06,300 ki di ke mwen renmen nouy pisin yo, ki se nan jwèt yo kategori ak jwèt. 316 00:19:06,300 --> 00:19:08,620 Mwen renmen mors yo, ki se nan Animal nan kategori. 317 00:19:08,620 --> 00:19:10,180 Sa yo se reyèl mwen fè Facebook likes. 318 00:19:10,180 --> 00:19:13,280 Yo ap kalite anbarasan. 319 00:19:13,280 --> 00:19:16,090 >> Men, nou ka wè ki sa a done tout retounen nan JSON. 320 00:19:16,090 --> 00:19:18,160 Li trè lizib. 321 00:19:18,160 --> 00:19:20,970 Nan lòt mo, nou gen sa a kat nan done a kèk sòt de yon etalaj, 322 00:19:20,970 --> 00:19:25,220 ak chak eleman nan sa a se yon etalaj hashmap ki kat 323 00:19:25,220 --> 00:19:28,530 non an nan yon tankou ak kategori a nan yon tankou. 324 00:19:28,530 --> 00:19:31,240 Chak tankou gen yon ID inik. 325 00:19:31,240 --> 00:19:34,510 Gen tout kalite bagay sa yo diferan nan done ke nou ka jwenn, 326 00:19:34,510 --> 00:19:37,980 ak si w ap enterese nan lè l sèvi avèk API a Facebook pou yon pwojè CS50 final 327 00:19:37,980 --> 00:19:40,720 oswa pou anyen tankou ke li nan aktyèlman byen posib. 328 00:19:40,720 --> 00:19:44,260 Fondamantalman ki jan ou jwenn alantou bagay la validation se Facebook 329 00:19:44,260 --> 00:19:48,030 sèvi ak yon sistèm yo rele OAuth, oswa Otantifikasyon Open, 330 00:19:48,030 --> 00:19:52,870 e mwen pa vle jwenn nan li kounye a paske OAuth oswa kalite nan diferan 331 00:19:52,870 --> 00:19:56,060 nan validation gen tandans varye anpil ant APIs diferan, 332 00:19:56,060 --> 00:19:58,320 konsa mwen te kapab pase yon bon bout tan ale sou chak youn, 333 00:19:58,320 --> 00:20:01,170 men yo ap aktyèlman trè klè, kifè. 334 00:20:01,170 --> 00:20:04,050 >> Si ou Google Facebook API li trè lizib. 335 00:20:04,050 --> 00:20:06,670 Genyen nan yon espèk tout antye. 336 00:20:06,670 --> 00:20:10,210 Pou egzanp, sa a se dokiman an pou Facebook API la, 337 00:20:10,210 --> 00:20:14,170 epi ou ka wè mwen sou paj la User, se konsa mwen ka aprann tout bagay sou kalite sa yo diferan de bagay sa yo 338 00:20:14,170 --> 00:20:17,170 ki disponib jwenn kòm byen lwen kòm done 339 00:20:17,170 --> 00:20:21,550 epi tou li otorizasyon ki diferan ki mwen bezwen yo nan lòd jwenn aksè nan yo. 340 00:20:21,550 --> 00:20:25,470 Kòm nou te wè, nou pa bezwen otorizasyon jwenn aksè nan non la oswa sèks la, 341 00:20:25,470 --> 00:20:29,380 men pi lwen pase ke nou bezwen otorizasyon pou pifò bagay sa yo. 342 00:20:29,380 --> 00:20:33,040 Paj sa a, ou pito, sit entènèt sa a ap tou fè w konnen kouman yo ka resevwa 343 00:20:33,040 --> 00:20:35,640 yon siyal pou kapab legalized tèt ou. 344 00:20:35,640 --> 00:20:39,290 Pifò sistèm validation itilize kèk sòt de siy 345 00:20:39,290 --> 00:20:42,880 ki kote ou jwenn sa a valè inik, ki se yon fisèl reyèlman long ak o aza, 346 00:20:42,880 --> 00:20:46,240 ak fason sa a yo ka asosye demann lan ke w ap fè avèk ou. 347 00:20:46,240 --> 00:20:50,560 Nan lòt mo, yo konnen ke ou pa ap fè anyen ki sispèk ak done yo. 348 00:20:50,560 --> 00:20:53,340 Yo konnen egzakteman sa w ap resevwa. 349 00:20:53,340 --> 00:20:56,180 Yo menm tou yo konnen ke ou gen pèmisyon wè enfòmasyon sa a. 350 00:20:56,180 --> 00:20:59,110 >> Si ou te fè yon app Facebook ak app ou a gen itilizatè sèten, 351 00:20:59,110 --> 00:21:03,380 ak moun ki itilizatè yo gen pèmèt ke app gen aksè a yon seri pati nan pwofil yo, 352 00:21:03,380 --> 00:21:07,790 Lè sa a, kèlkeswa sa API kle oswa siy ke ke app a lè l sèvi avèk 353 00:21:07,790 --> 00:21:11,090 yo pral kapab jwenn aksè done yo pou moun ki itilizatè. 354 00:21:11,090 --> 00:21:13,780 Sa a ta ka son konplike, men li la pa twò move, 355 00:21:13,780 --> 00:21:16,810 epi si ou vle sèvi ak Facebook mwen ta konseye anpil w 356 00:21:16,810 --> 00:21:18,990 konsidere jwe otou ak API yo. 357 00:21:18,990 --> 00:21:21,610 Li trè fre, ak ou kapab fè yon bann bagay sa yo diferan ak li. 358 00:21:21,610 --> 00:21:24,880 Si itilizatè a ba w sa yo otorizasyon ou ka menm tounen nan API la 359 00:21:24,880 --> 00:21:28,820 epi di mwen vle aktyèlman afiche nan miray sa a itilizatè a, oswa mwen vle fè yo afiche yon foto, 360 00:21:28,820 --> 00:21:32,390 ak Se poutèt sa sou manje nouvèl ou, ou pral pafwa jwenn bagay sa yo anmèdan 361 00:21:32,390 --> 00:21:37,840 lè li di ke zanmi ou a ap gade videyo sa a sou kèk sòt de sit etranj oswa yon bagay tankou sa. 362 00:21:37,840 --> 00:21:43,120 Sa a se paske sa app te akòde aksè a afiche sou miray moun sa a. 363 00:21:43,120 --> 00:21:48,350 Lide a an jeneral, API a Facebook se bèl konplike, men tou reyèlman itil. 364 00:21:48,350 --> 00:21:53,220 Definitivman vo kouran soti nan, si w ap toujou ap chèche pou yon pwojè final la. 365 00:21:53,220 --> 00:21:57,930 >> Yon lòt suite nan APIs ki mwen pral ale sou se CS50 APIs. 366 00:21:57,930 --> 00:22:00,070 Kite m 'rale nan isit la. 367 00:22:00,070 --> 00:22:03,390 CS50 gen aktyèlman mete ansanm yon seri antye nan APIs 368 00:22:03,390 --> 00:22:07,080 ke ou ka itilize pou yon pwojè final oswa jis pou anyen ke w ap fè. 369 00:22:07,080 --> 00:22:12,830 Apre sa, yo ap sitou Harvard sipò yo, epi yo varye soti nan meni an HUDS, 370 00:22:12,830 --> 00:22:17,780 pou egzanp, pou sa a Harvard Evènman API, ki pral kite ou gen aksè a yon lis 371 00:22:17,780 --> 00:22:21,290 evènman diferan ki pral sou nan Harvard ak ki sòt de bagay sa. 372 00:22:21,290 --> 00:22:24,510 Se konsa, nou ka klike sou nenpòt youn nan sa yo epi pou yo jwenn yon espèk pou li, 373 00:22:24,510 --> 00:22:28,090 ki ou pral kapab jwenn pou nenpòt ki API, ak lide a se 374 00:22:28,090 --> 00:22:33,920 li pèmèt ou konnen, A, espesyalman sa pou mande pou soti nan API a epi ki jan pou mande pou li. 375 00:22:33,920 --> 00:22:37,370 Nan lòt mo, si mwen vle tout evènman ki ap pase demen 376 00:22:37,370 --> 00:22:42,550 Lè sa a, mwen te gen evidamman bay li dat sa a ke mwen vle nan yon fòma sèten, 377 00:22:42,550 --> 00:22:46,030 ak B, li pral fè m 'konnen ekzakteman ki sa li la pral bay tounen nan m'. 378 00:22:46,030 --> 00:22:48,590 Li ka di mwen pral retounen ou sa a objè JSON, 379 00:22:48,590 --> 00:22:50,960 oswa tankou ou ka wè, gen fòma diferan. 380 00:22:50,960 --> 00:22:54,050 >> Ou ka tou retounen done yo kòm yon CSV, pou egzanp. 381 00:22:54,050 --> 00:22:57,620 Men, ou konnen egzakteman kouman ki done a pral gade lè ou jwenn li tounen 382 00:22:57,620 --> 00:23:00,610 pou ou kapab atann yo fè kèk bagay avèk li. 383 00:23:00,610 --> 00:23:07,240 Nou ka desann ak wè, pou egzanp, si nou vle sijè rechèch API la 384 00:23:07,240 --> 00:23:11,500 yo ka resevwa yon kalandriye a, Lè sa a, nou kapab itilize sa a URL an patikilye 385 00:23:11,500 --> 00:23:16,480 ak bay li sèten karakteristik ki fè yo pral rete an done sa yo ke nou vle egzakteman. 386 00:23:16,480 --> 00:23:19,540 Konsa tou, si nou vle done yo tounen nan yon fòma sèten, 387 00:23:19,540 --> 00:23:23,790 Lè sa a, nou ka mande l 'bay randman done a nan yon CSV, 388 00:23:23,790 --> 00:23:27,700 ak sa a, se jis yon lòt paramèt ke nou ap pase API la. 389 00:23:27,700 --> 00:23:29,210 Anpil bagay fre fè a. 390 00:23:29,210 --> 00:23:32,550 Mwen ta definitivman rekòmande kouran soti nan APIs la CS50. 391 00:23:32,550 --> 00:23:36,000 >> Mwen pral fè yon gade nan sa a API Manje Harvard an patikilye pou yon ti tan. 392 00:23:36,000 --> 00:23:39,870 Youn nan bagay mwen te aktyèlman ki fèt se sa a Harvard non sit entènèt, 393 00:23:39,870 --> 00:23:44,930 ki itilize API la Manje CS50 rekipere meni an HUDS pou jounen an. 394 00:23:44,930 --> 00:23:50,400 Ak pou moun lekòl ekstansyon, HUDS se sèvis la kote moun nan Harvard. 395 00:23:50,400 --> 00:23:55,130 Ki sa ou jwenn se paj sa a ki gen tout manje yo pou yon jou a, se konsa nou wè manje midi. 396 00:23:55,130 --> 00:23:58,130 Nou gen yon kèk kategori diferan. Nou gen pwa a ak tout estasyon farin ble a. 397 00:23:58,130 --> 00:24:00,340 Nou gen estasyon an diri mawon. 398 00:24:00,340 --> 00:24:03,360 Nou ka wè pou kolasyon nou gen bagay sa yo manje kèk. 399 00:24:03,360 --> 00:24:07,030 Si nou klike sou yo, Lè sa a, nou jwenn enfòmasyon an nitrisyon. 400 00:24:07,030 --> 00:24:12,240 Ou wè sa a se enfòmasyon ki sou nitrisyon pou chadèk, nan ka ou te mande. 401 00:24:12,240 --> 00:24:14,870 Se konsa, ankò, nou ap ale nan kanmarad nan fen a tounen isit la yon ti jan 402 00:24:14,870 --> 00:24:18,530 ak wè sa ki egzakteman sa a ap fè jwenn done sa yo. 403 00:24:18,530 --> 00:24:21,710 Epi li vire soti pa aktyèlman ap trè konplèks nan tout. 404 00:24:21,710 --> 00:24:28,720 Sa a ranpli sanble yon ti kras lèd, men kenbe nan tèt ou ke sa a se manyen sou sit wèb la an antye, 405 00:24:28,720 --> 00:24:34,130 ak si mwen desann nou wè chanjman sa a done fonksyon. 406 00:24:34,130 --> 00:24:36,630 >> Koulye a, jis yo dwe klè, sa a ki ekri nan CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 ki se yon lang ke ou pwobableman pa t 'wè anvan. 408 00:24:39,570 --> 00:24:44,810 Men, li la bèl lizib, se konsa mwen pral mache atravè li kòm si li te pseudocode. 409 00:24:44,810 --> 00:24:49,080 Dat Chanjman se yon fonksyon ki nan pral pran nan sa a valè dat, 410 00:24:49,080 --> 00:24:51,740 epi li la tou pral pran nan yon premye, ki nou pa pran swen sou kòm anpil. 411 00:24:51,740 --> 00:24:54,110 Men, bagay la enpòtan an se ke li genyen dat sa a, 412 00:24:54,110 --> 00:25:00,080 ak dat sa a se jou a ke nou vle mande tout nan atik yo pou manje pou. 413 00:25:00,080 --> 00:25:04,030 Lè sa a, ou wè nou gen yon ti kras nan sentaks isit la, 414 00:25:04,030 --> 00:25:09,000 ki se fondamantalman analyse dat sa a nan yon fòma ki lizib. 415 00:25:09,000 --> 00:25:11,920 Nan lòt mo, API a mande dat la nan yon fòma a sèten. 416 00:25:11,920 --> 00:25:17,390 Ou pa ka jis di, 16th Novanm 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Li pa pral konnen ki sa fè ak sa. Li vle dat la nan yon fòma espesifik. 418 00:25:20,320 --> 00:25:23,230 Tout sa nou ap fè isit la se bay li egzakteman ki fòma, 419 00:25:23,230 --> 00:25:26,520 ki se yon valè ane ak Lè sa a, yon tirè, yon valè mwa, 420 00:25:26,520 --> 00:25:29,420 yon lòt tirè ak valè nan dat sa a. 421 00:25:29,420 --> 00:25:34,910 Ak nou menm tou nou di nou vle done yo yo dwe pwodiksyon an JSON. 422 00:25:34,910 --> 00:25:37,560 >> Koulye a, nou ap fè demann sa a Ajax, e kòm mwen mansyone pi bonè, 423 00:25:37,560 --> 00:25:41,680 jQuery gen sa a super itil Ajax fonksyon ki tout sa ou bezwen fè se presize 424 00:25:41,680 --> 00:25:45,780 yon paramèt kèk desann isit la, epi li pral ba ou tounen ekzakteman ki sa ou vle. 425 00:25:45,780 --> 00:25:50,490 Nou ap di li ki URL la nou vle li pou yo ale nan se sa a API Manje CS50, 426 00:25:50,490 --> 00:25:52,270 ki nou te resevwa nan men espèk la. 427 00:25:52,270 --> 00:25:56,730 Nou di ke nou vle done ki nan JSON e ke 428 00:25:56,730 --> 00:25:59,490 nou pwal bay li sa a done ki nou te defini moute isit la. 429 00:25:59,490 --> 00:26:02,670 Sa a se jou a, nou vle atik yo pou manje pou. 430 00:26:02,670 --> 00:26:07,790 Lè sa a, tout sa nou dwe fè se defini kèk sòt de fonksyon siksè, 431 00:26:07,790 --> 00:26:11,980 ki se fondamantalman sa ki pase lè API an retounen ki done. 432 00:26:11,980 --> 00:26:15,490 Nan lòt mo, nou te pake moute tout paramèt sa yo ke nou vle, 433 00:26:15,490 --> 00:26:20,530 ki nan ka sa a se jou a ke nou vle li ak lefèt ke nou vle l 'nan JSON, 434 00:26:20,530 --> 00:26:23,840 epi nou voye li nan API a, se konsa kounye a API la ap di, oke, 435 00:26:23,840 --> 00:26:26,350 isit la se done ou a, mwen te resevwa l 'tounen pou ou. 436 00:26:26,350 --> 00:26:29,930 Nou gen fonksyon an siksè, ki vle di bay sa API la 437 00:26:29,930 --> 00:26:32,230 avèk siksè retounen kèk done, ki sa nou fè avèk li? 438 00:26:32,230 --> 00:26:35,980 >> Epi li sanble ke tout sa nou fè se rele sa a fonksyon meni aktyalizasyon 439 00:26:35,980 --> 00:26:42,680 ak tou sa li te API a tounen, se konsa nou kapab fè rechèch pou ki 440 00:26:42,680 --> 00:26:47,970 ak wè ke tout sa nou ap fè se lè l sèvi avèk yon pakèt moun sou sentaks nouvo isit la 441 00:26:47,970 --> 00:26:52,220 mete ajou HTML la ak insert sa a done nouvo. 442 00:26:52,220 --> 00:26:56,580 Ki sa sa pèmèt se nou gen sa yo flèch sou chak bò, epi nou ka klike sou, 443 00:26:56,580 --> 00:27:01,060 e kounye a nou ap chèche nan done yo pou jou apre a epi ankò pou jou apre a, 444 00:27:01,060 --> 00:27:04,820 ak chak fwa li nan ajou ki valè dat ak rekèt API la, 445 00:27:04,820 --> 00:27:07,510 vin tounen kèk done ak mete l 'nan sit la. 446 00:27:07,510 --> 00:27:10,590 Yon fwa ankò, ou ka wè, super, super itil. 447 00:27:10,590 --> 00:27:14,410 Sa a app te pran m 'yon kèk èdtan Hack yo ansanm, 448 00:27:14,410 --> 00:27:20,140 e mwen gen yon ti jan pi plis eksperyans, evidamman, men CS50 ou pwojè final 449 00:27:20,140 --> 00:27:22,870 ka gade yon bagay anpil tankou sa a. 450 00:27:22,870 --> 00:27:29,540 >> APIs yo Super pwisan pou kantite lajan an nan efò yo ke yo pran. 451 00:27:29,540 --> 00:27:32,800 Bagay la pase mwen pral ale sou se yon APIs kèk plis lajman. 452 00:27:32,800 --> 00:27:35,480 Mwen pa pral jwenn osi lwen nan yo osi lwen ke sa yo fè espesyalman, 453 00:27:35,480 --> 00:27:38,740 men m ap ba ou yon lide nan sa ki nan yo deyò. 454 00:27:38,740 --> 00:27:42,700 2 reyèlman itil ki pòv yo, si w ap enterese nan analiz done oswa vizyalizasyon 455 00:27:42,700 --> 00:27:45,960 oswa yon bagay tankou sa, yo se Freebase ak Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-prezimableman ou tout konnen-a se yon ansiklopedi lib sou entènèt, 457 00:27:49,800 --> 00:27:53,230 epi li aktyèlman gen yon API, se konsa si ou vle, pou egzanp, 458 00:27:53,230 --> 00:27:56,250 jwenn tout tèks yo ak atik yo pou poulp 459 00:27:56,250 --> 00:27:58,030 ou ka trè fasil fè sa. 460 00:27:58,030 --> 00:28:02,300 Jis di hey, Wikipedia API, mwen ta renmen done yo tounen tankou sa a, 461 00:28:02,300 --> 00:28:07,010 ak Mwen ta renmen l 'nan fòma sa a, ak atik la mwen ta renmen se poulp, 462 00:28:07,010 --> 00:28:09,820 ak trè vit li pral ba ou tounen enfòmasyon sa a. 463 00:28:09,820 --> 00:28:12,230 Sa kapab reyèlman itil si ou vle fè kèk sòt de sit 464 00:28:12,230 --> 00:28:16,200 sa a, se yon vizeur pi bon pou Wikipedia oswa yon bagay tankou sa. 465 00:28:16,200 --> 00:28:21,350 >> Freebase se sòt de ki similè yo, malgre se yon ti jan pi rèd osi lwen ke API. 466 00:28:21,350 --> 00:28:24,390 Freebase, se tankou Wikipedia nan ke li nan yon ansiklopedi sou entènèt 467 00:28:24,390 --> 00:28:29,050 ki gen anpil ak anpil done diferan sou tout kalite sijè diferan, 468 00:28:29,050 --> 00:28:33,150 Men, li la ki estoke nan yon baz done relasyon, ki se yon ti kras diferan de Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia gen atik li yo ak atik lye nan atik lòt, 470 00:28:36,410 --> 00:28:38,860 men pou pati ki pi, si ou vle done yo pou poulp, 471 00:28:38,860 --> 00:28:41,990 ou ale nan atik la poulp, jwenn ke done, epi ou gen yon pakèt moun sou tèks 472 00:28:41,990 --> 00:28:43,830 sou pyeuvr, se konsa sa a, se gwo. 473 00:28:43,830 --> 00:28:46,870 Freebase ap travay nan yon fason ki nan ki yon ti kras plis konplike 474 00:28:46,870 --> 00:28:48,930 tout bagay se ki gen rapò ak youn ak lòt. 475 00:28:48,930 --> 00:28:52,620 Nan lòt mo, si nou ap chèche pou poulp 476 00:28:52,620 --> 00:28:54,940 Lè sa a, li gen yon pakèt moun sou kategori asosye ak li. 477 00:28:54,940 --> 00:28:57,920 >> Pou egzanp, li nan yon bèt, li viv anba dlo, 478 00:28:57,920 --> 00:28:59,710 li gen yon tanperati kò a sèten. 479 00:28:59,710 --> 00:29:01,210 Mwen pa konnen. 480 00:29:01,210 --> 00:29:04,230 Ak tout nan kategori sa yo yo se lyen ki mennen nan lòt kote kote ou ka ale 481 00:29:04,230 --> 00:29:06,640 yo wè bagay sa yo ak ki kategori menm. 482 00:29:06,640 --> 00:29:13,450 Nan lòt mo, poulp gwoup done ki la ta gen yon ap mennen nan done yo fikse pou tout bèt, 483 00:29:13,450 --> 00:29:16,790 ak ki ta kite m 'deplase nan nan baz done a vrèman byen vit. 484 00:29:16,790 --> 00:29:21,740 Sa a ka trè itil si ou ap fè yon bagay tankou konparezon. 485 00:29:21,740 --> 00:29:24,490 Nan lòt mo, bay yon bagay sèten, ou vle wè 486 00:29:24,490 --> 00:29:27,890 ki lòt bagay li nan ki gen rapò ak ak wè sa ki lòt bagay li pa ki gen rapò ak. 487 00:29:27,890 --> 00:29:30,700 Sa sòt de bagay sa. Li kapab itil nan yon nimewo nan fason. 488 00:29:30,700 --> 00:29:34,250 Si ou ap chèche pou plis nan yon defi ak pou kapab fè kèk bagay ki pi konplèks 489 00:29:34,250 --> 00:29:38,740 Mwen ta konsidere pran yon gade nan Freebase API la. 490 00:29:38,740 --> 00:29:44,670 Men, lajman, Wikipedia se yon kote ki trè senp yo ale osi lwen ke ap resevwa enfòmasyon. 491 00:29:44,670 --> 00:29:48,340 Yon lòt kote ke mwen pral gade a se Last.fm, ak mwen aktyèlman pral pou yo ale nan sit la nan 492 00:29:48,340 --> 00:29:53,800 nan ka gen kèk moun ki pa abitye, men Last.fm se fondamantalman yon mizik 493 00:29:53,800 --> 00:29:57,220 gou ak sou sit entènèt rekòmandasyon. 494 00:29:57,220 --> 00:29:59,000 Ou kapab fè yon kont. 495 00:29:59,000 --> 00:30:04,250 Ou ka kòmanse mizik uploading soti nan jwè mizik ou 496 00:30:04,250 --> 00:30:08,020 sou sit entènèt la, ak fondamantalman li pral kòmanse ban nou rekòmandasyon mizik 497 00:30:08,020 --> 00:30:10,030 ki baze sou ki sa ou koute. 498 00:30:10,030 --> 00:30:14,270 >> Pou egzanp, si ou ale nan pwofil ou a nan paj-sa a se mwen- 499 00:30:14,270 --> 00:30:18,180 ou ka wè ou gen yon lis ki gen dènyèman te koute tren. 500 00:30:18,180 --> 00:30:22,550 Ou ka wè an jeneral atis pi renmen, nan tout ki sòt de bagay sa, 501 00:30:22,550 --> 00:30:25,280 e ankò, gen yon API gwo dèyè Last.fm, 502 00:30:25,280 --> 00:30:29,360  ak ou ka itilize li fè anpil ak anpil bagay sa yo vrèman fre. 503 00:30:29,360 --> 00:30:38,870 Pou egzanp, mwen pral ale nan paj yon zanmi nan moun ki gen sa a Last.fm Zouti sou sit wèb. 504 00:30:38,870 --> 00:30:42,380 Sa a se aktyèlman yon lòt platfòm ki nan bati sou Last.fm API la, 505 00:30:42,380 --> 00:30:45,420 ak li fè sa yon nimewo de bagay sa yo trè enteresan. 506 00:30:45,420 --> 00:30:50,260 Si m 'ouvri sesyon an avèk non itilizatè m' yo, pou egzanp, 507 00:30:50,260 --> 00:30:53,110 Mwen ka mande l 'bay jenere yon gwo nwaj tag, pou egzanp, 508 00:30:53,110 --> 00:30:56,480 epi ki sa ki nan pral fè se bay m 'tounen yon imaj de 509 00:30:56,480 --> 00:30:59,850 tout estil yo diferan ak ki sòt de bagay ke mwen renmen pou koute. 510 00:30:59,850 --> 00:31:01,410 Kouman yo li fè konsa? 511 00:31:01,410 --> 00:31:05,670 Trè fondamantalman li nan li di l Last.fm API la isit la nan sa a itilizatè. 512 00:31:05,670 --> 00:31:10,710 Mwen ta renmen konnen genre a nan chak chante yo ke yo te janm tande sa mwen di, 513 00:31:10,710 --> 00:31:15,130 epi ou ka fè sa pa fè yon trè senp Ajax rele Last.fm API la. 514 00:31:15,130 --> 00:31:18,990 Ou ap jwenn tounen yon lis gwo, ak Lè sa a, se evidamman kèk bagay lòt ap fèt 515 00:31:18,990 --> 00:31:22,280 vire l 'nan yon gwo nwaj mo, men ou ka wè an jeneral 516 00:31:22,280 --> 00:31:25,850 li trè fasil jwenn aksè nan ak trè fasil yo itilize. 517 00:31:25,850 --> 00:31:30,750 Vrèman bèl pou yon nimewo de bagay sa yo. 518 00:31:30,750 --> 00:31:35,940 >> Mwen panse ke la sou tout sa, m'a di an jeneral. 519 00:31:35,940 --> 00:31:39,040 Youn nan bagay dènye mwen pral mansyone sou APIs an jeneral se ke 520 00:31:39,040 --> 00:31:41,840 ou pral pafwa kouri antre nan yon bagay yo rele to limite, 521 00:31:41,840 --> 00:31:44,940 ak lide nan to limite se ou pa vle abize APIs. 522 00:31:44,940 --> 00:31:48,130 Nan lòt mo, li vrèman bèl ki yon anpil nan sit entènèt sa yo gen APIs 523 00:31:48,130 --> 00:31:51,070 ke ou ka ale nan epi sèvi ak yo pou gratis. 524 00:31:51,070 --> 00:31:54,460 Sepandan, si ou ap fè dè milyon oswa dè milya de demann chak jou, 525 00:31:54,460 --> 00:31:57,610 pou egzanp, si w ap kole nan yon riban enfini ki nan enfiniman rekèt 526 00:31:57,610 --> 00:32:00,680 kèk sòt de API ak vin tounen yon kantite lajan gwo done, 527 00:32:00,680 --> 00:32:04,570 evidamman sa a, se pa bon konsa, sa ki yon anpil nan APIs fè se te to enterè sa a limite karakteristik 528 00:32:04,570 --> 00:32:09,970 ki di ou ka sèlman fè 1,000 demann pou chak jou pou chak adrès IP oubyen yon bagay tankou sa. 529 00:32:09,970 --> 00:32:12,540 Men, si w ap fè yon anpil nan tès ak ki sòt de bagay sa, 530 00:32:12,540 --> 00:32:14,890 ou pral pafwa kouri antre nan sa, epi toudenkou li pral fèmen ou koupe 531 00:32:14,890 --> 00:32:18,280 epi di pa gen okenn, mwen pa ban nou nenpòt ki plis done. 532 00:32:18,280 --> 00:32:20,000 >> Ki sa ou vle fè se jwe pa regleman-yo. 533 00:32:20,000 --> 00:32:22,950 Ou vle asire w ke ou li espèk nan API ak anpil atansyon. 534 00:32:22,950 --> 00:32:26,330 Li si li genyen sèten règ ki tache sou li, tankou ou ka sèlman fè queries X pou chak jou 535 00:32:26,330 --> 00:32:30,000 oswa ou ka sèlman gen aksè a yon pati nan baz done a yon sèten kantite fwa 536 00:32:30,000 --> 00:32:32,900 oswa yon bagay tankou sa ou vle asire w ke ou bwa sa. 537 00:32:32,900 --> 00:32:38,360 Pandan tout tan menm jan ou jwe nan règ sa ou pral pwobableman gen yon moman vrèman bèl lè l sèvi avèk APIs. 538 00:32:38,360 --> 00:32:42,030 Takeaway an jeneral ou an se APIs yo se reyèlman, reyèlman itil. 539 00:32:42,030 --> 00:32:45,610 >> Genyen yon API pou prèske sèvis nenpòt gwo wèb yo deyò. 540 00:32:45,610 --> 00:32:50,700 Bèl anpil nenpòt ki pati nan Suite la Zouti Google, Google Maps, Google Latè, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Kalandriye, nan tout bagay sa yo gen APIs. 542 00:32:54,390 --> 00:32:58,280 Ou ka itilize yo a tou de done jwenn nan sèvè a epi voye done nan sèvè a. 543 00:32:58,280 --> 00:33:00,870 Nan lòt mo, si ou te vle fè yon app kalandriye ki ka mete ajou 544 00:33:00,870 --> 00:33:04,190 Google Kalandriye yon moun, gen nan yon API pou sa. 545 00:33:04,190 --> 00:33:07,810 Si ou vle fè yon bagay ki a pral di w ki kote 546 00:33:07,810 --> 00:33:12,530 ki kote yon adrès sèten se ou ka itilize Google Maps API la pou sa. 547 00:33:12,530 --> 00:33:15,860 APIs yo fantastikman ki itil, epi yo ap toupatou. 548 00:33:15,860 --> 00:33:18,700 Si w ap enterese nan kèk sòt de lide, 549 00:33:18,700 --> 00:33:22,170 gen nan pwobableman yon API ki gen rapò ak ke ou ka itilize yo ka resevwa yon anpil nan done 550 00:33:22,170 --> 00:33:25,060 trè vit epi anpil tou senpleman. 551 00:33:25,060 --> 00:33:28,140 >> Si w ap toujou ap chèche pou yon pwojè oswa si ou jis vle yo jwe nan 552 00:33:28,140 --> 00:33:31,820 ak yon bagay an jeneral, nan APIs yo definitivman vo fè. 553 00:33:31,820 --> 00:33:37,200 Di Bondye mèsi, epi mwen kontan reponn nenpòt kesyon ke ou nèg ka genyen. 554 00:33:37,200 --> 00:33:44,900 Okay, mèsi anpil. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]