1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminaras] [programuotojas su API] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Harvardo universiteto] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Tai CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Sveiki, visi, Aš esu Billy ir šiandien aš norėčiau kalbėti apie API, 5 00:00:12,100 --> 00:00:15,220 arba taikomųjų programų sąsajos, 6 00:00:15,220 --> 00:00:20,040 konkrečiai CS50 galutinių projektų kontekste ir kad dalykas rūšiuoti. 7 00:00:20,040 --> 00:00:22,490 Apskritai, kas yra API? 8 00:00:22,490 --> 00:00:25,530 Labai bendrais bruožais, tai tarsi viduryje vyras, kuris leidžia 2 vnt 9 00:00:25,530 --> 00:00:28,610 programinės įrangos bendrauti vieni su kitais. 10 00:00:28,610 --> 00:00:32,530 Tai labai platus apibrėžimas natūra ir nėra, kad už tai, ką mes ieškome aktualus. 11 00:00:32,530 --> 00:00:35,450 Ką mes tikrai norime, yra kažkoks naudingos vidurį 12 00:00:35,450 --> 00:00:40,570 bendrauti su tam tikra duomenų bazės kažkur. 13 00:00:40,570 --> 00:00:43,310 >> Štai diagrama, ir iš esmės idėja yra, kad 14 00:00:43,310 --> 00:00:46,790 taikymas, ir mes norime gauti duomenis iš duomenų bazės, 15 00:00:46,790 --> 00:00:49,570 bet mes nenorime, tiesiogiai duomenų bazėje vykdyti užklausą. 16 00:00:49,570 --> 00:00:52,710 Vietoj to, mes norime eiti per šį viduryje vyras, API rūšiuoti. 17 00:00:52,710 --> 00:00:55,440 Už, kad idėja yra numeriai 2 ir 3 diagramoje 18 00:00:55,440 --> 00:00:57,750 abu bus labai sudėtingas ir nepatogus. 19 00:00:57,750 --> 00:00:59,960 Kitaip tariant, kai API užklausų į duomenų bazę, 20 00:00:59,960 --> 00:01:03,300 tai tikriausiai bus naudojant SQL lenteles ir visus, kad daiktų rūšiuoti, 21 00:01:03,300 --> 00:01:05,489 ir mes sužinojome, šiek tiek apie tai, CS50, bet apskritai, 22 00:01:05,489 --> 00:01:07,590 jūs pastebėjote, kad tai šiek tiek skausmo. 23 00:01:07,590 --> 00:01:10,590 Jis labai, labai sudėtingas ir nepatogus, ypač kai jūs darote 24 00:01:10,590 --> 00:01:12,530 sudėtingų užklausų ir kad dalykas rūšiuoti. 25 00:01:12,530 --> 00:01:15,960 >> Ką mes tikrai norime, yra kažkoks naudinga ir paprastas būdas 26 00:01:15,960 --> 00:01:19,780 gauti, kad duomenis, ir kad už 1 ir 4 numeriais ant grafiko idėja. 27 00:01:19,780 --> 00:01:23,600 Kitaip tariant, mes norime tikrai paprastas būdas papasakoti API ką gauti už mus 28 00:01:23,600 --> 00:01:27,760 ir tikrai paprastas būdas gauti, kad duomenis atgal. 29 00:01:27,760 --> 00:01:33,020 Yra vienas pagrindinis būdas, kad šie duomenys paprastai yra siunčiami ir gaunami, 30 00:01:33,020 --> 00:01:36,490 kuris yra JSON arba JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 , Kad gali šiek tiek skirtis, kiek, kaip jūs API siųsti prašymą. 32 00:01:40,370 --> 00:01:43,210 Kitaip tariant, jei norite šiek tiek tam tikrą kiekį duomenų, 33 00:01:43,210 --> 00:01:46,670 kaip jums pasakyti API gauti, kad duomenys gali skirtis šiek tiek. 34 00:01:46,670 --> 00:01:49,210 Paprastai ji apima tam tikrą tinklo prašymu. 35 00:01:49,210 --> 00:01:53,130 Kitaip tariant, gauti tam tikrą URL, kad manimi vyksta pasakyti API 36 00:01:53,130 --> 00:01:56,190 būtent tai, ko norite, bet duomenys yra beveik visada siunčiami atgal, 37 00:01:56,190 --> 00:01:59,530 Kitaip tariant, numeris 4 JSON. 38 00:01:59,530 --> 00:02:01,030 >> Kas yra JSON tiksliai? 39 00:02:01,030 --> 00:02:03,030 Kaip jau sakiau, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Tai iš esmės yra universalus standartas duomenų perdavimą ir gavimą. 41 00:02:07,090 --> 00:02:11,410 Idėja yra ta, kad jūs turite šias 3 kategorijas dalykų. 42 00:02:11,410 --> 00:02:13,540 Turite masyvų, hashmaps ir primityvai. 43 00:02:13,540 --> 00:02:16,580 Matricas ir hashmaps jūs pažvelgė šiek tiek CS50, 44 00:02:16,580 --> 00:02:19,870 , bet jūs tarsi Dotarłeś labai siaurąja prasme, ką jie. 45 00:02:19,870 --> 00:02:22,780 Kitaip tariant, su matricomis žinote, kad jie tipo jungiasi, 46 00:02:22,780 --> 00:02:26,560 todėl jūs turite tik vienos rūšies tipo, kad eina per visą masyvą. 47 00:02:26,560 --> 00:02:29,310 JSON yra daug švelnesnis, kad dalykas rūšiuoti. 48 00:02:29,310 --> 00:02:33,590 Iš esmės idėja yra jūs statyti šį objektą, 49 00:02:33,590 --> 00:02:36,270 , kuris gali būti sudarytas iš bet kurį iš šių 3 dalykų 50 00:02:36,270 --> 00:02:39,470 ir gali būti sudarytas iš kelių tie iš jų, ir jie gali būti sujungti. 51 00:02:39,470 --> 00:02:42,110 >> Štai tarsi pavyzdžiui JSON, 52 00:02:42,110 --> 00:02:47,910 kuris yra šios garbanotas skliausteliuose atstovauti savo HashMap, 53 00:02:47,910 --> 00:02:51,400 HashMap iš esmės yra kai kurie pagrindinių rūšiuoti atvaizdavimą 54 00:02:51,400 --> 00:02:53,340 kažkoks vertės. 55 00:02:53,340 --> 00:02:56,440 Jūs pamatysite, kad mes turime savybių klavišą, 56 00:02:56,440 --> 00:02:59,600 ir tai fiksuoti ant masyvo, kuris yra visas šis dalykas. 57 00:02:59,600 --> 00:03:04,120 Mes matome kitą HashMap elementą, kuris yra tai raktas isAwesome, 58 00:03:04,120 --> 00:03:07,370 žemėlapiai primityvios tiesa vertės, kitaip tariant, boolean. 59 00:03:07,370 --> 00:03:09,420 Primityvai gali būti stygos. Jie gali būti sveikasis skaičius. 60 00:03:09,420 --> 00:03:11,960 Jie gali būti bools, kas nors panašaus. 61 00:03:11,960 --> 00:03:18,410 Ir pamatysite turinį, kad šio masyvo savybės taškų turi 2 eilutes, 62 00:03:18,410 --> 00:03:20,050 savarankiškai panašūs ir nuostabus. 63 00:03:20,050 --> 00:03:27,410 Yra 2 savybės JSON, ir mes matome, kad JSON yra awesome. 64 00:03:27,410 --> 00:03:30,060 Pažvelgti, kad šiek tiek labiau aš ruošiuosi statyti 65 00:03:30,060 --> 00:03:32,870 sudėtingesnis pavyzdys JSON čia. 66 00:03:32,870 --> 00:03:37,000 >> Pradėkime su masyvo, pavyzdžiui, tik tuščias masyvas. 67 00:03:37,000 --> 00:03:39,180 Bet tai tarsi nuobodu, todėl mes ketiname užpildyti jį šiek tiek, 68 00:03:39,180 --> 00:03:43,420 ir kaip sakiau, JSON masyvai tipas yra susietas, 69 00:03:43,420 --> 00:03:46,400 , todėl mes taip pat galėtų turėti eilutę, kuri yra hi, 70 00:03:46,400 --> 00:03:49,330 ir tai dar to masyvo elementas. 71 00:03:49,330 --> 00:03:53,450 Ir taip pat, mes galime pridėti hashmapping čia, kuris ketina turėti keletą rodymo. 72 00:03:53,450 --> 00:04:00,470 Jis ketina turėti žemėlapių iš pavadinimo styginių Billy. 73 00:04:00,470 --> 00:04:04,590 Mes turime planus iš pavadinimo Billy, ir mes turime pasiskirstymas 74 00:04:04,590 --> 00:04:10,860 mėgstamiausia spalva mėlyna. 75 00:04:10,860 --> 00:04:12,700 Tai iš esmės geras pavyzdys, JSON. 76 00:04:12,700 --> 00:04:18,160 Jis rūšies gauna į-oi, reikia kablelį ten visus skirtingų dalių. 77 00:04:18,160 --> 00:04:21,140 Vėlgi, tai ne tipo, privalo ne visiems, todėl jūs galite turėti bet kokio pobūdžio tipai 78 00:04:21,140 --> 00:04:24,710 viduje viską, ką nori, ir idėja yra tai savarankiškai panašūs. 79 00:04:24,710 --> 00:04:28,830 Kitaip tariant, tai čia yra JSON objektas, kaip visas šis dalykas, 80 00:04:28,830 --> 00:04:33,200 kaip tik tai, kad jūs galite turėti primityvus objektas, 81 00:04:33,200 --> 00:04:35,680 masyvas, objektas ar HashMap objektas. 82 00:04:35,680 --> 00:04:40,270 >> , Kaip jūs galite rūšies pamatyti, JSON yra tikrai, tikrai naudinga tuo, kad tai labai universalus. 83 00:04:40,270 --> 00:04:45,860 Jūs galite turėti visus galimus duomenis, kad jūs galite įsivaizduoti saugomi JSON. 84 00:04:45,860 --> 00:04:47,900 Kad daro tai tikrai gražus kalbą naudoti su API 85 00:04:47,900 --> 00:04:50,770 , nes jis labai daug reiškia, kad nesvarbu, kokie duomenys, kad norite 86 00:04:50,770 --> 00:04:54,270 ten bus koks nors būdas gauti jį atgal JSON. 87 00:04:54,270 --> 00:04:58,600 Prieš keletą savybių, kurios JSON ypač tinka šis dalykas rūšiuoti. 88 00:04:58,600 --> 00:05:02,270 Kaip matote, palyginti su daug dalykų, kad jūs buvote darbo su CS50 89 00:05:02,270 --> 00:05:06,040 tai palyginti labai lengva skaityti, ir taip pat labai lengva rašyti. 90 00:05:06,040 --> 00:05:09,700 Galite įtraukti jį, jei norite, kaip aš darau tame pavyzdyje, 91 00:05:09,700 --> 00:05:12,990 , kuri suteikia jums gražus, gana versiją, kad jūs galite pamatyti tikrai gerai. 92 00:05:12,990 --> 00:05:17,150 Be to, tai taip pat lengva skaityti ir rašyti kompiuterio. 93 00:05:17,150 --> 00:05:19,870 Kitaip tariant, tai lengva apdoroti ir lengva koduoti, 94 00:05:19,870 --> 00:05:23,820 kuris reiškia, kad ji gana greitai, kiek skaitant duomenis, 95 00:05:23,820 --> 00:05:26,460 ir JSON gali būti sukurtas labai greitai. 96 00:05:26,460 --> 00:05:30,300 >> Taip pat labai lengvai prieiti prie skirtingų dalių JSON ir kad dalykas rūšiuoti. 97 00:05:30,300 --> 00:05:33,320 Tai gražus, ir be to, tai, kad ji savarankiškai panašūs, 98 00:05:33,320 --> 00:05:36,090 Kitaip tariant, tai, kad jūs galite turėti per JSON JSON JSON per 99 00:05:36,090 --> 00:05:40,040 yra tikrai gražus saugoti duomenis. 100 00:05:40,040 --> 00:05:45,490 Kita dalis, kuri paprastai yra tikrai naudinga dirbti su API yra JQuery. 101 00:05:45,490 --> 00:05:49,290 Jūs sužinojote šiek tiek "JavaScript", kuri yra puikus būdas 102 00:05:49,290 --> 00:05:53,710 manipuliuoti HTML ir CSS per svetainę. 103 00:05:53,710 --> 00:05:57,190 Bet ji negali rūšies skausmas paprasto JavaScript kodas 104 00:05:57,190 --> 00:05:59,810 daugiausia dėl to, kad "JavaScript" yra tikrai verbose kalba. 105 00:05:59,810 --> 00:06:03,020 Jūs turite išmokti daug sintaksės ir tiesiog daryti labai paprastus dalykus 106 00:06:03,020 --> 00:06:07,590 ji užima daug kodo, todėl JQuery yra JavaScript biblioteka. 107 00:06:07,590 --> 00:06:09,800 Kitaip tariant, tai "JavaScript" failą, kad galite įkelti 108 00:06:09,800 --> 00:06:12,730 ir tada naudoti jQuery funkcijas, daryti tam tikrus dalykus. 109 00:06:12,730 --> 00:06:15,670 Ir jQuery iš esmės padarys jūsų gyvenimą daug lengviau. 110 00:06:15,670 --> 00:06:20,390 Tai supaprastina kas būtų priimti šimtus eilučių "JavaScript", kad kelios linijos JQuery. 111 00:06:20,390 --> 00:06:24,430 >> Tai ypač naudinga, jei jūs naudojate API, nes paprastai 112 00:06:24,430 --> 00:06:27,600 kaip jūs jungiatės prie API AJAX prašymus, 113 00:06:27,600 --> 00:06:30,130 ir aš manau, Dovydas paminėta paskaitą, kad AJAX prašymai 114 00:06:30,130 --> 00:06:33,120 paprastai, kai jūs darote prašymą kažkoks serverio tinklo 115 00:06:33,120 --> 00:06:37,760 ir gauti kažkokią duomenų ir atnaujinti puslapį akimirksniu. 116 00:06:37,760 --> 00:06:41,840 Kadangi paprasto JavaScript, kad būtų atsižvelgiama beprotiškas numeriai maršrutų 117 00:06:41,840 --> 00:06:44,620 patvirtinti visas antraštes ir padaryti viską, kad daiktų rūšiuoti, 118 00:06:44,620 --> 00:06:46,810 JQuery yra tikrai paprasta funkcija vadinama AJAX, 119 00:06:46,810 --> 00:06:51,760 ir viskas, ką turite padaryti, AJAX parametrus, kuriuos norite suteikti API, 120 00:06:51,760 --> 00:06:56,830 API vieta ir bet koks papildomas galimybių rūšiuoti, kurį norite konfigūruoti. 121 00:06:56,830 --> 00:07:02,480 Tai tikrai, tikrai gražus ir labai naudinga šios rūšies dalykas. 122 00:07:02,480 --> 00:07:06,970 Kad visi mes turime pradėti gauti savo rankas purvinas API. 123 00:07:06,970 --> 00:07:10,220 >> Aš ruošiuosi auklėti kelis pavyzdžius ir ištirti jų skirtingas savybes 124 00:07:10,220 --> 00:07:13,150 ir kodėl jie naudingi įvairių dalykų. 125 00:07:13,150 --> 00:07:15,570 Pirmas dalykas, aš iš tikrųjų parodyti jums, yra kažkas, kad aš dirbu 126 00:07:15,570 --> 00:07:18,310 mano tyrimų laboratorijoje, kuri yra Ngram Viewer, 127 00:07:18,310 --> 00:07:23,270 ir iš esmės idėja, yra Ngram Viewer galite ieškoti tam tikrą žodį, 128 00:07:23,270 --> 00:07:28,840 ar frazė ir pamatyti, kaip dažnai jis pasirodė tam tikrą rinkinį teksto laikui bėgant. 129 00:07:28,840 --> 00:07:33,160 Šis pavyzdys yra tai duomenų rinkinys kūdikių 130 00:07:33,160 --> 00:07:36,480 kad gimė Niujorke tarp 1920 ir 2000 m. 131 00:07:36,480 --> 00:07:40,090 Mes galime ieškoti, pavyzdžiui, pavadinimą Jennifer 132 00:07:40,090 --> 00:07:44,400 ir mes matome, kad 1960-ųjų ji tikrai buvo naudojama ne visi, kad daug, 133 00:07:44,400 --> 00:07:48,900 ir tada kaip mes gauname į vėlesniais metais jis tampa vis plačiau naudojami. 134 00:07:48,900 --> 00:07:53,680 Mes taip pat galime padaryti palyginti, todėl, jei mes palyginti Jennifer, pavyzdžiui, Thomas, 135 00:07:53,680 --> 00:07:56,520 mes galime pamatyti, Tomas buvo gana paplitę per visą istoriją, 136 00:07:56,520 --> 00:07:58,780 kadangi Jennifer yra naujesnis pavadinimas. 137 00:07:58,780 --> 00:08:00,590 Mes galime padaryti, kad rūšies dalykas. 138 00:08:00,590 --> 00:08:02,460 >> Kaip veikia ši programa darbas? 139 00:08:02,460 --> 00:08:06,030 Iš esmės, ji veikia per API. 140 00:08:06,030 --> 00:08:08,660 Kitaip tariant, mes turime tam tikrus parametrus. 141 00:08:08,660 --> 00:08:11,360 Mes turime apie tai, ką mes iš tikrųjų ieško parametrus, 142 00:08:11,360 --> 00:08:13,720 šie pavadinimai ir tada mes turime keletą kitų savybių, 143 00:08:13,720 --> 00:08:16,570 kaip Y ašies ir X ašis. 144 00:08:16,570 --> 00:08:18,440 Jūs galite pamatyti, mes turime keletą skirtingų galimybių, kiek 145 00:08:18,440 --> 00:08:20,860 rezoliuciją ir kad dalykas rūšiuoti. 146 00:08:20,860 --> 00:08:26,700 Turime šias galimybes kiek, kokius duomenis mes iš tikrųjų nori iš duomenų bazės, 147 00:08:26,700 --> 00:08:29,400 ir mes norime keletas naudingų gauti, kad duomenis. 148 00:08:29,400 --> 00:08:34,020 Paprastai, jei mes užklausų duomenų bazę tiesiogiai, kad būtų rūšiuoti skausmas daryti 149 00:08:34,020 --> 00:08:38,970 nes turbūt tai duomenys apie kūdikių vardai gyvena tam tikru duomenų bazę kažkur, 150 00:08:38,970 --> 00:08:42,789 ir jis bus tikrai sudėtinga jį rankiniu būdu užklausą 151 00:08:42,789 --> 00:08:45,830 ir nuspręsti, kokius duomenis grįžti. 152 00:08:45,830 --> 00:08:49,300 Kitaip tariant, mes tik rūpi Jennifer ir Thomas, šiuo atveju, 153 00:08:49,300 --> 00:08:53,410 ir mums rūpi tik tam tikrą ašį ir visos tos stuff rūšiuoti. 154 00:08:53,410 --> 00:08:55,720 >> Kaip mes apie tai? 155 00:08:55,720 --> 00:09:01,200 Kasti į šį API šiek tiek daugiau, aš jums parodysiu, kitą šios platformos pavyzdys 156 00:09:01,200 --> 00:09:04,490 naudoja šiek tiek skirtingus duomenų rinkinį. 157 00:09:04,490 --> 00:09:09,950 Šis duomenų rinkinys, vietoj to, kad kūdikių vardai, iš tikrųjų tik visa 158 00:09:09,950 --> 00:09:12,460 spausdinti leidinį atviro bibliotekos duomenų bazę, 159 00:09:12,460 --> 00:09:18,410 kuris yra didžiulis šaltinis dokumentus, paskelbtus per pastaruosius 100 metus ar panašiai. 160 00:09:18,410 --> 00:09:23,540 Idėja, mes turime šį teksto milijonus compository 161 00:09:23,540 --> 00:09:27,420 dabar mes galime ieškoti įvairių žodžių ir frazių in 162 00:09:27,420 --> 00:09:30,840 Štai pavyzdys, kad skiriasi šiek tiek skiriasi nuo ankstesniame pavyzdyje 163 00:09:30,840 --> 00:09:33,350 Aš parodė jums, o tai, kad mes turime šiuos 3 paieškos užklausas, 164 00:09:33,350 --> 00:09:36,290 karas, karas ir karo prancūzų kalbos žodis, kuris yra Guerre. 165 00:09:36,290 --> 00:09:40,380 Ir mes ieškome 3 skirtinguose skyriuose, visos duomenų bazės. 166 00:09:40,380 --> 00:09:45,080 Kitaip tariant, šiame pirmajame užklausą mes tik ieško, JAV, 167 00:09:45,080 --> 00:09:51,150 Antroje dalyje tik Jungtinėje Karalystėje, ir tik trečdalis Prancūzijoje kūriniai paskelbti. 168 00:09:51,150 --> 00:09:53,120 Mes matome, atsiras įdomių modeliai. 169 00:09:53,120 --> 00:09:58,180 Pavyzdžiui, matome, dešinėje maždaug čia- 170 00:09:58,180 --> 00:10:02,410 Oi, aš messed up ašies šiek tiek, bet jūs galite pamatyti šiame diapazone čia 171 00:10:02,410 --> 00:10:05,730 apie pilietinio karo didelis smaigalys Amerikos leidimas 172 00:10:05,730 --> 00:10:08,340 tačiau nėra toks didelis smaigalys kitų dviejų, ir tai akivaizdu, nes 173 00:10:08,340 --> 00:10:10,880 Amerikos pilietinis karas vyksta tame taške. 174 00:10:10,880 --> 00:10:13,890 >> Mes galime pamatyti keletą įdomių dalykų ten, 175 00:10:13,890 --> 00:10:17,070 bet tai, ką mes tikrai rūpi, kaip mes turime šiuos duomenis. 176 00:10:17,070 --> 00:10:21,320 Aš jus už šį šiek tiek app scenos. 177 00:10:21,320 --> 00:10:24,540 Tvarkingas fokusas yra, jei dirbate su svetaine ir rūšies nori žinoti 178 00:10:24,540 --> 00:10:27,430 tai, kas vyksta užkulisiuose, galite atidaryti Developer Tools. 179 00:10:27,430 --> 00:10:30,200 Aš ketinate naudoti Chrome "Kūrėjo įrankiai ir gauti tiems, 180 00:10:30,200 --> 00:10:35,160 jūs galite padaryti, kontrolės, Shift, J, ir kuris nukelia jus į "JavaScript" konsolė. 181 00:10:35,160 --> 00:10:37,420 Yra keletas skirtukus. 182 00:10:37,420 --> 00:10:39,680 Jie visi gali būti labai naudinga esant kitokioms aplinkybėms, bet man rūpi tinklo 183 00:10:39,680 --> 00:10:44,150 skirtukas dabar, ir aš iš tikrųjų turi atnaujinti, kad būtų gauti, kad darbo. 184 00:10:44,150 --> 00:10:50,180 Oi, atsiprašau. 185 00:10:50,180 --> 00:10:52,320 Jis mėgsta atsitiktinį pavyzdį. 186 00:10:52,320 --> 00:10:54,700 Gerai, mes naudojame šį pavyzdį, o ne tada. 187 00:10:54,700 --> 00:11:01,330 >> Idėja yra, ten tai API čia, 188 00:11:01,330 --> 00:11:05,330 ir jūs galite pamatyti, ką API grįžta. 189 00:11:05,330 --> 00:11:10,220 Tai yra tai, ką paraiška gauti atgal API išsiunčia šį prašymą. 190 00:11:10,220 --> 00:11:13,680 Leiskite man padidinti šiek tiek, 191 00:11:13,680 --> 00:11:18,340 ir mes galime iš esmės tai tik pagrindinių vertės porų serijos JSON. 192 00:11:18,340 --> 00:11:23,220 Kitaip tariant, mes turime šį HashMap čia, kad manimi, apibūdinantį vertybes. 193 00:11:23,220 --> 00:11:26,440 Kitaip tariant, tai fiksuoti metų vertybes. 194 00:11:26,440 --> 00:11:32,600 1765 m, bet žodis, kurį mes iš pradžių ieškojo 90 kartus 195 00:11:32,600 --> 00:11:35,810 iš jau dalyvavo 1 mln, todėl mes grįžti šį rezultatą. 196 00:11:35,810 --> 00:11:40,280 Tai ne visai JSON, nes mes turime tai mažai rezultatų antraštę čia, 197 00:11:40,280 --> 00:11:45,630 , tačiau atkreipkite dėmesį, kad visas šis objektas čia yra tik labai didelis JSON lašelis. 198 00:11:45,630 --> 00:11:51,070 Mes turime masyvą, kuriame yra visą šį elementą, 199 00:11:51,070 --> 00:11:55,590 ir jūs galite pamatyti, kad visa elementas baigiasi, ir tada mes turime dar vienas didelis elementą 200 00:11:55,590 --> 00:11:59,430 kad eina visą kelią žemyn iki galo, ir kad baigiasi čia. 201 00:11:59,430 --> 00:12:02,200 Mes tikrai didelis masyvas su 2 objektų, 202 00:12:02,200 --> 00:12:04,630 ir kiekvienas iš šių objektų HashMap. 203 00:12:04,630 --> 00:12:07,340 Jūs galite pamatyti per kiekvieną iš tų hashmaps turime žemėlapių 204 00:12:07,340 --> 00:12:12,700 šio indekso vertė 0 ir ši vertė vertę į kitą HashMap, 205 00:12:12,700 --> 00:12:18,360 kuris vėl fiksuoti X ašyje vertės į y ašį vertės. 206 00:12:18,360 --> 00:12:20,970 >> Jūs galite pamatyti, JSON pasireiškia šiek tiek sudėtinga, tačiau apskritai, 207 00:12:20,970 --> 00:12:24,190 tai tikrai labai naudinga, ir tai labai lengva naudotis, palyginti su 208 00:12:24,190 --> 00:12:27,390 ir įvairių kitų užrašymo formos. 209 00:12:27,390 --> 00:12:30,550 Kiek tai, ką mes iš tiesų siunčia duomenis į API gauti, 210 00:12:30,550 --> 00:12:34,690 Aš ruošiuosi eiti į nugaros pabaigoje šiek tiek čia. 211 00:12:34,690 --> 00:12:39,850 Tai didelis failas JavaScript, kad nagrinėdama visus web app sąveiką, 212 00:12:39,850 --> 00:12:44,810 ir taip mes ne rūpi labiausiai apie tai, bet mes rūpi kai jį. 213 00:12:44,810 --> 00:12:47,410 Pavyzdžiui, mes rūpinamės apie šį buildQuery funkcija, 214 00:12:47,410 --> 00:12:50,670 ir šios funkcijos idėja yra iš esmės dairausi puslapio, 215 00:12:50,670 --> 00:12:53,750 suprasti, ką vartotojas nori užklausą, kitaip tariant, 216 00:12:53,750 --> 00:12:57,090 patikrinti tuos langelius, kur jie įvesti savo paieškos terminus, 217 00:12:57,090 --> 00:13:01,380 patikrinti kitą Y ir X ašis vertybes, kad jie jau pasirinko ir visi, kad dalykas rūšiuoti, 218 00:13:01,380 --> 00:13:06,650 ir tai vyksta išspjauti Ši užklausa vertę, kurią galiu išsiųsti į API. 219 00:13:06,650 --> 00:13:09,180 >> Tai atrodo sudėtinga, ir ji yra gana sudėtinga 220 00:13:09,180 --> 00:13:18,090 bet ką aš ruošiuosi daryti iš tikrųjų, aš jau daro tai, kuris yra puikus 221 00:13:18,090 --> 00:13:21,640 tai, kad aš ruošiuosi gauti konsolės spausdinti tiksliai, kad užklausos vertę 222 00:13:21,640 --> 00:13:28,110 , kad jis siuntimas API. 223 00:13:28,110 --> 00:13:30,870 Kad iš tikrųjų čia. Atsiprašome, jis išveda daug dalykų. 224 00:13:30,870 --> 00:13:33,690 Tačiau tai, kas mums rūpi šis objektas čia. 225 00:13:33,690 --> 00:13:35,300 Tai yra užklausos objektas. 226 00:13:35,300 --> 00:13:40,670 Kitaip tariant, tai yra būtent tai žiniatinklio programa siunčia į API, 227 00:13:40,670 --> 00:13:45,730 ir tt Pažvelkime viduje šiek tiek, ir mes matome, mes turime keletą vertybes čia. 228 00:13:45,730 --> 00:13:48,710 Mes matome, kad mes turime, šis skaičius tipą, kuris yra įvykių milijonui žodžių, 229 00:13:48,710 --> 00:13:51,460 , kuri yra būtent tai, ko mes pasirinkome Y ašyje čia. 230 00:13:51,460 --> 00:13:53,740 Štai kur, kad ateina iš. 231 00:13:53,740 --> 00:13:58,010 Mes turime duomenų bazės vertę, o tai reiškia, kad yra tam tikrus duomenų bazė 232 00:13:58,010 --> 00:14:01,610 , kad šie duomenys yra gyvas, ir mes norime pasiekti, kad duomenys, konkrečiai 233 00:14:01,610 --> 00:14:04,950 , palyginti su kūdikių vardai duomenis, pavyzdžiui,. 234 00:14:04,950 --> 00:14:08,320 Tada mes turime šios grupės vertę, 235 00:14:08,320 --> 00:14:12,090 , kuri sako, kad mes norime ieškoti pagal metus, o ne 236 00:14:12,090 --> 00:14:16,030 bet kuriam kitam X ašis vertę. 237 00:14:16,030 --> 00:14:19,040 Tada mes turime metodą, kai kurios API bus padaryti keletą dalykų. 238 00:14:19,040 --> 00:14:22,360 Kitaip tariant, šis API gali taip pat grįžti kitų rūšių duomenų, 239 00:14:22,360 --> 00:14:27,740 bet šiuo atveju, mes norime, kad x ašis vertybių žemėlapių Y ašis vertės. 240 00:14:27,740 --> 00:14:30,730 Štai ką, kad sako ten daryti, 241 00:14:30,730 --> 00:14:35,020 ir mes turime šią paiešką ribos masyvas, kuriame yra 2 reikšmes. 242 00:14:35,020 --> 00:14:40,720 Pirmasis yra tai, ką mes matome čia, kuris yra visas reikšmes 243 00:14:40,720 --> 00:14:43,020 kad mažai langelyje esantis viršuje. 244 00:14:43,020 --> 00:14:47,570 >> Kitaip tariant, mes norime ieškoti žodžio mūšio, ir mes norite filtruoti 245 00:14:47,570 --> 00:14:51,920 anglų tekstų amerikiečių literatūroje. 246 00:14:51,920 --> 00:14:54,590 Mes turime šią šalį, kuri yra Jungtinės Amerikos Valstijos. 247 00:14:54,590 --> 00:14:59,130 Mes turime kalbą, ty anglų kalba, todėl mes turime visų šių skirtingų dalių 248 00:14:59,130 --> 00:15:02,690 , kurie visi pasakoja API būtent tai, ko mes norime. 249 00:15:02,690 --> 00:15:04,940 Mes nežinome, kokie duomenys, kuriuos mes gauname atgal dar, 250 00:15:04,940 --> 00:15:10,970 tačiau mes žinome, kad duomenys ketina imtis tam tikrą formą. 251 00:15:10,970 --> 00:15:13,650 Šis pavyzdys yra tarsi sudėtingos pusėje, 252 00:15:13,650 --> 00:15:16,180 ir jums bus ne būtinai naudojant API šį kompleksą, 253 00:15:16,180 --> 00:15:20,600 bet tai yra parodyti jums, diapazoną ir galią, ką API gali padaryti. 254 00:15:20,600 --> 00:15:24,980 Kitaip tariant, mes iš esmės turime gana paprastas užklausą sistemos įvesties langelį 255 00:15:24,980 --> 00:15:29,490 su keletu kitų selektoriai skirtingose ​​vietose. 256 00:15:29,490 --> 00:15:32,010 >> Leiskite man padidinti atgal čia. 257 00:15:32,010 --> 00:15:37,720 Turime įvedimo lauką su kelių skirtingų metaduomenų pasirinkimus, 258 00:15:37,720 --> 00:15:40,610 ir mes turime Y ašį ir X ašis pasirinkimus. 259 00:15:40,610 --> 00:15:42,830 Mes ne iš tikrųjų turėti, kad daugelyje sričių, 260 00:15:42,830 --> 00:15:46,210 ir mes galime pamatyti labai lengvai, mes galime vykdyti užklausą kažkokią API 261 00:15:46,210 --> 00:15:48,510 ir gauti duomenis atgal ir tada padėkite jį į šią diagramą, 262 00:15:48,510 --> 00:15:52,080 , kuris tada rodyti jį tam tinkamu būdu. 263 00:15:52,080 --> 00:15:54,970 Pažvelgti į kitą, pavyzdžiui, kad gali būti šiek tiek daugiau susipažinęs su jumis, vaikinai, 264 00:15:54,970 --> 00:15:56,510 mes ketiname kreiptis į "Facebook". 265 00:15:56,510 --> 00:15:59,440 "Facebook" API "Facebook" diagrama, 266 00:15:59,440 --> 00:16:04,390 ir iš esmės, ką tai reiškia, kad "Facebook" mato save kaip didžiuliu duomenų bazėje 267 00:16:04,390 --> 00:16:08,000 daug skirtingų dalių, kad visi turi tam tikrus santykius vienas su kitu. 268 00:16:08,000 --> 00:16:11,070 Kitaip tariant, aš "Facebook" vartotojas, kad aš turiu savo profilį, 269 00:16:11,070 --> 00:16:14,310 ir aš taip pat turi tam tikrų draugų, ir kiekviena iš jų turi savo profilį, 270 00:16:14,310 --> 00:16:17,580 ir kiekvienas iš mano draugų turi sienelę, turi skirtingą pastabas dėl 271 00:16:17,580 --> 00:16:20,800 ir kiekvienas iš šių pastabų mėgsta ir visus, kad dalykas rūšiuoti. 272 00:16:20,800 --> 00:16:23,100 >> Yra daug skirtingų dalių į Facebook. 273 00:16:23,100 --> 00:16:26,670 Tai nepaprastai sudėtinga API, ir ten tonų, kuriuos galite padaryti su juo, 274 00:16:26,670 --> 00:16:28,450 bet tai tikrai gana paprasta naudoti. 275 00:16:28,450 --> 00:16:33,680 Aš ruošiuosi pradėti ketina graph.facebook.com / billyjanitsch 276 00:16:33,680 --> 00:16:38,430 tai mano unikalus sąskaitos pavadinimas, ir jūsų sąskaitos pavadinimas arba 277 00:16:38,430 --> 00:16:43,710 kažkoks žodžio, jei jūs pasirinkote tai, ar tai gali būti tik skaičių eilutę. 278 00:16:43,710 --> 00:16:46,360 Ką mes grįžti yra gana Pagrindinė informacija. 279 00:16:46,360 --> 00:16:50,460 Mes matome, kad aš turiu vardą, kuris yra Billy, pavardė, kuris yra Janitsch. 280 00:16:50,460 --> 00:16:53,370 Yra unikalus "Facebook" ID, kurį aš. 281 00:16:53,370 --> 00:16:57,920 Jūs galite pamatyti, kad aš vyriškos ir, kad aš turiu savo kalbos nustatymus 282 00:16:57,920 --> 00:17:01,290 Britų anglų. 283 00:17:01,290 --> 00:17:03,490 Kitaip tariant, mes matome labai paprastas informacijos rasite čia. 284 00:17:03,490 --> 00:17:08,670 Tai nėra labai daug, tačiau ji suteikia mums idėją, kas ten. 285 00:17:08,670 --> 00:17:10,849 >> Mes galime padaryti tą patį David Malan, pvz. 286 00:17:10,849 --> 00:17:13,599 Manau, kad jo vardas yra dmalan. 287 00:17:13,599 --> 00:17:16,369 Mes matome, Davidas Malan turi unikalų ID. 288 00:17:16,369 --> 00:17:19,300 Jis yra vardas, pavardė, vardas, Antras vardas, pavardė. 289 00:17:19,300 --> 00:17:24,210 Mes taip pat matome, kad jis patinas ir turi savo kalbą rinkinį anglų kalba (JAV). 290 00:17:24,210 --> 00:17:26,869 Kitaip tariant, mes matome gana pagrindinę informaciją čia. 291 00:17:26,869 --> 00:17:28,860 Kas nutinka, jei mes stengiamės sužinoti ką nors kita? 292 00:17:28,860 --> 00:17:33,060 Tarkime, Man įdomu, ką Davidas Malan patiko "Facebook". 293 00:17:33,060 --> 00:17:36,860 Galiu padaryti / patinka. Dabar mes paleisti į problemą. 294 00:17:36,860 --> 00:17:39,280 Mes turime šiek tiek klaidų, rūšiuoti, kad sako prieigos raktą, 295 00:17:39,280 --> 00:17:41,660 privalėjo pateikti prašymą šiuos išteklius. 296 00:17:41,660 --> 00:17:44,730 Bet jei jūs manote apie tai, kad iš tikrųjų prasminga, nes tai būtų keista, 297 00:17:44,730 --> 00:17:47,830 jei galėtumėte naudotis "Facebook" duomenų bazėje kiekvieną dalį 298 00:17:47,830 --> 00:17:50,170 tiesiog kažkoks paprastą API, tiesa? 299 00:17:50,170 --> 00:17:56,040 Kitaip tariant, matyt, jūsų informacija negali būti atvertas visiems, kurie to nori. 300 00:17:56,040 --> 00:17:58,330 >> Ši klaida yra tiksliai, ką tai reiškia. 301 00:17:58,330 --> 00:18:03,630 Kai kurios API reikalauja, kad tam tikras teises tam, kad susipažinti su savo duomenimis. 302 00:18:03,630 --> 00:18:06,940 Ir net labiau pažengusios API, "Facebook" kaip vienas, 303 00:18:06,940 --> 00:18:09,840 bus reikalaujama, kad tam tikri leidimai, daryti tam tikrus dalykus. 304 00:18:09,840 --> 00:18:12,650 Aš galiu pamatyti šią pagrindinę informaciją apie David Malan. 305 00:18:12,650 --> 00:18:15,950 Matau, kad jis patinas ir, kad jis gyvena JAV, 306 00:18:15,950 --> 00:18:19,270 bet aš negaliu tikrai nieko matyti praeities, kad. 307 00:18:19,270 --> 00:18:23,050 Norėdami išspręsti šią problemą, dabar, "Facebook" šį patogų įrankį 308 00:18:23,050 --> 00:18:27,690 kuris yra grafikas API Explorer, kad idėja yra, galite rūšiuoti 309 00:18:27,690 --> 00:18:31,880 teises sau, remiantis savo sąskaitą 310 00:18:31,880 --> 00:18:35,680 ir tada peržiūrėti dalykų, kad būtent jūsų sąskaita gali peržiūrėti. 311 00:18:35,680 --> 00:18:45,120 Pavyzdžiui, jei aš graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 oi, manau, turi iš naujo patvirtinti savo raktą čia. 313 00:18:53,510 --> 00:18:55,950 Gerai. 314 00:18:55,950 --> 00:19:01,740 Jei aš tai padaryti dar kartą, puikus, dabar aš matau, kad man šį objektą atgal 315 00:19:01,740 --> 00:19:06,300 , kurioje teigiama, kad man patinka baseinas makaronai, kurie iš kategorijos Žaidimai ir žaislai. 316 00:19:06,300 --> 00:19:08,620 Man patinka jūrų vėplius, kurie yra kategorijoje gyvūno. 317 00:19:08,620 --> 00:19:10,180 Tai yra mano tikrasis "Facebook" teig. 318 00:19:10,180 --> 00:19:13,280 Jie rūšies nepatogus. 319 00:19:13,280 --> 00:19:16,090 >> Tačiau matome, šie duomenys yra visi sugrįžo JSON. 320 00:19:16,090 --> 00:19:18,160 Tai gana įskaitomas. 321 00:19:18,160 --> 00:19:20,970 Kitaip tariant, mes turime tokius duomenis planavimo kažkoks masyvo, 322 00:19:20,970 --> 00:19:25,220 ir kiekvienas elementas šiame masyve HashMap, kuris žemėlapiai 323 00:19:25,220 --> 00:19:28,530 kaip pavadinimas ir kaip kategorija. 324 00:19:28,530 --> 00:19:31,240 Kiekvienas kaip turi unikalų ID. 325 00:19:31,240 --> 00:19:34,510 Yra įvairiausių duomenų, kad mes galime gauti įvairių dalykų, 326 00:19:34,510 --> 00:19:37,980 ir jei jus domina naudojant CS50 galutinę projekto "Facebook API 327 00:19:37,980 --> 00:19:40,720 ar ką nors panašaus, kad tai tikrai gana Vykdytinas. 328 00:19:40,720 --> 00:19:44,260 Iš esmės, kaip jums aplink atpažinimo dalykas yra "Facebook" 329 00:19:44,260 --> 00:19:48,030 naudoja sistemą, vadinamą "OAuth", arba atidaryti autentifikavimo, 330 00:19:48,030 --> 00:19:52,870 ir aš nenoriu gauti į jį dabar, nes "OAuth" arba skirtingo tipo 331 00:19:52,870 --> 00:19:56,060 autentiškumo linkęs keisti daug tarp skirtingų API, 332 00:19:56,060 --> 00:19:58,320 , kad galėčiau praleisti daug laiko vyksta per kiekvieną iš jų, 333 00:19:58,320 --> 00:20:01,170 bet jie iš tikrųjų gana savaime suprantama. 334 00:20:01,170 --> 00:20:04,050 >> Jei jūs "Google" "Facebook" API tai lengvai skaitoma. 335 00:20:04,050 --> 00:20:06,670 Yra visos spec. 336 00:20:06,670 --> 00:20:10,210 Pavyzdžiui, tai yra "Facebook API dokumentacija, 337 00:20:10,210 --> 00:20:14,170 ir jūs galite pamatyti, aš ant naudotojo puslapyje, kad galėčiau sužinoti viską apie įvairių rūšių dalykų 338 00:20:14,170 --> 00:20:17,170 , kurie yra prieinami gauti Kalbant apie duomenų 339 00:20:17,170 --> 00:20:21,550 ir taip pat skirtingas teises, kad man reikia, kad būtų pasiekti. 340 00:20:21,550 --> 00:20:25,470 Kaip matėme, mes nereikia prieigos teises, pavadinimą ar lyties, 341 00:20:25,470 --> 00:20:29,380 bet be to mums reikalinga leidimus daugelis dalykų. 342 00:20:29,380 --> 00:20:33,040 Šis puslapis arba, tiksliau, ši svetainė taip pat pasakys jums, kaip gauti 343 00:20:33,040 --> 00:20:35,640 simbolinis, kad būtų galima autentifikuoti save. 344 00:20:35,640 --> 00:20:39,290 Dauguma autentiškumo nustatymo sistemas naudoti tam tikras ženklas rūšiuoti 345 00:20:39,290 --> 00:20:42,880 kur jūs gaunate šią unikalią vertę, kuri yra tikrai ilgas ir atsitiktinių eilutė, 346 00:20:42,880 --> 00:20:46,240 ir tokiu būdu jie gali susieti prašymą, kad jūs darote su jumis. 347 00:20:46,240 --> 00:20:50,560 Kitaip tariant, jie žino, kad jūs nedarote nieko įtartino su savo turimais duomenimis. 348 00:20:50,560 --> 00:20:53,340 Jie žino, ką jūs gaunate. 349 00:20:53,340 --> 00:20:56,180 Jie taip pat žino, kad turite teisę, kad galėtumėte peržiūrėti šią informaciją. 350 00:20:56,180 --> 00:20:59,110 >> Jei atlikote "Facebook app ir jūsų app turi tam tikrų vartotojų, 351 00:20:59,110 --> 00:21:03,380 ir tie vartotojai, kad app pasiekti tam tikras savo profilį, 352 00:21:03,380 --> 00:21:07,790 tada kokia API raktas ar žetonas, kad app yra 353 00:21:07,790 --> 00:21:11,090 galės gauti duomenis Tokiems vartotojams. 354 00:21:11,090 --> 00:21:13,780 Tai gali skambėti sudėtinga, tačiau tai nėra labai blogai, 355 00:21:13,780 --> 00:21:16,810 ir, jei norite naudoti "Facebook" Aš labai rekomenduojame, kad jūs 356 00:21:16,810 --> 00:21:18,990 žaisti aplink su savo API. 357 00:21:18,990 --> 00:21:21,610 Tai labai kietas, ir daug įvairių dalykų, jūs galite padaryti su juo. 358 00:21:21,610 --> 00:21:24,880 Jei vartotojas suteikia jums šias teises jūs netgi galite grįžti į API 359 00:21:24,880 --> 00:21:28,820 ir sako, kad aš noriu, kad iš tikrųjų rašyti šio vartotojo sienos, ar aš noriu, kad jie būtų paskelbti nuotraukos, 360 00:21:28,820 --> 00:21:32,390 ir štai kodėl savo naujienų jums kartais gauti šių erzinančių dalykų 361 00:21:32,390 --> 00:21:37,840 posakis kažkoks keista vietoje, arba kažką panašaus, kad jūsų draugas stebėjo šį video. 362 00:21:37,840 --> 00:21:43,120 Tai yra todėl, kad app buvo suteiktas prieigą prie rašyti to asmens sienos. 363 00:21:43,120 --> 00:21:48,350 Bendra idėja, Facebook API yra gana sudėtinga, bet taip pat labai naudinga. 364 00:21:48,350 --> 00:21:53,220 Tikrai verta patikrinti, jei jūs vis dar ieško galutinio projekto. 365 00:21:53,220 --> 00:21:57,930 >> Kitas API komplektą, kad aš ruošiuosi eiti per CS50 API. 366 00:21:57,930 --> 00:22:00,070 Leiskite man padidinti čia. 367 00:22:00,070 --> 00:22:03,390 CS50 sudėti visą eilę API 368 00:22:03,390 --> 00:22:07,080 , kad galite naudoti, kad galutinė projekto arba tiesiog nieko, kad jūs darote. 369 00:22:07,080 --> 00:22:12,830 Ir jie daugiausia Harvardo susiję, ir jie skiriasi nuo Huds meniu, 370 00:22:12,830 --> 00:22:17,780 pavyzdžiui, šios Harvardo Renginiai API, kuri leis jums pasiekti sąrašą 371 00:22:17,780 --> 00:22:21,290 įvairių renginių, kurie vyksta Harvardo ir kad dalykas rūšiuoti. 372 00:22:21,290 --> 00:22:24,510 Ir todėl mes galime spustelėkite bet kurioje iš šių ir gauti už jį spec, 373 00:22:24,510 --> 00:22:28,090 kurį bus galima rasti kokį nors API, ir idėja yra 374 00:22:28,090 --> 00:22:33,920 leidžia jums žinoti, ką konkrečiai reikalauti iš API ir kaip jos prašyti. 375 00:22:33,920 --> 00:22:37,370 Kitaip tariant, jei norite, kad visi įvykiai, kurie vyksta rytoj 376 00:22:37,370 --> 00:22:42,550 tada aš turiu akivaizdžiai suteikti jai tą datą, kad aš noriu, tam tikru formatu, 377 00:22:42,550 --> 00:22:46,030 ir B, jis bus pasakyti man, ką ji ketina duoti atgal į mane. 378 00:22:46,030 --> 00:22:48,590 Jis sako: aš ruošiuosi grįžti jums šį JSON objektą, 379 00:22:48,590 --> 00:22:50,960 arba, kaip jūs galite pamatyti, yra skirtingi formatai. 380 00:22:50,960 --> 00:22:54,050 >> Taip pat galite grąžinti duomenis į CSV, pvz. 381 00:22:54,050 --> 00:22:57,620 Bet jūs tiksliai žinoti, kaip ketina ieškoti, kai jūs gaunate jį atgal, kad duomenys 382 00:22:57,620 --> 00:23:00,610 todėl galite tikėtis su juo daryti tam tikrus dalykus. 383 00:23:00,610 --> 00:23:07,240 Mes galime slinkite žemyn ir pamatyti, pavyzdžiui, jei norime užklausą API 384 00:23:07,240 --> 00:23:11,500 gauti kalendorių, tada mes galime naudoti šį konkretų URL 385 00:23:11,500 --> 00:23:16,480 ir suteikti jai tam tikrus parametrus, kuriuos ketinate būti duomenys, kad mes norime tiksliai. 386 00:23:16,480 --> 00:23:19,540 Ir taip pat, jei mes norime, kad atgal į tam tikrą formatą duomenų, 387 00:23:19,540 --> 00:23:23,790 tada mes galime paprašyti jį išvesti duomenis iš CSV, 388 00:23:23,790 --> 00:23:27,700 ir tai tik dar vienas parametras, kad mes pereiti į API. 389 00:23:27,700 --> 00:23:29,210 Daug įdomių dalykų ten daryti. 390 00:23:29,210 --> 00:23:32,550 Aš tikrai rekomenduojame patikrinti CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Aš ruošiuosi visų pirma šiek tiek pažvelgti į šio Harvardo Maisto API. 392 00:23:36,000 --> 00:23:39,870 Vienas dalykas, aš iš tikrųjų sukurta tai Harvardo Noms svetainėje, 393 00:23:39,870 --> 00:23:44,930 , kuri naudoja CS50 maisto API gauti Huds meniu dieną. 394 00:23:44,930 --> 00:23:50,400 Ir pratęsimo mokyklos žmonių, Hudson yra valgomasis svetainė Harvarde. 395 00:23:50,400 --> 00:23:55,130 Ką jūs gaunate tai puslapis, kuriame yra visi tą dieną valgio, todėl matome pietūs. 396 00:23:55,130 --> 00:23:58,130 Turime keletą skirtingų kategorijų. Mes turime pupelių ir nesmulkintų grūdų stotis. 397 00:23:58,130 --> 00:24:00,340 Mes turime rudieji ryžiai stotį. 398 00:24:00,340 --> 00:24:03,360 Galime išvysti priešpiečiai, mes turime šiuos kelis maisto produktus. 399 00:24:03,360 --> 00:24:07,030 Jei mes spustelėkite ant jų, tada mes gauname informacijos apie maistingumą. 400 00:24:07,030 --> 00:24:12,240 Jūs matote, tai yra informacija apie maistingumą greipfrutų, tuo atveju, jei buvo įdomu. 401 00:24:12,240 --> 00:24:14,870 Ir tokiu būdu vėlgi, mes ketiname žvilgsnis į nugaros pabaigoje čia šiek tiek 402 00:24:14,870 --> 00:24:18,530 ir pamatyti, kas tiksliai tai daryti, kad gauti šiuos duomenis. 403 00:24:18,530 --> 00:24:21,710 Ir paaiškėja, kad iš tiesų nėra labai sudėtingos. 404 00:24:21,710 --> 00:24:28,720 Šis failas atrodo šiek tiek nepatogus, bet reikia nepamiršti, kad tai tvarkyti visą svetainę, 405 00:24:28,720 --> 00:24:34,130 ir jei aš slinkti žemyn matome, šis pokytis duomenų funkciją. 406 00:24:34,130 --> 00:24:36,630 >> Dabar, tiesiog turi būti aišku, tai yra parašyta CoffeeScript 407 00:24:36,630 --> 00:24:39,570 kuris yra kalba, kad jūs tikriausiai dar nematėte anksčiau. 408 00:24:39,570 --> 00:24:44,810 Bet tai gana įskaitomas, todėl aš vaikščioti per ją, tarsi tai būtų Pseudocode. 409 00:24:44,810 --> 00:24:49,080 Keisti datą yra funkcija, kuri ketina imtis per šį laikotarpį vertės, 410 00:24:49,080 --> 00:24:51,740 ir ji taip pat ketina imtis pirmasis, kurį mes nerūpi kiek. 411 00:24:51,740 --> 00:24:54,110 Bet svarbiausia yra tai, kad šią datą, 412 00:24:54,110 --> 00:25:00,080 ir ši data yra ta diena, kad mes norime paprašyti visų maisto elementų. 413 00:25:00,080 --> 00:25:04,030 Ir tada pamatysite mes turime šiek tiek sintaksė, 414 00:25:04,030 --> 00:25:09,000 , kuri iš esmės yra apdorojant minėtą datą į suprantamu formatu. 415 00:25:09,000 --> 00:25:11,920 Kitaip tariant, API reikalauja tam tikru formatu datą. 416 00:25:11,920 --> 00:25:17,390 Jūs galite ne tik pasakyti Lap 16, 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Tai bus ne žinoti, ką daryti su tuo. Ji nori tikro formato datą. 418 00:25:20,320 --> 00:25:23,230 Viskas, ką mes darome čia suteikia būtent tai formatas, 419 00:25:23,230 --> 00:25:26,520 kuris yra metų vertę ir tada brūkšnelis, mėnesio vertė, 420 00:25:26,520 --> 00:25:29,420 dar vienas brūkšnelis ir datą, vertė. 421 00:25:29,420 --> 00:25:34,910 Ir mes taip pat sako, kad mes norime, kad duomenys būtų produkcija JSON. 422 00:25:34,910 --> 00:25:37,560 >> Dabar mes šį AJAX prašymą, ir, kaip jau minėjau anksčiau, 423 00:25:37,560 --> 00:25:41,680 JQuery yra tai super naudingo AJAX funkciją, viskas, ką jums reikia padaryti, yra nurodyti 424 00:25:41,680 --> 00:25:45,780 keli parametrai žemai čia, ir jis duos jums būtent tai, ko norite. 425 00:25:45,780 --> 00:25:50,490 Mes sakau tai, kad mes norime eiti į URL, tai CS50 Maisto API 426 00:25:50,490 --> 00:25:52,270 , kurią mes gavome iš spec. 427 00:25:52,270 --> 00:25:56,730 Mes sakome, kad mes norime, kad duomenis JSON ir kad 428 00:25:56,730 --> 00:25:59,490 mes ketiname suteikti jam šiuos duomenis, mes sukūrėme taisykles čia. 429 00:25:59,490 --> 00:26:02,670 Tai diena, mes norime, kad maisto produktų. 430 00:26:02,670 --> 00:26:07,790 Ir tada visi mes turime padaryti, tai nustatyti kažkokią sėkmės funkcija, 431 00:26:07,790 --> 00:26:11,980 , kuris iš esmės yra kas atsitinka, kai API grąžina, kad duomenys. 432 00:26:11,980 --> 00:26:15,490 Kitaip tariant, mes supakuoti visų parametrų, kad mes norime, 433 00:26:15,490 --> 00:26:20,530 , kuris šiuo atveju yra diena, kad mes norime, ir tai, kad mes norime jį JSON, 434 00:26:20,530 --> 00:26:23,840 ir mes pasiuntė jį išjungti API, todėl dabar API sako, gerai, 435 00:26:23,840 --> 00:26:26,350 čia yra jūsų duomenys, aš turiu jį atgal už jus. 436 00:26:26,350 --> 00:26:29,930 Mes turime sėkmės funkciją, o tai reiškia tikrą, kad API 437 00:26:29,930 --> 00:26:32,230 sėkmingai grąžina tam tikrus duomenis, ką daryti su juo? 438 00:26:32,230 --> 00:26:35,980 >> Ir paaiškėja, kad visi mes darome, yra tai vadiname atnaujinimas meniu funkcija 439 00:26:35,980 --> 00:26:42,680 su kokia API grįžo, todėl mes galime ieškoti 440 00:26:42,680 --> 00:26:47,970 ir pamatysite, kad viskas, ką mes darome, yra naudojant naujos sintaksės krūva čia 441 00:26:47,970 --> 00:26:52,220 atnaujinti HTML kodą ir įdėkite Šie nauji duomenys. 442 00:26:52,220 --> 00:26:56,580 Kas tai leidžia, mes turime šiuos abiejų pusių rodykles, ir mes galime paspausti, 443 00:26:56,580 --> 00:27:01,060 ir dabar mes ieškome ne kitą dieną duomenimis ir vėl kitą dieną, 444 00:27:01,060 --> 00:27:04,820 ir kiekvieną kartą ji atnaujinti tos dienos vertę ir API užklausoms, 445 00:27:04,820 --> 00:27:07,510 gauti tam tikrus duomenis ir išleisti jį į svetainę. 446 00:27:07,510 --> 00:27:10,590 Vėlgi, jūs galite pamatyti, super, super naudinga. 447 00:27:10,590 --> 00:27:14,410 Ši programa paėmė mane kelias valandas nulaužti kartu, 448 00:27:14,410 --> 00:27:20,140 ir aš turiu šiek tiek daugiau patirties, žinoma, bet savo galutinį projektą CS50 449 00:27:20,140 --> 00:27:22,870 gali atrodyti labai panašus į šį. 450 00:27:22,870 --> 00:27:29,540 >> API yra super galingas suma pastangų, kad jos galėtų imtis. 451 00:27:29,540 --> 00:27:32,800 Paskutinis dalykas, aš ruošiuosi eiti per keli API plačiai. 452 00:27:32,800 --> 00:27:35,480 Aš ne gauti kiek į juos, kiek tai, ką jie daro konkrečiai, 453 00:27:35,480 --> 00:27:38,740 bet aš duosiu jums idėją, kas ten. 454 00:27:38,740 --> 00:27:42,700 2 tikrai naudinga, jei jus domina duomenų analizei ar vizualizacija 455 00:27:42,700 --> 00:27:45,960 ar ko nors panašaus, Freebase ir Vikipedijos. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-matyt, jūs visi žinote, yra nemokama interneto enciklopedija, 457 00:27:49,800 --> 00:27:53,230 ir ji iš tikrųjų turi API, todėl, jei norite, pavyzdžiui, 458 00:27:53,230 --> 00:27:56,250 gauti visus tekstus ir aštuonkojo straipsniai 459 00:27:56,250 --> 00:27:58,030 jūs galite labai lengvai tai padaryti. 460 00:27:58,030 --> 00:28:02,300 Tiesiog pasakyti hey Mokėjimo API, aš norėčiau pateiktais duomenimis, nes tai, 461 00:28:02,300 --> 00:28:07,010 ir aš norėčiau šiuo formatu, ir straipsnis Norėčiau aštuonkojai, 462 00:28:07,010 --> 00:28:09,820 ir labai greitai ji bus duoti jums atgal, kad informacija. 463 00:28:09,820 --> 00:28:12,230 Kad gali būti tikrai naudinga, jei norite, kad kažkoks sklypo 464 00:28:12,230 --> 00:28:16,200 tai geriau Wikipedia arba kažką panašaus, kad žiūrovas. 465 00:28:16,200 --> 00:28:21,350 >> Freebase tarsi panašus, nors tai šiek tiek sunkiau, kiek API. 466 00:28:21,350 --> 00:28:24,390 Freebase yra kaip, kad tai internetinė enciklopedija Wikipedia 467 00:28:24,390 --> 00:28:29,050 kurio sudėtyje yra daug ir daug įvairių duomenų apie įvairių įvairiausiomis temomis, 468 00:28:29,050 --> 00:28:33,150 bet tai saugomi reliacinės duomenų bazės, kuri yra šiek tiek skiriasi nuo "Wikipedia". 469 00:28:33,150 --> 00:28:36,410 Vikipedija turi savo straipsnius ir straipsnius, susijusius su kitų straipsnių, 470 00:28:36,410 --> 00:28:38,860 bet didžiąja dalimi, jei norite duomenis aštuonkojo 471 00:28:38,860 --> 00:28:41,990 jūs einate prie aštuonkojų straipsnyje, gauti, kad duomenis, ir jūs turite teksto krūva 472 00:28:41,990 --> 00:28:43,830 apie aštuonkojai, kad tai puiku. 473 00:28:43,830 --> 00:28:46,870 Freebase dirba šiek tiek daugiau sudėtinga būdu, kad 474 00:28:46,870 --> 00:28:48,930 viskas yra susiję vienas su kitu. 475 00:28:48,930 --> 00:28:52,620 Kitaip tariant, jei mes ieškome aštuonkojo 476 00:28:52,620 --> 00:28:54,940 tada ji turi su juo susijusių kategorijų krūva. 477 00:28:54,940 --> 00:28:57,920 >> Pavyzdžiui, gyvūnų, ji gyvena po vandeniu, 478 00:28:57,920 --> 00:28:59,710 jis turi tam tikrą kūno temperatūrą. 479 00:28:59,710 --> 00:29:01,210 Nežinau. 480 00:29:01,210 --> 00:29:04,230 Ir visi iš šių kategorijų yra nuorodos į kitų vietų, kur galite eiti 481 00:29:04,230 --> 00:29:06,640 pamatyti dalykus su tos pačios kategorijos. 482 00:29:06,640 --> 00:29:13,450 Kitaip tariant, aštuonkojai duomenų rinkinys yra nuoroda į visų gyvūnų duomenų rinkinio, 483 00:29:13,450 --> 00:29:16,790 ir kad būtų leiskite judėti duomenų bazėje tikrai greitai. 484 00:29:16,790 --> 00:29:21,740 Tai gali būti labai naudinga, jei jūs darote kažką panašaus į palyginimų. 485 00:29:21,740 --> 00:29:24,490 Kitaip tariant, atsižvelgiant į tam tikras dalykas, jūs norite pamatyti 486 00:29:24,490 --> 00:29:27,890 , ką dar ji susiję ir pamatyti, ką dar ji nėra susijusi su. 487 00:29:27,890 --> 00:29:30,700 Kad dalykas rūšiuoti. Tai gali būti naudinga įvairiais būdais. 488 00:29:30,700 --> 00:29:34,250 Jei jūs ieškote daugiau iššūkis ir, kad būtų galima padaryti kai kuriuos sudėtingesnius dalykus 489 00:29:34,250 --> 00:29:38,740 Manyčiau atsižvelgiant tuo Freebase API išvaizdą. 490 00:29:38,740 --> 00:29:44,670 Bet iš esmės, Vikipedija yra labai paprasta vieta eiti kiek gauti informaciją. 491 00:29:44,670 --> 00:29:48,340 Kita vieta, kad aš pažvelgti į Last.fm, ir aš iš tikrųjų ketiname eiti į svetainę 492 00:29:48,340 --> 00:29:53,800 jei kai kurie žmonės nėra susipažinę, bet Last.fm yra iš esmės muzika 493 00:29:53,800 --> 00:29:57,220 skonis ir rekomendacijos svetainės. 494 00:29:57,220 --> 00:29:59,000 Jūs galite padaryti savo sąskaitą. 495 00:29:59,000 --> 00:30:04,250 Galite pradėti įkelti muziką iš savo muzikos grotuvo 496 00:30:04,250 --> 00:30:08,020 į svetainę, ir iš esmės ji bus pradėti duoti jums muzikos rekomendacijas 497 00:30:08,020 --> 00:30:10,030 nuo to, ką klausytis. 498 00:30:10,030 --> 00:30:14,270 >> Pavyzdžiui, jei jūs einate į savo profilio puslapį-tai mano 499 00:30:14,270 --> 00:30:18,180 matote, neseniai klausėsi dainos sąrašą. 500 00:30:18,180 --> 00:30:22,550 Jūs galite pamatyti bendrą mėgstamų menininkų, visi, kad dalykas rūšiuoti, 501 00:30:22,550 --> 00:30:25,280 ir vėl, yra didelis API už Last.fm 502 00:30:25,280 --> 00:30:29,360  ir jūs galite naudoti ją padaryti daug ir daug tikrai įdomių dalykų. 503 00:30:29,360 --> 00:30:38,870 Pavyzdžiui, aš eisiu į draugo puslapį, kuris turi šį Last.fm Įrankiai svetainę. 504 00:30:38,870 --> 00:30:42,380 Iš tikrųjų tai yra kita platforma, kuri yra pastatyta ant Last.fm API, 505 00:30:42,380 --> 00:30:45,420 ir ji gana įdomių dalykų. 506 00:30:45,420 --> 00:30:50,260 Jei aš prisijungti su savo vartotojo vardą, pavyzdžiui, 507 00:30:50,260 --> 00:30:53,110 Galiu paprašyti jį sukurti Tag Cloud, pavyzdžiui, 508 00:30:53,110 --> 00:30:56,480 ir tai, ką ketina daryti, duok man atgal įvaizdį 509 00:30:56,480 --> 00:30:59,850 visi skirtingi žanrai ir kad dalykas rūšiuoti, kad man patinka klausytis. 510 00:30:59,850 --> 00:31:01,410 Kaip jis tai daro? 511 00:31:01,410 --> 00:31:05,670 Labai iš esmės tai sako Last.fm API čia šį klientą. 512 00:31:05,670 --> 00:31:10,710 Norėčiau sužinoti kiekvienoje dainoje žanrą, kad jie kada nors klausėsi, 513 00:31:10,710 --> 00:31:15,130 ir jūs galite tai padaryti gana paprasta AJAX skambutį į Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Gausite didelį sąrašą, ir tada, žinoma, kai kurių kitų dalykų daroma 515 00:31:18,990 --> 00:31:22,280 paversti jį Žodžių debesis, bet jūs galite pamatyti bendras 516 00:31:22,280 --> 00:31:25,850 tai labai lengva pasiekti ir labai paprasta naudoti. 517 00:31:25,850 --> 00:31:30,750 Tikrai malonu daug dalykų. 518 00:31:30,750 --> 00:31:35,940 >> Manau, kad apie viską, ką pasakys, bendras. 519 00:31:35,940 --> 00:31:39,040 Ir paskutinis dalykas, aš paminėti apie API apskritai yra tai, kad 520 00:31:39,040 --> 00:31:41,840 jums kartais paleisti į vadinamąjį norma apriboti, 521 00:31:41,840 --> 00:31:44,940 ir idėja yra greitį ribojantis nenorite piktnaudžiauti API. 522 00:31:44,940 --> 00:31:48,130 Kitaip tariant, tai tikrai malonu, kad iš šių svetainių turi daug API 523 00:31:48,130 --> 00:31:51,070 , kad galite eiti ir naudotis nemokamai. 524 00:31:51,070 --> 00:31:54,460 Tačiau, jei jūs darote milijonus ar milijardus užklausų per dieną, 525 00:31:54,460 --> 00:31:57,610 Pavyzdžiui, jei esate įstrigo begalinis ciklas, kad manimi galo užklausų 526 00:31:57,610 --> 00:32:00,680 kai API rūšiuoti ir gauti milžinišką kiekį duomenų, 527 00:32:00,680 --> 00:32:04,570 Akivaizdu, kad tai nėra gerai, tai kas API daug padaryti, kad šis rodiklis būtų apriboti funkcija 528 00:32:04,570 --> 00:32:09,970 , kad sako, kad galite padaryti tik 1000 užklausų per dieną IP adresą arba kažką panašaus, kad. 529 00:32:09,970 --> 00:32:12,540 Ir jei jūs darote daug bandymų ir kad dalykas rūšiuoti, 530 00:32:12,540 --> 00:32:14,890 jums kartais paleisti į tą, ir staiga ji bus uždaryta jums ne 531 00:32:14,890 --> 00:32:18,280 ir pasakyti "ne, aš ne duoti jums daugiau duomenų. 532 00:32:18,280 --> 00:32:20,000 >> Ką jūs norite daryti yra žaisti pagal taisykles. 533 00:32:20,000 --> 00:32:22,950 Jūs norite įsitikinkite, kad jums skaityti API Spec atidžiai. 534 00:32:22,950 --> 00:32:26,330 Jei ji turi tam tikras taisykles, prie jos, kaip jūs galite padaryti tik X užklausų per dieną 535 00:32:26,330 --> 00:32:30,000 ar jums gali prieiti tik prie duomenų bazės dalį tam tikrą skaičių kartų 536 00:32:30,000 --> 00:32:32,900 arba kažką panašaus, kad norite įsitikinkite, kad jums laikytis, kad. 537 00:32:32,900 --> 00:32:38,360 Tol, kol, kaip tu žaidi per šių taisyklių, jums tikriausiai tikrai gerai praleisti laiką, naudojant API. 538 00:32:38,360 --> 00:32:42,030 Jūsų bendrą išsinešimui API tikrai, tikrai naudinga. 539 00:32:42,030 --> 00:32:45,610 >> API beveik bet kokio didelio interneto paslaugų ten. 540 00:32:45,610 --> 00:32:50,700 Gana daug, bet "Google" įrankių rinkinį, "Google Maps", "Google Earth" dalis, 541 00:32:50,700 --> 00:32:54,390 "Gmail", "Google Calendar", visus tuos dalykus API. 542 00:32:54,390 --> 00:32:58,280 Jūs galite naudoti juos ir gauti duomenis iš serverio ir siųsti duomenis į serverį. 543 00:32:58,280 --> 00:33:00,870 Kitaip tariant, jei norite, kad kalendoriaus app kad galite atnaujinti 544 00:33:00,870 --> 00:33:04,190 kieno nors "Google" kalendoriaus, yra API, kad. 545 00:33:04,190 --> 00:33:07,810 Jei norite padaryti kažką, kad pasakyti, kur 546 00:33:07,810 --> 00:33:12,530 vieta yra tam tikro adreso, galite naudoti "Google Maps API, kad. 547 00:33:12,530 --> 00:33:15,860 API fantastiškai naudinga, ir jie visur. 548 00:33:15,860 --> 00:33:18,700 Jei jus domina kažkoks idėjos, 549 00:33:18,700 --> 00:33:22,170 ten tikriausiai susiję API, kad galite naudoti, norėdami gauti daug duomenų 550 00:33:22,170 --> 00:33:25,060 labai greitai ir labai paprastai. 551 00:33:25,060 --> 00:33:28,140 >> Jei Jūs vis dar ieškote už projektą, arba jei jūs tiesiog norite pažaisti 552 00:33:28,140 --> 00:33:31,820 apskritai su kažkuo, API yra tikrai verta daryti. 553 00:33:31,820 --> 00:33:37,200 Ačiū, ir aš mielai atsakysime į visus klausimus, kurie jus vaikinai gali turėti. 554 00:33:37,200 --> 00:33:44,900 Gerai, ačiū. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]