1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminar] [Inngangur forritari til 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 [Þetta er CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hæ, allir, ég er Billy, og í dag ætla ég að tala um API, 5 00:00:12,100 --> 00:00:15,220 eða umsókn forritun tengi, 6 00:00:15,220 --> 00:00:20,040 sérstaklega í tengslum við CS50 lokaverkefna og þessi tegund af hlutur. 7 00:00:20,040 --> 00:00:22,490 Almennt hvað er API? 8 00:00:22,490 --> 00:00:25,530 Í mjög stórum dráttum, er það tegund af mannanna sem leyfir 2 stykki 9 00:00:25,530 --> 00:00:28,610 hugbúnaður til að hafa samskipti við hvert annað. 10 00:00:28,610 --> 00:00:32,530 Það er eins konar mjög víðtæka skilgreiningu og er ekki það sem skiptir máli fyrir það sem við erum að horfa á. 11 00:00:32,530 --> 00:00:35,450 Hvað við viljum raunverulega er einhvers konar gagnlegur miðju gólfinu 12 00:00:35,450 --> 00:00:40,570 að hafa samband við einhverskonar gagnagrunni einhversstaðar. 13 00:00:40,570 --> 00:00:43,310 >> Hér er graf, og í rauninni er sú hugmynd að 14 00:00:43,310 --> 00:00:46,790 við erum umsókn, og við viljum fá gögn úr gagnagrunninum, 15 00:00:46,790 --> 00:00:49,570 en við viljum ekki að fyrirspurn í gagnagrunninn beint. 16 00:00:49,570 --> 00:00:52,710 Í stað þess að við viljum fara í gegnum þessa tegund af mannanna, API. 17 00:00:52,710 --> 00:00:55,440 Hugmyndin á bak við það er númer 2 og 3 á töfluna 18 00:00:55,440 --> 00:00:57,750 eru báðir að fara að vera mjög flókið og sóðalegur. 19 00:00:57,750 --> 00:00:59,960 Með öðrum orðum, þegar API er fyrirspurn í gagnagrunninn, 20 00:00:59,960 --> 00:01:03,300 það er líklega að fara að nota SQL töflur og öll þessi tegund af efni, 21 00:01:03,300 --> 00:01:05,489 og við höfum lært svolítið um það í CS50, en í heild, 22 00:01:05,489 --> 00:01:07,590 þú hefur tekið eftir að það er a hluti af a sársauki. 23 00:01:07,590 --> 00:01:10,590 Það verður mjög, mjög flókið og sóðalegur, sérstaklega þegar þú ert að gera 24 00:01:10,590 --> 00:01:12,530 flóknar fyrirspurnir og þessi tegund af hlutur. 25 00:01:12,530 --> 00:01:15,960 >> Hvað við viljum raunverulega er einhvers konar gagnlegur og einfaldan hátt 26 00:01:15,960 --> 00:01:19,780 að fá þessi gögn, og það er hugmyndin á bak við tölurnar 1 og 4 á myndinni. 27 00:01:19,780 --> 00:01:23,600 Með öðrum orðum, við viljum mjög einföld leið til að segja API hvað ég á að fá fyrir okkur 28 00:01:23,600 --> 00:01:27,760 og mjög einföld leið til að fá þessi gögn til baka. 29 00:01:27,760 --> 00:01:33,020 Það er ein helsta leiðin sem að gögn er venjulega sendur og móttekin, 30 00:01:33,020 --> 00:01:36,490 sem JSON eða JavaScript Object Ritháttur. 31 00:01:36,490 --> 00:01:40,370 Það getur verið svolítið eins langt og hvernig þú sendir beiðni til API. 32 00:01:40,370 --> 00:01:43,210 Með öðrum orðum, ef þú vilt sumir tiltekið magn af gögnum, 33 00:01:43,210 --> 00:01:46,670 hvernig þú segja API til að fá þessi gögn geta verið svolítið. 34 00:01:46,670 --> 00:01:49,210 Venjulega felur það að gera einhvers konar beiðni net. 35 00:01:49,210 --> 00:01:53,130 Með öðrum orðum, aðgangur einhverskonar slóð sem er að fara að segja API 36 00:01:53,130 --> 00:01:56,190 nákvæmlega það sem þú vilt, en þau gögn eru nánast alltaf sent til baka, 37 00:01:56,190 --> 00:01:59,530 í öðrum orðum, númer 4 í JSON. 38 00:01:59,530 --> 00:02:01,030 >> Hvað er JSON nákvæmlega? 39 00:02:01,030 --> 00:02:03,030 Eins og ég sagði, JavaScript Object Ritháttur. 40 00:02:03,030 --> 00:02:07,090 Það er í grundvallaratriðum the alhliða staðall fyrir að senda og taka á móti gögnum. 41 00:02:07,090 --> 00:02:11,410 Hugmyndin er að þú hefur þessar 3 flokka af hlutum. 42 00:02:11,410 --> 00:02:13,540 Þú ert fylki hashmaps og frumform. 43 00:02:13,540 --> 00:02:16,580 Fylki og hashmaps þú hefur horfði á smá í CS50, 44 00:02:16,580 --> 00:02:19,870 en þú hefur konar fengið mjög ströngum skilningi á því hvað þeir eru. 45 00:02:19,870 --> 00:02:22,780 Með öðrum orðum, með fylki sem þú veist að þeir eru að slá bundið, 46 00:02:22,780 --> 00:02:26,560 svo þú hefur aðeins eina tegund af tegund sem fer í gegnum allt fylkisins. 47 00:02:26,560 --> 00:02:29,310 JSON er mikið vægari með þessi tegund af hlutur. 48 00:02:29,310 --> 00:02:33,590 Grundvallaratriðum er hugmyndin að reisa þennan hlut, 49 00:02:33,590 --> 00:02:36,270 sem hægt er samsett af einhverjum af þessum 3 hlutum 50 00:02:36,270 --> 00:02:39,470 og geta verið samansett af mörgum sjálfur af þeim, og þeir geta verið hreiður. 51 00:02:39,470 --> 00:02:42,110 >> Hér er svona dæmi um JSON, 52 00:02:42,110 --> 00:02:47,910 sem er þessi hrokkið sviga hér tákna hashmap þinn, 53 00:02:47,910 --> 00:02:51,400 og hashmap er í grundvallaratriðum a kortlagning frá einhvers konar takka 54 00:02:51,400 --> 00:02:53,340 einhvers konar gildi. 55 00:02:53,340 --> 00:02:56,440 Þú munt sjá hér að við höfum eignir inni 56 00:02:56,440 --> 00:02:59,600 og það er kortlagning á fjölda, sem er þetta allt hlutur. 57 00:02:59,600 --> 00:03:04,120 Við sjáum annað þáttur í hashmap, sem er þetta lykillinn isAwesome, 58 00:03:04,120 --> 00:03:07,370 hvaða kort til frumstæðu gildi satt, í öðrum orðum, a Boolean. 59 00:03:07,370 --> 00:03:09,420 Frumform geta verið strengir. Þeir geta verið heiltölur. 60 00:03:09,420 --> 00:03:11,960 Þeir geta verið bools, eitthvað svoleiðis. 61 00:03:11,960 --> 00:03:18,410 Og þú sérð innihald þessa fylkingu sem eignir bendir til hefur 2 strengi í það, 62 00:03:18,410 --> 00:03:20,050 sjálf-svipað og dásamlegt. 63 00:03:20,050 --> 00:03:27,410 Þeir eru 2 eiginleika JSON, og við sjáum að JSON er ógnvekjandi. 64 00:03:27,410 --> 00:03:30,060 Til að líta á það svolítið betur ég ætla að reisa 65 00:03:30,060 --> 00:03:32,870 flóknara dæmi um JSON hér. 66 00:03:32,870 --> 00:03:37,000 >> Við skulum byrja með fjölda, til dæmis, bara tómt array. 67 00:03:37,000 --> 00:03:39,180 En það er svoleiðis leiðinlegt, þannig að við erum að fara að fylla það upp a hluti, 68 00:03:39,180 --> 00:03:43,420 og eins og ég sagði, eru fylki í JSON slegið bundið, 69 00:03:43,420 --> 00:03:46,400 svo við gætum líka haft band hér, sem er hi, 70 00:03:46,400 --> 00:03:49,330 og það er annar þáttur í því fylki. 71 00:03:49,330 --> 00:03:53,450 Og sömuleiðis, gætum við bætt hashmapping hér, sem er að fara að hafa nokkrar samsvaranir. 72 00:03:53,450 --> 00:04:00,470 Það er að fara að hafa kortlagning frá nafni í strenginn Billy. 73 00:04:00,470 --> 00:04:04,590 Við höfum kortlagning frá nafni til Billy, og við höfum kortlagningu 74 00:04:04,590 --> 00:04:10,860 uppáhalds litur til blár. 75 00:04:10,860 --> 00:04:12,700 Það er í rauninni gott dæmi um JSON. 76 00:04:12,700 --> 00:04:18,160 Það verður svona í-Úpps, þarf kommu þarna-öll mismunandi hlutum hennar. 77 00:04:18,160 --> 00:04:21,140 Aftur, það er ekki gerð bundinn á alla, svo þú getur haft hvers konar gerðir 78 00:04:21,140 --> 00:04:24,710 inni allt sem þú vilt, og hugmyndin er að það er sjálf-líkur. 79 00:04:24,710 --> 00:04:28,830 Með öðrum orðum, þetta hérna er JSON mótmæla, sem er þetta allt hlutur, 80 00:04:28,830 --> 00:04:33,200 sem er bara þetta, svo þú getur haft frumstæð vera hlut, 81 00:04:33,200 --> 00:04:35,680 fylki er hlut eða hashmap vera hlutur. 82 00:04:35,680 --> 00:04:40,270 >> Eins og þú getur konar séð, JSON er mjög, mjög gagnlegt í að það er svo fjölhæfur. 83 00:04:40,270 --> 00:04:45,860 Hægt er að hafa öll hugsanleg gögn sem geta eignast þú geymdir í JSON. 84 00:04:45,860 --> 00:04:47,900 Það gerir það mjög gott mál að nota með API 85 00:04:47,900 --> 00:04:50,770 því það þýðir nokkurn veginn að sama hvaða upplýsingar sem þú vilt 86 00:04:50,770 --> 00:04:54,270 Það er að fara að vera einhver leið til að fá það aftur í JSON. 87 00:04:54,270 --> 00:04:58,600 Nokkrar eignir sem gera JSON sérstaklega gott fyrir þessa tegund af hlutur. 88 00:04:58,600 --> 00:05:02,270 Eins og þú geta sjá, miðað við margt sem þú hefur verið að vinna með í CS50 89 00:05:02,270 --> 00:05:06,040 það er tiltölulega mjög auðvelt að lesa og einnig mjög auðvelt að skrifa. 90 00:05:06,040 --> 00:05:09,700 Þú getur undirlið það út ef þú vilt, eins og ég var að gera í því dæmi, 91 00:05:09,700 --> 00:05:12,990 sem gefur þér gott, falleg útgáfa sem þú getur séð mjög vel. 92 00:05:12,990 --> 00:05:17,150 En þar að auki er það líka auðvelt að lesa og skrifa í tölvu. 93 00:05:17,150 --> 00:05:19,870 Með öðrum orðum, það er auðvelt að flokka og auðvelt að umrita, 94 00:05:19,870 --> 00:05:23,820 sem þýðir að það er mjög hratt eftir því sem lesa gögn er málið varðar, 95 00:05:23,820 --> 00:05:26,460 og JSON er hægt að mynda raunverulega fljótt. 96 00:05:26,460 --> 00:05:30,300 >> Það er líka mjög auðvelt að nálgast mismunandi hlutum JSON og þessi tegund af hlutur. 97 00:05:30,300 --> 00:05:33,320 Það er gott, og jafnframt þá staðreynd að það er sjálf-svipuð, 98 00:05:33,320 --> 00:05:36,090 í öðrum orðum, sú staðreynd að þú getur haft JSON innan JSON innan JSON 99 00:05:36,090 --> 00:05:40,040 er mjög gott til að geyma gögn. 100 00:05:40,040 --> 00:05:45,490 Annar hluti sem er almennt mjög vel í að vinna með API er jQuery. 101 00:05:45,490 --> 00:05:49,290 Þú hefur lært svolítið af JavaScript, sem er ágætur vegur 102 00:05:49,290 --> 00:05:53,710 að stjórna HTML og CSS innan vefsíðu. 103 00:05:53,710 --> 00:05:57,190 En það getur konar vera a sársauki til að kóða í látlaus JavaScript, 104 00:05:57,190 --> 00:05:59,810 aðallega vegna þess að JavaScript er mjög fjölorður tungumál. 105 00:05:59,810 --> 00:06:03,020 Þú þarft að læra mikið af setningafræði, og bara til að gera mjög einfalda hluti 106 00:06:03,020 --> 00:06:07,590 það tekur a einhver fjöldi af kóða, svo jQuery er bókasafn fyrir Javascript. 107 00:06:07,590 --> 00:06:09,800 Með öðrum orðum, það er JavaScript skrá sem hægt er að hlaða 108 00:06:09,800 --> 00:06:12,730 og þá nota jQuery aðgerðir til að gera ákveðna hluti. 109 00:06:12,730 --> 00:06:15,670 Og jQuery gerir í grundvallaratriðum líf þitt í heild mun auðveldara. 110 00:06:15,670 --> 00:06:20,390 Það einfaldar það myndi taka hundruð línur í JavaScript niður nokkrar línur í jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Það er sérstaklega gagnlegt ef þú ert að nota API því almennt 112 00:06:24,430 --> 00:06:27,600 hvernig þú munt vera að API er með því að gera AJAX beiðnir, 113 00:06:27,600 --> 00:06:30,130 og ég tel að Davíð hafi minnst á fyrirlestri sem AJAX beiðnir 114 00:06:30,130 --> 00:06:33,120 eru almennt þegar þú ert að gera net beiðni einhvers konar miðlara 115 00:06:33,120 --> 00:06:37,760 og fá til baka einhvers konar gögnum og uppfæra síðuna samstundis. 116 00:06:37,760 --> 00:06:41,840 Með í látlaus JavaScript sem myndi taka brjálaður fjölda lína 117 00:06:41,840 --> 00:06:44,620 að sannreyna allar fyrirsagnir og gera öll þessi tegund af efni, 118 00:06:44,620 --> 00:06:46,810 jQuery er mjög einföld aðgerð sem kallast AJAX, 119 00:06:46,810 --> 00:06:51,760 og allt sem þú þarft að gera í AJAX er að gefa breytur sem þú vilt gefa API 120 00:06:51,760 --> 00:06:56,830 staðsetningu á API og öll önnur tegund af valkostum sem þú vilt stilla. 121 00:06:56,830 --> 00:07:02,480 Það er virkilega, virkilega gott og mjög gagnlegt fyrir þessa tegund af hlutur. 122 00:07:02,480 --> 00:07:06,970 Það er allt sem við þurfum að byrja hendur okkar óhrein í API. 123 00:07:06,970 --> 00:07:10,220 >> Ég ætla að koma upp nokkur dæmi og kanna mismunandi eiginleika þeirra 124 00:07:10,220 --> 00:07:13,150 og hvers vegna þeir eru gagnlegar fyrir mismunandi tegundir af hlutum. 125 00:07:13,150 --> 00:07:15,570 Það fyrsta sem ég ætla í raun sýna þér er eitthvað sem ég er að vinna 126 00:07:15,570 --> 00:07:18,310 á rannsóknarstofu rannsóknum mínum, sem er Ngram Viewer, 127 00:07:18,310 --> 00:07:23,270 og í rauninni er hugmyndin um Ngram Viewer er hægt að leita að einhvers konar orð 128 00:07:23,270 --> 00:07:28,840 eða setningu og sjá hversu oft það er birtist í ákveðnum setja af texta með tímanum. 129 00:07:28,840 --> 00:07:33,160 Þetta dæmi hér er þessi gögn sett af börnum 130 00:07:33,160 --> 00:07:36,480 sem fæddist í New York frá 1920 og 2000. 131 00:07:36,480 --> 00:07:40,090 Við getum leitað til dæmis að nafni Jennifer, 132 00:07:40,090 --> 00:07:44,400 og við sjáum að fyrirfram-1960 það var í raun ekki notað allt það mikið, 133 00:07:44,400 --> 00:07:48,900 og þá eins og við komum inn síðari ár er að verða notuð meira og meira. 134 00:07:48,900 --> 00:07:53,680 Við getum líka gert samanburð, þannig að ef við bera saman Jennifer, til dæmis Thomas, 135 00:07:53,680 --> 00:07:56,520 við sjáum Thomas hefur verið nokkuð ríkjandi í gegnum söguna, 136 00:07:56,520 --> 00:07:58,780 en Jennifer er nýrri nafn. 137 00:07:58,780 --> 00:08:00,590 Við getum gert svona hlutur. 138 00:08:00,590 --> 00:08:02,460 >> Hvernig virkar þetta forrit vinna? 139 00:08:02,460 --> 00:08:06,030 Í grundvallaratriðum, það virkar í gegnum API. 140 00:08:06,030 --> 00:08:08,660 Með öðrum orðum, við höfum ákveðnar breytur hér. 141 00:08:08,660 --> 00:08:11,360 Við höfum breytur sem við erum í raun að leita að, 142 00:08:11,360 --> 00:08:13,720 sem eru þessi nöfn, og þá höfum við nokkrar aðrar eignir, 143 00:08:13,720 --> 00:08:16,570 eins og Y ás og x-ásnum. 144 00:08:16,570 --> 00:08:18,440 Þú getur séð að við höfum nokkra mismunandi valkosti eins langt og 145 00:08:18,440 --> 00:08:20,860 tími upplausn á að nota og þessi tegund af hlutur. 146 00:08:20,860 --> 00:08:26,700 Við höfum þessi valkostur eins langt og hvaða gögn sem við viljum í raun og veru úr gagnagrunninum, 147 00:08:26,700 --> 00:08:29,400 og við viljum fá þessi gögn til baka í nokkrar gagnlegar hátt. 148 00:08:29,400 --> 00:08:34,020 Venjulega, ef við vorum að fyrirspurn í gagnagrunninn beint það myndi konar vera a sársauki til að gera 149 00:08:34,020 --> 00:08:38,970 því væntanlega þessi gögn um nöfn barnið býr í einhverjum gagnagrunni einhverstaðar, 150 00:08:38,970 --> 00:08:42,789 og það væri mjög flókið að þurfa að spyrja það handvirkt 151 00:08:42,789 --> 00:08:45,830 og ákveða nákvæmlega hvaða gögn til að fara aftur. 152 00:08:45,830 --> 00:08:49,300 Með öðrum orðum, annt aðeins um Jennifer og Thomas í þessu tilviki, 153 00:08:49,300 --> 00:08:53,410 og við umönnun aðeins um á ákveðnu ás og öll þessi tegund af efni. 154 00:08:53,410 --> 00:08:55,720 >> Hvernig fáum við í kringum þetta? 155 00:08:55,720 --> 00:09:01,200 Til að grafa í þessu API smá meira sem ég mun sýna þér annað dæmi um þennan vettvang 156 00:09:01,200 --> 00:09:04,490 sem notar aðeins öðruvísi gögnum. 157 00:09:04,490 --> 00:09:09,950 Þetta gögnum, í stað þess að vera barn nöfn, er í raun bara allt 158 00:09:09,950 --> 00:09:12,460 prenta birtingu gagnagrunn Open Library, 159 00:09:12,460 --> 00:09:18,410 sem er risastór uppspretta texta út um síðustu 100 eða svo árum. 160 00:09:18,410 --> 00:09:23,540 Hugmyndin er að við höfum þetta compository á milljónir og milljónir af texta, 161 00:09:23,540 --> 00:09:27,420 þar sem við getum nú leita fyrir mismunandi orð og setningar inn 162 00:09:27,420 --> 00:09:30,840 Hér er dæmi sem er mismunandi örlítið öðruvísi frá fyrra dæmi 163 00:09:30,840 --> 00:09:33,350 Ég sýndi þér, sem er að við höfum þessar 3 leitarfyrirspurnum, 164 00:09:33,350 --> 00:09:36,290 stríð, stríð, og franska orðið fyrir stríð, sem er guerre. 165 00:09:36,290 --> 00:09:40,380 Og við erum að leita í 3 mismunandi hlutum af heildarhlutafé gagnagrunninum. 166 00:09:40,380 --> 00:09:45,080 Með öðrum orðum, í þessari fyrstu fyrirspurn við erum aðeins að leita í Bandaríkjunum, 167 00:09:45,080 --> 00:09:51,150 í seinni aðeins í Bretlandi, og sú þriðja frá verkum út í Frakklandi. 168 00:09:51,150 --> 00:09:53,120 Við sjáum nokkrar áhugaverðar mynstur koma. 169 00:09:53,120 --> 00:09:58,180 Til dæmis sjáum við rétt um hér, sem- 170 00:09:58,180 --> 00:10:02,410 Úps, boðberi ég upp ásinn svolítið, en þú getur séð rétt á þessu svið hér 171 00:10:02,410 --> 00:10:05,730 um Civil War það er stór hækkun á bandaríska útgáfu 172 00:10:05,730 --> 00:10:08,340 en ekki svo stór hækkun á hinum tveimur, og það er augljóslega vegna þess að 173 00:10:08,340 --> 00:10:10,880 American Civil War var að gerast á þeim tímapunkti. 174 00:10:10,880 --> 00:10:13,890 >> Við sjáum nokkur flott efni þar, 175 00:10:13,890 --> 00:10:17,070 en það sem við raunverulega aðgát óður í er hvernig við fengum þessar upplýsingar. 176 00:10:17,070 --> 00:10:21,320 Ég tek þig á bak við tjöldin í þessu app í smá. 177 00:10:21,320 --> 00:10:24,540 A snyrtilegur bragð er ef þú ert að vinna með síðuna og langar að vita 178 00:10:24,540 --> 00:10:27,430 hvað er að gerast á bak við tjöldin, er hægt að opna upp verktaki verkfæri. 179 00:10:27,430 --> 00:10:30,200 Ég ætla að vera með þróunartól Króm, og til að komast til þeirra 180 00:10:30,200 --> 00:10:35,160 þú getur gert stjórn, vakt, J, og það tekur þig að JavaScript vélinni. 181 00:10:35,160 --> 00:10:37,420 Það eru nokkur flipa hér. 182 00:10:37,420 --> 00:10:39,680 Þeir geta allir verið mjög gagnlegt við mismunandi aðstæður, en mér þykir vænt um netið 183 00:10:39,680 --> 00:10:44,150 flipi núna, og ég hef í raun að endurnýja til að fá að vinna. 184 00:10:44,150 --> 00:10:50,180 Ó, fyrirgefðu. 185 00:10:50,180 --> 00:10:52,320 Það gaman að gefa af handahófi dæmi. 186 00:10:52,320 --> 00:10:54,700 Jæja, munum við nota þetta dæmi í staðinn þá. 187 00:10:54,700 --> 00:11:01,330 >> Hugmyndin er að það er þetta API hér, 188 00:11:01,330 --> 00:11:05,330 og þú getur séð nákvæmlega hvað API er að fara aftur. 189 00:11:05,330 --> 00:11:10,220 Þetta er það sem forritið er að fá til baka frá API hafa sendi þá beiðni. 190 00:11:10,220 --> 00:11:13,680 Leyfðu mér að stækka smá, 191 00:11:13,680 --> 00:11:18,340 og við getum í rauninni séð það er bara röð af helstu pör gildi í JSON. 192 00:11:18,340 --> 00:11:23,220 Með öðrum orðum, við höfum þetta hashmap hér sem er að kortleggja gildi. 193 00:11:23,220 --> 00:11:26,440 Með öðrum orðum, það er að kortleggja árum gildi. 194 00:11:26,440 --> 00:11:32,600 Árið 1765 hvað orð við leitað í upphafi að er notað 90 sinnum 195 00:11:32,600 --> 00:11:35,810 úr 1 milljón, þannig að við erum að fá til baka þessari niðurstöðu. 196 00:11:35,810 --> 00:11:40,280 Það er ekki nákvæmlega JSON þar sem við höfum þetta litla úrslit haus hér, 197 00:11:40,280 --> 00:11:45,630 en eftir því að þetta allt mótmæla hér er bara frábær stór JSON blob. 198 00:11:45,630 --> 00:11:51,070 Við höfum fjölda hér sem inniheldur þetta allt þáttur, 199 00:11:51,070 --> 00:11:55,590 og þú getur séð að allt þáttur endar þar, og þá höfum við annar stór þáttur 200 00:11:55,590 --> 00:11:59,430 sem fer alla leið niður til enda, og endar hér. 201 00:11:59,430 --> 00:12:02,200 Við höfum mjög stór array með 2 hluti í það, 202 00:12:02,200 --> 00:12:04,630 og hver af þeim hlutum er hashmap. 203 00:12:04,630 --> 00:12:07,340 Þú getur séð í hverju þessara hashmaps við höfum kortlagningu 204 00:12:07,340 --> 00:12:12,700 þessarar vísitölu gildi 0 og gildi þetta gildi til annars hashmap, 205 00:12:12,700 --> 00:12:18,360 sem aftur er að kortleggja X ás gildi á Y ás gildi. 206 00:12:18,360 --> 00:12:20,970 >> Þú getur séð JSON fær svolítið flókið, en í heild, 207 00:12:20,970 --> 00:12:24,190 það er reyndar mjög gagnlegur, og það er mjög auðvelt að komast í samanburði við 208 00:12:24,190 --> 00:12:27,390 aðrar mismunandi gerðir af merki. 209 00:12:27,390 --> 00:12:30,550 Eins og langt eins og það sem við erum í raun að senda gögnin til API til að fá, 210 00:12:30,550 --> 00:12:34,690 Ég ætla að fara í bak endir svolítið hér. 211 00:12:34,690 --> 00:12:39,850 Þetta er stór JavaScript skrá sem er meðhöndlun alla víxlverkanir vefur app, 212 00:12:39,850 --> 00:12:44,810 og svo við gerum sama um flest af þessu, en við gerum sama um eitthvað af því. 213 00:12:44,810 --> 00:12:47,410 Til dæmis, annt um þessa buildQuery virka, 214 00:12:47,410 --> 00:12:50,670 og hugmyndin um þessa aðgerð er í grundvallaratriðum það er að horfa í kring á síðunni, 215 00:12:50,670 --> 00:12:53,750 vangaveltur út hvað notandinn vill fyrirspurn, með öðrum orðum, 216 00:12:53,750 --> 00:12:57,090 stöðva þá reiti þar sem þeir hafa inntak leitarskilyrði sín, 217 00:12:57,090 --> 00:13:01,380 haka við mismunandi Y og x ás gildi sem þeir hafa valið og öll þessi tegund af hlutur, 218 00:13:01,380 --> 00:13:06,650 og það er að fara að spýta út þessa fyrirspurn gildi, sem ég get þá senda burt til the API. 219 00:13:06,650 --> 00:13:09,180 >> Þetta lítur flókið, og það er ansi flókið 220 00:13:09,180 --> 00:13:18,090 en það sem ég ætla að gera í raun, ég er nú þegar að gera þetta, sem er frábær- 221 00:13:18,090 --> 00:13:21,640 er að ég ætla að fá vélinni til að prenta út nákvæmlega þessi fyrirspurn gildi 222 00:13:21,640 --> 00:13:28,110 að það er að senda burt til the API. 223 00:13:28,110 --> 00:13:30,870 Það er í raun hérna. Því miður framleiðsla, það margt. 224 00:13:30,870 --> 00:13:33,690 En þetta er það sem við þykir vænt um, þetta mótmæla hérna. 225 00:13:33,690 --> 00:13:35,300 Þetta er fyrirspurn mótmæla. 226 00:13:35,300 --> 00:13:40,670 Með öðrum orðum, þetta er einmitt það sem vefur umsókn er að senda til API, 227 00:13:40,670 --> 00:13:45,730 og svo skulum líta inni svolítið, og við sjáum að við höfum nokkrar gildi hér. 228 00:13:45,730 --> 00:13:48,710 Við sjáum að við höfum þessa telja tegund, sem er atvik á milljón orð, 229 00:13:48,710 --> 00:13:51,460 sem er einmitt það sem við höfum valið á Y ás hérna. 230 00:13:51,460 --> 00:13:53,740 Það er þar sem er að koma frá. 231 00:13:53,740 --> 00:13:58,010 Við höfum gagnagrunn gildi, sem þýðir að það er einhver ákveðin gagnagrunn 232 00:13:58,010 --> 00:14:01,610 að þessi gögn er að búa í, og við viljum fá aðgang að gögnum sérstaklega 233 00:14:01,610 --> 00:14:04,950 öfugt við Baby Names gögn, til dæmis. 234 00:14:04,950 --> 00:14:08,320 Þá höfum við þessa hópa gildi, 235 00:14:08,320 --> 00:14:12,090 sem er að segja að við viljum leita eftir ár í stað þess að 236 00:14:12,090 --> 00:14:16,030 önnur X ás gildi. 237 00:14:16,030 --> 00:14:19,040 Þá erum við með aðferð, sem sumir API mun gera marga hluti. 238 00:14:19,040 --> 00:14:22,360 Með öðrum orðum, þetta API getur einnig aftur annars konar gögn, 239 00:14:22,360 --> 00:14:27,740 en í þessu tilviki, við viljum að kortlagningu X ás gildi á Y ás gildi. 240 00:14:27,740 --> 00:14:30,730 Það er það sem er að segja það að gera þar, 241 00:14:30,730 --> 00:14:35,020 og við höfum þessa leit mörk array sem inniheldur 2 gildi. 242 00:14:35,020 --> 00:14:40,720 Sú fyrsta er það sem við sjáum hér, sem er allt í gildi 243 00:14:40,720 --> 00:14:43,020 sem finna má að fyrsta litla kassa efst. 244 00:14:43,020 --> 00:14:47,570 >> Með öðrum orðum, við viljum að leita að orðinu bardaga, og við viljum að sía það 245 00:14:47,570 --> 00:14:51,920 með enskum texta innan American bókmenntum. 246 00:14:51,920 --> 00:14:54,590 Við höfum hér á landi, sem er USA. 247 00:14:54,590 --> 00:14:59,130 Við höfum tungumál, sem er ensku, svo að við höfum allar þessar mismunandi hlutum 248 00:14:59,130 --> 00:15:02,690 sem allir eru að segja API nákvæmlega það sem við viljum. 249 00:15:02,690 --> 00:15:04,940 Við vitum ekki hvað þau gögn sem við fáum til baka er enn, 250 00:15:04,940 --> 00:15:10,970 en við vitum að þau gögn sem er að fara að taka ákveðna mynd. 251 00:15:10,970 --> 00:15:13,650 Þetta dæmi er tegund af á flókinni hlið, 252 00:15:13,650 --> 00:15:16,180 og þú vilt ekki endilega vera að nota API þetta flókið, 253 00:15:16,180 --> 00:15:20,600 en þetta er að sýna þér á svið og kraft hvað API er hægt að gera. 254 00:15:20,600 --> 00:15:24,980 Með öðrum orðum, með tiltölulega einföldum fyrirspurn kerfi sem við höfum í grundvallaratriðum inntak kassi 255 00:15:24,980 --> 00:15:29,490 með nokkrum öðrum selectors í mismunandi stöðum. 256 00:15:29,490 --> 00:15:32,010 >> Leyfðu mér að minnka aftur hér. 257 00:15:32,010 --> 00:15:37,720 Við höfum inntak kassi með nokkrum mismunandi vali lýsigögn, 258 00:15:37,720 --> 00:15:40,610 og við höfum Y ás og x ás val. 259 00:15:40,610 --> 00:15:42,830 Við gerum í raun ekki hafa þessi mörgum sviðum, 260 00:15:42,830 --> 00:15:46,210 og við sjáum mjög auðveldlega við getum fyrirspurn einhvers konar API 261 00:15:46,210 --> 00:15:48,510 og fá gögn til baka og þá setja það inn í þetta graf, 262 00:15:48,510 --> 00:15:52,080 sem er þá að fara að sýna það í gagnleg leið. 263 00:15:52,080 --> 00:15:54,970 Til að líta á annað dæmi sem gæti verið hluti fleiri kunnugleg ykkur 264 00:15:54,970 --> 00:15:56,510 við erum að fara að snúa til Facebook. 265 00:15:56,510 --> 00:15:59,440 API Facebook heitir Facebook línurit, 266 00:15:59,440 --> 00:16:04,390 og í rauninni hvað það þýðir Facebook sér sig eins og þessari gríðarlegu gagnagrunni 267 00:16:04,390 --> 00:16:08,000 hellingur af mismunandi hlutum sem allir hafa ákveðnar tengsl við hvert annað. 268 00:16:08,000 --> 00:16:11,070 Með öðrum orðum, ég er notandi á Facebook, þannig að ég hef snið 269 00:16:11,070 --> 00:16:14,310 og ég hef líka ákveðna vini, og hver þeirra inniheldur snið, 270 00:16:14,310 --> 00:16:17,580 og hver af vinum mínum hefur vegg, sem hefur mismunandi athugasemdir á það, 271 00:16:17,580 --> 00:16:20,800 og hver af þeim athugasemdum hefur líkar og öll þessi tegund af hlutur. 272 00:16:20,800 --> 00:16:23,100 >> Það er hellingur af mismunandi hlutum til Facebook. 273 00:16:23,100 --> 00:16:26,670 Það er gríðarlega flókið API, og það er tonn sem þú getur gert við það, 274 00:16:26,670 --> 00:16:28,450 en það er í raun frekar einfalt í notkun. 275 00:16:28,450 --> 00:16:33,680 Ég ætla að byrja út með því að fara til graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 sem er einstakt reikningur nafn mitt, og reikningur nafn þitt mun annaðhvort vera 277 00:16:38,430 --> 00:16:43,710 einhvers konar orðinu ef þú hefur valið það, eða það gæti bara verið a band af tölum. 278 00:16:43,710 --> 00:16:46,360 Hvað fáum við til baka er laglegur undirstöðu upplýsingar. 279 00:16:46,360 --> 00:16:50,460 Við sjáum því að ég er með fyrsta nafn sem er Billy, síðasta nafn, sem er Janitsch. 280 00:16:50,460 --> 00:16:53,370 Það er einstakt Facebook ID sem ég hef. 281 00:16:53,370 --> 00:16:57,920 Þú getur séð að ég er karlmaður og ég hef tungumál stilling minn 282 00:16:57,920 --> 00:17:01,290 í British ensku. 283 00:17:01,290 --> 00:17:03,490 Með öðrum orðum, við erum að sjá mjög einfaldar upplýsingar hér. 284 00:17:03,490 --> 00:17:08,670 Það er ekki of mikið, en það er að gefa okkur hugmynd um hvað er þarna. 285 00:17:08,670 --> 00:17:10,849 >> Við getum gert það sama við David Malan, til dæmis. 286 00:17:10,849 --> 00:17:13,599 Ég held að nafnið hans er dmalan. 287 00:17:13,599 --> 00:17:16,369 Við sjáum David Malan hefur einstakt auðkenni. 288 00:17:16,369 --> 00:17:19,300 Hann er nafn, fornafn, millinafn, eftirnafn. 289 00:17:19,300 --> 00:17:24,210 Við sjáum líka að hann er karlkyns og hefur tungumál setja sína í US ensku. 290 00:17:24,210 --> 00:17:26,869 Með öðrum orðum, við erum að sjá ansi grunnupplýsingar hér. 291 00:17:26,869 --> 00:17:28,860 Nú, hvað gerist ef við reynum að kíkja á eitthvað annað? 292 00:17:28,860 --> 00:17:33,060 Við skulum segja að ég hef áhuga á því sem David Malan hefur viljað á Facebook. 293 00:17:33,060 --> 00:17:36,860 Ég get gert / vill. Nú erum við að koma sér í vandamál. 294 00:17:36,860 --> 00:17:39,280 Við höfum fengið einhverskonar villu sem segir að aðgangur skapi 295 00:17:39,280 --> 00:17:41,660 þarf að biðja þessa síðu. 296 00:17:41,660 --> 00:17:44,730 En ef þú hugsar um það, sem gerir í raun skynsamleg vegna þess að það væri undarlegt 297 00:17:44,730 --> 00:17:47,830 Ef þú gæti nálgast hvert einasta hluti af gagnagrunni Facebook 298 00:17:47,830 --> 00:17:50,170 bara frá einhvers konar einföld API, ekki satt? 299 00:17:50,170 --> 00:17:56,040 Með öðrum orðum, væntanlega þínar ekki hægt að nálgast með því að einhver sem vill það. 300 00:17:56,040 --> 00:17:58,330 >> Þessi villa er einmitt það sem það þýðir. 301 00:17:58,330 --> 00:18:03,630 Sumir API þurfa ákveðnar heimildir í því skyni að fá aðgang að gögnum sínum. 302 00:18:03,630 --> 00:18:06,940 Og jafnvel fleiri háþróaður API, eins og Facebook eitt, 303 00:18:06,940 --> 00:18:09,840 mun þurfa ákveðnar heimildir til að gera ákveðna hluti. 304 00:18:09,840 --> 00:18:12,650 Ég get séð þessa undirstöðu upplýsingar um David Malan. 305 00:18:12,650 --> 00:18:15,950 Ég sé að hann er karl og að hann býr í Bandaríkjunum, 306 00:18:15,950 --> 00:18:19,270 en ég get ekki alveg séð neitt yfir það. 307 00:18:19,270 --> 00:18:23,050 Til að komast í kringum þetta fyrir nú, Facebook hefur þetta ágætur tól 308 00:18:23,050 --> 00:18:27,690 sem er línurit API landkönnuður, og hugmyndin um að það er hægt að raða á 309 00:18:27,690 --> 00:18:31,880 gera upp heimildir fyrir þig byggt á eigin reikning 310 00:18:31,880 --> 00:18:35,680 og þá að skoða það sem sérstaklega reikningnum þínum getur skoðað. 311 00:18:35,680 --> 00:18:45,120 Til dæmis, ef ég graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Úpps, held ég að til að endurnýja skapi mínu hérna. 313 00:18:53,510 --> 00:18:55,950 Allt í lagi. 314 00:18:55,950 --> 00:19:01,740 Ef ég geri það aftur, frábært, nú sé ég að ég fá þennan hlut til baka 315 00:19:01,740 --> 00:19:06,300 sem segir að ég eins og laug núðlur, sem eru í flokki Leikir og leikföng. 316 00:19:06,300 --> 00:19:08,620 Mér finnst walruses, sem eru í flokki dýrum. 317 00:19:08,620 --> 00:19:10,180 Þetta eru raunveruleg Facebook iðkun. 318 00:19:10,180 --> 00:19:13,280 Þeir eru eins konar vandræðaleg. 319 00:19:13,280 --> 00:19:16,090 >> En við getum séð þetta gögn er allt aftur í JSON. 320 00:19:16,090 --> 00:19:18,160 Það er nokkuð læsileg. 321 00:19:18,160 --> 00:19:20,970 Með öðrum orðum, við höfum þessi kortlagning gagna til einhvers konar fylki, 322 00:19:20,970 --> 00:19:25,220 og hver þáttur þessarar fylki er hashmap sem kortum 323 00:19:25,220 --> 00:19:28,530 nafn sem eins og flokkur sem eins og. 324 00:19:28,530 --> 00:19:31,240 Hver eins hefur einstakt auðkenni. 325 00:19:31,240 --> 00:19:34,510 Það eru alls konar mismunandi hluti af gögnum sem við getum fengið, 326 00:19:34,510 --> 00:19:37,980 og ef þú ert áhuga á að nota Facebook API fyrir CS50 lokaverkefni 327 00:19:37,980 --> 00:19:40,720 eða eitthvað svoleiðis og það er í raun alveg viðráðanleg. 328 00:19:40,720 --> 00:19:44,260 Grundvallaratriðum hvernig þú færð um staðfesting hlutur er Facebook 329 00:19:44,260 --> 00:19:48,030 notar kerfi sem kallast OAuth eða Open staðfesting, 330 00:19:48,030 --> 00:19:52,870 og ég vil ekki fá inn í það núna því OAuth eða aðra tegund 331 00:19:52,870 --> 00:19:56,060 auðkenningar tilhneigingu til að mismunandi mikið á milli mismunandi API 332 00:19:56,060 --> 00:19:58,320 svo ég gæti eytt í langan tíma að fara yfir hvert og eitt, 333 00:19:58,320 --> 00:20:01,170 en þeir eru í raun nokkuð sjálf-skýringar. 334 00:20:01,170 --> 00:20:04,050 >> Ef þú Google Facebook API og það er mjög læsileg. 335 00:20:04,050 --> 00:20:06,670 There er a heild sérstakur. 336 00:20:06,670 --> 00:20:10,210 Til dæmis, þetta er heimildasöfnun fyrir Facebook API, 337 00:20:10,210 --> 00:20:14,170 og þú getur séð að ég er á User síðunni, þannig að ég get lært allt um mismunandi tegundir af hlutum 338 00:20:14,170 --> 00:20:17,170 sem eru í boði til að fá eins langt og gögn 339 00:20:17,170 --> 00:20:21,550 og einnig mismunandi heimildir sem ég þarf til að fá aðgang að þeim. 340 00:20:21,550 --> 00:20:25,470 Eins og við sáum, þurfum við ekki leyfi til að nafn eða kyn, 341 00:20:25,470 --> 00:20:29,380 En fyrir utan að við þurfum leyfi fyrir flestum hlutum. 342 00:20:29,380 --> 00:20:33,040 Þessi síða, eða öllu heldur, þessi vefsíða mun einnig segja þér hvernig á að fá 343 00:20:33,040 --> 00:20:35,640 ákveðinn að vera fær um að staðfesta sjálfur. 344 00:20:35,640 --> 00:20:39,290 Flest staðfesting kerfi nota einhverskonar skapi 345 00:20:39,290 --> 00:20:42,880 þar sem þú færð þetta einstaka gildi, sem er mjög löng og handahófi band, 346 00:20:42,880 --> 00:20:46,240 og hvernig þeir geta að tengja beiðni sem þú ert að gera með þér. 347 00:20:46,240 --> 00:20:50,560 Með öðrum orðum, þeir vita að þú ert ekki að gera neitt grunsamlegt við þeirra gögn. 348 00:20:50,560 --> 00:20:53,340 Þeir vita nákvæmlega hvað þú ert að fá. 349 00:20:53,340 --> 00:20:56,180 Þeir vita líka að þú hefur leyfi til að skoða þær upplýsingar. 350 00:20:56,180 --> 00:20:59,110 >> Ef þú hefur gert Facebook app og app hefur ákveðna notendur, 351 00:20:59,110 --> 00:21:03,380 og þessir notendur hafa leyft að app til að fá aðgang að ákveðnum hluta af uppsetningu þeirra, 352 00:21:03,380 --> 00:21:07,790 þá hvað API lykill eða tákn sem að app er að nota 353 00:21:07,790 --> 00:21:11,090 vilja vera fær til að fá aðgang að gögnum fyrir þá notendur. 354 00:21:11,090 --> 00:21:13,780 Þetta gæti hljómað flókið, en það er ekki of slæmt, 355 00:21:13,780 --> 00:21:16,810 og ef þú vilt nota Facebook Ég vildi mjög mæla með að þú 356 00:21:16,810 --> 00:21:18,990 íhuga að leika í kring með API þeirra. 357 00:21:18,990 --> 00:21:21,610 Það er mjög flott, og þú getur gert mikið af mismunandi hlutum með það. 358 00:21:21,610 --> 00:21:24,880 Ef notandinn gefur þér þessar heimildir sem þú getur jafnvel farið aftur til API 359 00:21:24,880 --> 00:21:28,820 og segja að ég vil raunverulega staða að vegg þessa notanda, eða ég vil hafa þá senda mynd, 360 00:21:28,820 --> 00:21:32,390 og þess vegna á fóðri fréttir þú munt stundum fá þessir pirrandi hluti 361 00:21:32,390 --> 00:21:37,840 segja vinur þinn hefur horft á þetta vídeó á einhvers konar undarlegt staður eða eitthvað svoleiðis. 362 00:21:37,840 --> 00:21:43,120 Það er vegna þess að app hefur verið veittur aðgangur að skrifa á vegg viðkomandi. 363 00:21:43,120 --> 00:21:48,350 Hugmyndin heild er Facebook API nokkuð flókið en líka mjög gagnlegt. 364 00:21:48,350 --> 00:21:53,220 Ákveðið þess virði að skoða ef þú ert enn að leita að lokaverkefni. 365 00:21:53,220 --> 00:21:57,930 >> Annar föruneyti af API sem ég ætla að fara yfir er CS50 API. 366 00:21:57,930 --> 00:22:00,070 Leyfðu mér að minnka hér. 367 00:22:00,070 --> 00:22:03,390 CS50 hefur í raun sett saman fjölmargar API 368 00:22:03,390 --> 00:22:07,080 sem þú getur notað fyrir lokaverkefni eða bara eitthvað sem þú ert að gera. 369 00:22:07,080 --> 00:22:12,830 Og þeir eru að mestu leyti Harvard skyldur, og þeir breytileg frá HUDS valmyndinni 370 00:22:12,830 --> 00:22:17,780 til dæmis, að þessu Harvard Events API, sem mun láta þig fá aðgang að lista yfir 371 00:22:17,780 --> 00:22:21,290 mismunandi tilvik sem eru að fara á Harvard og þessi tegund af hlutur. 372 00:22:21,290 --> 00:22:24,510 Og svo við getum smellt á einhverri af þessum og fá sérstakur fyrir það, 373 00:22:24,510 --> 00:22:28,090 sem þú munt vera fær til finna hvaða API, og hugmyndin er 374 00:22:28,090 --> 00:22:33,920 það er hægt að vita, A, sérstaklega hvað að biðja af API og hvernig á að biðja um það. 375 00:22:33,920 --> 00:22:37,370 Með öðrum orðum, ef ég vil alla atburði sem eru að gerast á morgun 376 00:22:37,370 --> 00:22:42,550 svo ég hef fengið að augljóslega að gefa það að dagsetningu sem ég vil í ákveðnu formi, 377 00:22:42,550 --> 00:22:46,030 og B, mun það segja mér nákvæmlega hvað það er að fara að gefa til baka til mín. 378 00:22:46,030 --> 00:22:48,590 Það mun segja að ég ætla að skila þér þessa JSON hlut, 379 00:22:48,590 --> 00:22:50,960 eða eins og þú geta sjá, það eru mismunandi snið. 380 00:22:50,960 --> 00:22:54,050 >> Þú getur einnig skila gögnum sem CSV, til dæmis. 381 00:22:54,050 --> 00:22:57,620 En þú veist nákvæmlega hvernig þessi gögn er að fara að horfa þegar þú færð hana til baka 382 00:22:57,620 --> 00:23:00,610 svo þú getur búist við að gera ákveðna hluti við hana. 383 00:23:00,610 --> 00:23:07,240 Við getum að fletta niður og sjá, til dæmis, ef við viljum að fyrirspurn API 384 00:23:07,240 --> 00:23:11,500 að fá dagatal, þá getum við notað þessa tilteknu vefslóð 385 00:23:11,500 --> 00:23:16,480 og gefa það ákveðnum þáttum sem eru að fara að vera gögn sem við viljum nákvæmlega. 386 00:23:16,480 --> 00:23:19,540 Og einnig, ef við viljum gögnin aftur í ákveðnu formi, 387 00:23:19,540 --> 00:23:23,790 þá getum við beðið hann að framleiðsla gögnin í CSV, 388 00:23:23,790 --> 00:23:27,700 og það er bara annar breytu sem við erum liggur við API. 389 00:23:27,700 --> 00:23:29,210 Fullt af flottum hlutum til að gera. 390 00:23:29,210 --> 00:23:32,550 Ég myndi örugglega mæla með að haka út CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Ég ætla að líta á þetta Harvard Food API sérstaklega fyrir a lítill hluti. 392 00:23:36,000 --> 00:23:39,870 Eitt sem ég hef í raun hannað er þetta Harvard Noms website, 393 00:23:39,870 --> 00:23:44,930 sem notar CS50 Food API að sækja HUDS matseðill fyrir daginn. 394 00:23:44,930 --> 00:23:50,400 Og fyrir eftirnafn skóla fólk, HUDS er borðstofa þjónustu á Harvard. 395 00:23:50,400 --> 00:23:55,130 Það sem þú færð er þetta síða sem inniheldur allar máltíðir á dag, þannig að við sjáum hádegismat. 396 00:23:55,130 --> 00:23:58,130 Við höfum nokkrar mismunandi flokka. Við höfum baun og gróft stöð. 397 00:23:58,130 --> 00:24:00,340 Við höfum hýðishrísgrjón stöð. 398 00:24:00,340 --> 00:24:03,360 Við sjáum fyrir brunch við höfum þessi nokkur atriði mat. 399 00:24:03,360 --> 00:24:07,030 Ef við smellur á þá, þá erum við að fá næringu upplýsingar. 400 00:24:07,030 --> 00:24:12,240 Þú sérð þetta er næring upplýsingar greipaldin, ef þú varst að spá. 401 00:24:12,240 --> 00:24:14,870 Og svo aftur, við erum að fara að jafningi í bak endir hér svolítið 402 00:24:14,870 --> 00:24:18,530 og sjá hvað nákvæmlega þetta er að gera til að fá þessi gögn. 403 00:24:18,530 --> 00:24:21,710 Og það kemur í ljós að í raun ekki að vera mjög flókið yfirleitt. 404 00:24:21,710 --> 00:24:28,720 Þessi skrá lítur svolítið sóðalegur, en hafðu í huga að þetta er meðhöndlun á allt vefsvæðið 405 00:24:28,720 --> 00:24:34,130 og ef ég skruna niður við sjá þessa breytingu gagna virka. 406 00:24:34,130 --> 00:24:36,630 >> Nú, bara til að vera skýr, þetta er skrifað í CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 sem er tungumál sem þú hefur sennilega ekki séð áður. 408 00:24:39,570 --> 00:24:44,810 En það er ansi læsileg, svo ég ætla að ganga í gegnum það eins og það væri sauðakóðanum. 409 00:24:44,810 --> 00:24:49,080 Breyta degi er fall sem er að fara að taka á þessari dagsetningu gildi, 410 00:24:49,080 --> 00:24:51,740 og það er líka að fara að taka í fyrsta, sem við gerum sama um allt. 411 00:24:51,740 --> 00:24:54,110 En mikilvægast er að það hefur þessa dagsetningu, 412 00:24:54,110 --> 00:25:00,080 og það er sá dagur sem við viljum biðja alla fæðutegunda fyrir. 413 00:25:00,080 --> 00:25:04,030 Og svo þú sérð að við erum með smá setningafræði hér 414 00:25:04,030 --> 00:25:09,000 sem er í grundvallaratriðum að túlkun að dagsetningu í læsileg sniði. 415 00:25:09,000 --> 00:25:11,920 Með öðrum orðum, API krefst dagsetningu á ákveðnu formi. 416 00:25:11,920 --> 00:25:17,390 Þú getur ekki bara sagt 16 nóv 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Það mun ekki vita hvað ég á að gera við það. Það vill dagsetningu á ákveðnu formi. 418 00:25:20,320 --> 00:25:23,230 Allt sem við erum að gera hér er að gefa það einmitt þessi snið, 419 00:25:23,230 --> 00:25:26,520 sem er ári gildi og þá bandstrik, mánuð gildi, 420 00:25:26,520 --> 00:25:29,420 annar bandstrik og dagsetningu gildi. 421 00:25:29,420 --> 00:25:34,910 Og við segjum líka að við viljum gagna til að framleiðsla í JSON. 422 00:25:34,910 --> 00:25:37,560 >> Nú erum við að gera þetta AJAX beiðni, og eins og ég nefndi áðan, 423 00:25:37,560 --> 00:25:41,680 jQuery hefur þetta frábær gagnlegt AJAX virka sem allt sem þú þarft að gera er að tilgreina 424 00:25:41,680 --> 00:25:45,780 nokkrar breytur niður hér, og það mun gefa þér aftur nákvæmlega hvað þú vilt. 425 00:25:45,780 --> 00:25:50,490 Við erum að segja það að URL við viljum það til að fara til er þetta CS50 Food API, 426 00:25:50,490 --> 00:25:52,270 sem við fengum frá sérstakur. 427 00:25:52,270 --> 00:25:56,730 Við segjum að við viljum gagna í JSON og 428 00:25:56,730 --> 00:25:59,490 við erum að fara að gefa það þessi gögn sem við höfum skilgreint upp hér. 429 00:25:59,490 --> 00:26:02,670 Þetta er dagurinn sem við viljum fæðutegunda fyrir. 430 00:26:02,670 --> 00:26:07,790 Og þá er allt sem við þurfum að gera skilgreina einhvers konar virka vel, 431 00:26:07,790 --> 00:26:11,980 sem er í rauninni það sem gerist þegar API skilar þessi gögn. 432 00:26:11,980 --> 00:26:15,490 Með öðrum orðum, höfum við pakkað upp allar breytur sem við viljum, 433 00:26:15,490 --> 00:26:20,530 sem í þessu tilfelli er dagurinn sem við viljum það og sú staðreynd að við viljum það í JSON, 434 00:26:20,530 --> 00:26:23,840 og við sendum það burt til the API, svo nú API er að segja, allt í lagi, 435 00:26:23,840 --> 00:26:26,350 hér er gögn, fékk ég það aftur fyrir þig. 436 00:26:26,350 --> 00:26:29,930 Við höfum velgengni virka, sem þýðir í ljósi þess að API 437 00:26:29,930 --> 00:26:32,230 tókst skilar einhverjum gögnum, hvað eigum við með það? 438 00:26:32,230 --> 00:26:35,980 >> Og það kemur í ljós að allt sem við gerum er að kalla þetta matseðill uppfærslu virka 439 00:26:35,980 --> 00:26:42,680 með hvað API er aftur, svo að við getum leitað til að 440 00:26:42,680 --> 00:26:47,970 og sjá um að allt sem við erum að gera er að nota fullt af nýjum setningafræði hér 441 00:26:47,970 --> 00:26:52,220 að uppfæra HTML og setja þetta nýja gögn. 442 00:26:52,220 --> 00:26:56,580 Hvað þetta gerir er að við höfum þessar örvar á hvorri hlið, og við getum smellt á, 443 00:26:56,580 --> 00:27:01,060 og nú erum við að horfa á gögnum fyrir næsta dag og svo aftur fyrir næsta dag, 444 00:27:01,060 --> 00:27:04,820 og í hvert skipti sem það er að uppfæra þann tíma gildi og samskipta við API, 445 00:27:04,820 --> 00:27:07,510 fá til baka nokkur gögn og setja það inn á síðuna. 446 00:27:07,510 --> 00:27:10,590 Aftur, getur þú séð, frábær, frábær gagnlegur. 447 00:27:10,590 --> 00:27:14,410 Þetta app tók mér nokkrar klukkustundir til reiðhestur saman, 448 00:27:14,410 --> 00:27:20,140 og ég hef aðeins meiri reynslu, augljóslega, en CS50 þinn lokaverkefnið 449 00:27:20,140 --> 00:27:22,870 getur að líta eitthvað mjög líkt þessu. 450 00:27:22,870 --> 00:27:29,540 >> API eru frábær öflugur fyrir the magn af áreynsla sem því fylgir. 451 00:27:29,540 --> 00:27:32,800 Það síðasta sem ég ætla að fara yfir er nokkrum fleiri API meginatriðum. 452 00:27:32,800 --> 00:27:35,480 Ég mun ekki fá eins langt inn í þá eins langt og það sem þeir gera sérstaklega, 453 00:27:35,480 --> 00:27:38,740 en ég skal gefa þér hugmynd um hvað er í boði. 454 00:27:38,740 --> 00:27:42,700 2 mjög gagnlegur sjálfur, ef þú hefur áhuga á greiningu gagna eða visualization 455 00:27:42,700 --> 00:27:45,960 eða eitthvað svoleiðis, er Freebase og Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-líklega þú veist-er allt ókeypis á netinu alfræðiritið, 457 00:27:49,800 --> 00:27:53,230 og það hefur í raun API, þannig að ef þú vilt, til dæmis, 458 00:27:53,230 --> 00:27:56,250 fá alla texta og greinar um kolkrabba 459 00:27:56,250 --> 00:27:58,030 þú getur mjög auðveldlega gert það. 460 00:27:58,030 --> 00:28:02,300 Bara að segja hey, Wikipedia API, mig langar gögn aftur sem þessu, 461 00:28:02,300 --> 00:28:07,010 og ég vil það í þessu formi, og í grein sem ég vil er kolkrabbi, 462 00:28:07,010 --> 00:28:09,820 og mjög fljótt mun gefa þér aftur að upplýsingar. 463 00:28:09,820 --> 00:28:12,230 Það getur verið mjög gagnlegt ef þú vilt að gera einhvers konar staður 464 00:28:12,230 --> 00:28:16,200 það er betra áhorfandi fyrir Wikipedia eða eitthvað svoleiðis. 465 00:28:16,200 --> 00:28:21,350 >> Freebase er tegund af svipað, þó það sé svolítið erfiðara eftir því sem API. 466 00:28:21,350 --> 00:28:24,390 Freebase er eins Wikipedia á að það er á netinu alfræðiritið 467 00:28:24,390 --> 00:28:29,050 sem inniheldur fullt og fullt af mismunandi upplýsingum um alls konar mismunandi efni, 468 00:28:29,050 --> 00:28:33,150 en það er geymt í Venslagagnagrunnur, sem er örlítið mismunandi frá Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia hefur greinar þess og greinar sem tengjast öðrum greinum, 470 00:28:36,410 --> 00:28:38,860 en að mestu leyti, ef þú vilt að gögn fyrir kolkrabba, 471 00:28:38,860 --> 00:28:41,990 þú að fara á smokkfisk grein fá þessi gögn, og þú hefur fullt af texta 472 00:28:41,990 --> 00:28:43,830 um kolkrabbar, svo það er frábært. 473 00:28:43,830 --> 00:28:46,870 Freebase vinnur í örlítið flóknari hátt í því 474 00:28:46,870 --> 00:28:48,930 allt tengist hvert öðru. 475 00:28:48,930 --> 00:28:52,620 Með öðrum orðum, ef við erum að leita að kolkrabba 476 00:28:52,620 --> 00:28:54,940 þá er það fullt af flokkum í tengslum við það. 477 00:28:54,940 --> 00:28:57,920 >> Til dæmis, það er dýr, lifir það neðansjávar, 478 00:28:57,920 --> 00:28:59,710 það hefur ákveðinn líkamshita. 479 00:28:59,710 --> 00:29:01,210 Ég veit ekki. 480 00:29:01,210 --> 00:29:04,230 Og öllum þessum flokkum eru tenglar á aðra staði þar sem þú getur farið 481 00:29:04,230 --> 00:29:06,640 að sjá hlutina með þeim sama flokki. 482 00:29:06,640 --> 00:29:13,450 Með öðrum orðum, Kolkrabbi gögnum myndi innihalda tengil á gögnum sem sett eru fyrir öll dýr, 483 00:29:13,450 --> 00:29:16,790 og sem myndi leyfa mér að fara í kring í gagnagrunninum mjög fljótt. 484 00:29:16,790 --> 00:29:21,740 Þetta getur verið mjög gagnlegt ef þú ert að gera eitthvað eins og samanburð. 485 00:29:21,740 --> 00:29:24,490 Með öðrum orðum, gefa ákveðinn hlutur, þú vilja til sjá 486 00:29:24,490 --> 00:29:27,890 hvað annað það er tengist og sjá hvað það er ekki tengt. 487 00:29:27,890 --> 00:29:30,700 Þessi tegund af hlutur. Það getur verið gagnlegt á margan hátt. 488 00:29:30,700 --> 00:29:34,250 Ef þú ert að leita að fleiri af a áskorun og til að vera fær til gera sumir flóknari hluti 489 00:29:34,250 --> 00:29:38,740 Ég myndi íhuga að taka a líta á Freebase API. 490 00:29:38,740 --> 00:29:44,670 En mestu, Wikipedia er mjög einfaldur staður til að fara eins langt og fá upplýsingar. 491 00:29:44,670 --> 00:29:48,340 Annar staður sem ég mun horfa á er Last.fm, og ég er reyndar að fara á síðuna 492 00:29:48,340 --> 00:29:53,800 ef fólk er ekki kunnugt, en Last.fm er í grundvallaratriðum a tónlist 493 00:29:53,800 --> 00:29:57,220 smekk og ráðleggingar website. 494 00:29:57,220 --> 00:29:59,000 Þú getur búið til aðgang. 495 00:29:59,000 --> 00:30:04,250 Þú getur byrjað að hlaða tónlist frá spilaranum tónlist 496 00:30:04,250 --> 00:30:08,020 á vef og í raun það mun byrja að gefa þér tónlist tillögur 497 00:30:08,020 --> 00:30:10,030 miðað við það sem þú hlustar á. 498 00:30:10,030 --> 00:30:14,270 >> Til dæmis, ef þú ferð á prófílinn þinn síðu-Þetta er minn- 499 00:30:14,270 --> 00:30:18,180 þú getur séð að þú ert með lista af nýlega hlustað á lögin. 500 00:30:18,180 --> 00:30:22,550 Þú getur séð heildar uppáhalds listamönnum, öll þessi tegund af hlutur, 501 00:30:22,550 --> 00:30:25,280 og aftur, það er stór API bak Last.fm, 502 00:30:25,280 --> 00:30:29,360  og þú getur notað það til að gera fullt og fullt af virkilega flottum hlutum. 503 00:30:29,360 --> 00:30:38,870 Til dæmis, ég fer á síðu sem vinur sem hefur þessa Last.fm Verkfæri website. 504 00:30:38,870 --> 00:30:42,380 Þetta er reyndar annar vettvangur sem er byggt á Last.fm API, 505 00:30:42,380 --> 00:30:45,420 og það er fjölda laglegur áhugaverður hlutur. 506 00:30:45,420 --> 00:30:50,260 Ef ég skrá þig inn með notendanafni mínu, til dæmis, 507 00:30:50,260 --> 00:30:53,110 Ég get spurt hann til að búa til tag ský, til dæmis, 508 00:30:53,110 --> 00:30:56,480 og hvað það er að fara að gera er að gefa mér til baka mynd af 509 00:30:56,480 --> 00:30:59,850 allir mismunandi tegundir og þessi tegund af hlutur sem ég vil hlusta á. 510 00:30:59,850 --> 00:31:01,410 Hvernig er það að gera þetta? 511 00:31:01,410 --> 00:31:05,670 Mjög grundvallaratriðum það er að segja að Last.fm API hér er þessi notandi. 512 00:31:05,670 --> 00:31:10,710 Mig langar að vita tegund af hverju lagi sem þeir hafa aldrei hlustað á, 513 00:31:10,710 --> 00:31:15,130 og þú getur gert það með því að gera mjög einfalt AJAX kalla til Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Þú munt fá til baka a stór listi, og þá augljóslega einhver önnur efni er verið að gera 515 00:31:18,990 --> 00:31:22,280 til að snúa það inn í a orð ský, en þú getur séð í heild 516 00:31:22,280 --> 00:31:25,850 það er mjög auðvelt að nálgast og mjög auðvelt að nota. 517 00:31:25,850 --> 00:31:30,750 Mjög gott fyrir nokkrum hlutum. 518 00:31:30,750 --> 00:31:35,940 >> Ég held að það er um allt sem ég segi í heild. 519 00:31:35,940 --> 00:31:39,040 Einn síðastur hlutur ég nefna um API almennt að 520 00:31:39,040 --> 00:31:41,840 þú munt stundum hlaupa inn í eitthvað sem heitir hlutfall takmarka, 521 00:31:41,840 --> 00:31:44,940 og hugmyndin um að takmarka hlutfall er að þú vilt ekki að misnota API. 522 00:31:44,940 --> 00:31:48,130 Með öðrum orðum, það er mjög gott að einhver af þessum vefsíðum hafa API 523 00:31:48,130 --> 00:31:51,070 að þú getur farið til og nota fyrir frjáls. 524 00:31:51,070 --> 00:31:54,460 Hins vegar, ef þú ert að gera milljónir eða milljarða beiðnir á dag, 525 00:31:54,460 --> 00:31:57,610 til dæmis, ef þú ert fastur í óendanlega lykkju sem er óendanlega fyrirspurn 526 00:31:57,610 --> 00:32:00,680 einhvers konar API og komast aftur a gríðarstór magn af gögnum, 527 00:32:00,680 --> 00:32:04,570 augljóslega er það ekki gott, þannig að það er mikið af API gera er að hafa þetta hlutfall takmarka möguleika 528 00:32:04,570 --> 00:32:09,970 sem segir að þú getur aðeins gert 1.000 beiðnir á dag á IP-tölu eða eitthvað svoleiðis. 529 00:32:09,970 --> 00:32:12,540 Og ef þú ert að gera a einhver fjöldi af próf og þessi tegund af hlutur, 530 00:32:12,540 --> 00:32:14,890 þú munt stundum hlaupa inn í það, og allt í einu það mun leggja þig burt 531 00:32:14,890 --> 00:32:18,280 og segja nei, ég er ekki að gefa þér einhverjar fleiri upplýsingar. 532 00:32:18,280 --> 00:32:20,000 >> Það sem þú vilt gera er að spila eftir reglunum. 533 00:32:20,000 --> 00:32:22,950 Þú vilt tryggja að þú lesið API sérstakur vandlega. 534 00:32:22,950 --> 00:32:26,330 Ef það hefur ákveðnar reglur sem fylgir henni, eins og þú getur bara gert X fyrirspurnir á dag 535 00:32:26,330 --> 00:32:30,000 eða þú getur aðeins aðgang að hluta af gagnagrunni er ákveðinn fjöldi af sinnum 536 00:32:30,000 --> 00:32:32,900 eða eitthvað sem þú vilt tryggja að þú standa við það. 537 00:32:32,900 --> 00:32:38,360 Svo lengi sem þú spilar í þeim reglum sem þú munt sennilega hafa a raunverulega ágætur tími með API. 538 00:32:38,360 --> 00:32:42,030 Heild takeaway er API eru virkilega, virkilega gagnlegur. 539 00:32:42,030 --> 00:32:45,610 >> Það er óákveðinn greinir í ensku API fyrir næstum allir stór vefur þjónustu þarna úti. 540 00:32:45,610 --> 00:32:50,700 Nánast allir hluti af the Google Tools Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, öllum þeim hlutum API. 542 00:32:54,390 --> 00:32:58,280 Þú getur notað þau bæði fá gögn frá þjóninum og senda gögn til the framreiðslumaður. 543 00:32:58,280 --> 00:33:00,870 Með öðrum orðum, ef þú vildir gera dagatal app sem getur uppfært 544 00:33:00,870 --> 00:33:04,190 Google Calendar einhvers, það er óákveðinn greinir í ensku API fyrir það. 545 00:33:04,190 --> 00:33:07,810 Ef þú vilt gera eitthvað sem er að fara að segja þér hvar 546 00:33:07,810 --> 00:33:12,530 staðsetning ákveðinni tölu er hægt að nota Google Maps API fyrir það. 547 00:33:12,530 --> 00:33:15,860 API er frábærlega vel, og þeir eru alls staðar. 548 00:33:15,860 --> 00:33:18,700 Ef þú hefur áhuga á einhvers konar hugmynd, 549 00:33:18,700 --> 00:33:22,170 það er líklega tengjast API sem þú getur notað til að fá mikið af gögnum 550 00:33:22,170 --> 00:33:25,060 mjög fljótt og mjög auðveldlega. 551 00:33:25,060 --> 00:33:28,140 >> Ef þú ert enn að leita að verkefni eða ef þú vilt bara að leika í kring 552 00:33:28,140 --> 00:33:31,820 með eitthvað almennt, eru API sannarlega þess virði að gera. 553 00:33:31,820 --> 00:33:37,200 Takk, og ég er fús til að svara öllum spurningum sem þú krakkar geta haft. 554 00:33:37,200 --> 00:33:44,900 Jæja, takk a einhver fjöldi. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]