1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminar] [programmeerijatele Sissejuhatus APIs] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Harvardi Ülikool] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [See on CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Tere, kõigile, ma olen Billy, ja täna ma lähen rääkima rakendusliideste, 5 00:00:12,100 --> 00:00:15,220 või rakenduse programmeerimise liidesed, 6 00:00:15,220 --> 00:00:20,040 eriti seoses CS50 lõplik projektid ja sellised asjad. 7 00:00:20,040 --> 00:00:22,490 Üldiselt mis on API? 8 00:00:22,490 --> 00:00:25,530 Väga üldiselt, et see on omamoodi keskel mees, mis võimaldab 2 tk 9 00:00:25,530 --> 00:00:28,610 tarkvara, et üksteisega suhelda. 10 00:00:28,610 --> 00:00:32,530 See on omamoodi väga lai mõiste ja see ei ole oluline, mida me vaatame. 11 00:00:32,530 --> 00:00:35,450 Mida me tõesti tahame on mingi kasulik kesktee 12 00:00:35,450 --> 00:00:40,570 suhelda mingisugune andmebaas kusagil. 13 00:00:40,570 --> 00:00:43,310 >> Siin on skeem, ja põhimõtteliselt idee on see, et 14 00:00:43,310 --> 00:00:46,790 oleme taotlus, ja me tahame saada andmeid andmebaasi, 15 00:00:46,790 --> 00:00:49,570 kuid me ei taha päringu andmebaasi otse. 16 00:00:49,570 --> 00:00:52,710 Selle asemel me tahame minna läbi selline keskel mees, API. 17 00:00:52,710 --> 00:00:55,440 Idee, mis on numbrid 2 ja 3 graafiku peal 18 00:00:55,440 --> 00:00:57,750 on nii saab olema väga keeruline ja segane. 19 00:00:57,750 --> 00:00:59,960 Teisisõnu, kui API päringu andmebaasi, 20 00:00:59,960 --> 00:01:03,300 see on ilmselt kavatse olla kasutades SQL tabelid ja kõik seda sorti asju, 21 00:01:03,300 --> 00:01:05,489 ja me oleme õppinud natuke seda CS50, kuid üldiselt 22 00:01:05,489 --> 00:01:07,590 olete märganud, et see on natuke valu. 23 00:01:07,590 --> 00:01:10,590 Läheb väga keeruline ja segane, eriti kui sa üritad 24 00:01:10,590 --> 00:01:12,530 keerukad päringud ja sellised asjad. 25 00:01:12,530 --> 00:01:15,960 >> Mida me tõesti tahame on mingi kasulik ja lihtne viis 26 00:01:15,960 --> 00:01:19,780 saada, et andmed, ja see on idee taga numbrid 1 ja 4 edetabelisse. 27 00:01:19,780 --> 00:01:23,600 Teisisõnu, me tahame tõesti lihtne viis öelda API, mida saada meile 28 00:01:23,600 --> 00:01:27,760 ja tõesti lihtne viis saada, et andmed tagasi. 29 00:01:27,760 --> 00:01:33,020 On üks põhiline viis, et need andmed on tavaliselt saadetud ja vastuvõetud 30 00:01:33,020 --> 00:01:36,490 mis on JSON või JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 See võib varieeruda natuke nii palju kui kuidas saadate taotluse API. 32 00:01:40,370 --> 00:01:43,210 Teisisõnu, kui soovite mõned teatud andmed, 33 00:01:43,210 --> 00:01:46,670 kuidas sa ütled API saada, et andmed võivad erineda natuke. 34 00:01:46,670 --> 00:01:49,210 Tavaliselt kaasneb sellega tegemist mingi võrgustiku taotlusel. 35 00:01:49,210 --> 00:01:53,130 Teisisõnu tutvumise mingi link, et läheb ütle API 36 00:01:53,130 --> 00:01:56,190 täpselt, mida sa tahad, aga andmed on peaaegu alati tagasi saata, 37 00:01:56,190 --> 00:01:59,530 teisisõnu, numbriga 4 JSON. 38 00:01:59,530 --> 00:02:01,030 >> Mis on JSON täpselt? 39 00:02:01,030 --> 00:02:03,030 Nagu ma ütlesin, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 See on põhimõtteliselt universaalne standard edastamise ja vastuvõtmise andmed. 41 00:02:07,090 --> 00:02:11,410 Idee on selles, et sul on need 3 liiki asju. 42 00:02:11,410 --> 00:02:13,540 Sul on massiivid, hashmaps ja primitiivid. 43 00:02:13,540 --> 00:02:16,580 Massiivid ja hashmaps olete tutvunud natuke sisse CS50, 44 00:02:16,580 --> 00:02:19,870 aga sa oled omamoodi saanud väga otseses mõttes millised need on. 45 00:02:19,870 --> 00:02:22,780 Teisisõnu, massiivid sa tead, et nad tippige seotud, 46 00:02:22,780 --> 00:02:26,560 nii et teil on ainult üks omamoodi tüüp, mis läheb kogu massiiv. 47 00:02:26,560 --> 00:02:29,310 JSON on palju leebem koos, et selline asi. 48 00:02:29,310 --> 00:02:33,590 Põhimõtteliselt idee on teil ehitada see objekt, 49 00:02:33,590 --> 00:02:36,270 mis võib koosneda mõni neist 3 asja 50 00:02:36,270 --> 00:02:39,470 ja võib olla koostatud mitu omadega ja need võivad olla pesastatud. 51 00:02:39,470 --> 00:02:42,110 >> Siin on omamoodi näide JSON, 52 00:02:42,110 --> 00:02:47,910 mis on need looksulgudega siin esindada oma HashMap, 53 00:02:47,910 --> 00:02:51,400 ja HashMap on põhimõtteliselt teisendamisprotsessi mingi võti 54 00:02:51,400 --> 00:02:53,340 et mingi väärtus. 55 00:02:53,340 --> 00:02:56,440 Näete siin, et meil on omadused võti, 56 00:02:56,440 --> 00:02:59,600 ja mis on kaardistada peale massiiv, mis on kogu selle asja. 57 00:02:59,600 --> 00:03:04,120 Me näeme veel ühte HashMap, mis on selle võtme isAwesome, 58 00:03:04,120 --> 00:03:07,370 mis kaardid primitiivne väärtus tõsi, teisisõnu, tõeväärtus. 59 00:03:07,370 --> 00:03:09,420 Primitiivid võib olla stringid. Nad võivad olla täisarvud. 60 00:03:09,420 --> 00:03:11,960 Nad võivad olla bools, midagi sellist. 61 00:03:11,960 --> 00:03:18,410 Ja näed sisuga massiivi omaduste punkte on 2 stringid see, 62 00:03:18,410 --> 00:03:20,050 ise samasugune ja imeline. 63 00:03:20,050 --> 00:03:27,410 Need on 2 omadusi JSON, ja me näeme, et JSON on fantastiline. 64 00:03:27,410 --> 00:03:30,060 Et vaadata, et veidi lähemalt ma lähen ehitada 65 00:03:30,060 --> 00:03:32,870 keerulisem näide JSON siin. 66 00:03:32,870 --> 00:03:37,000 >> Alustame massiiv, näiteks lihtsalt tühi massiiv. 67 00:03:37,000 --> 00:03:39,180 Aga see on omamoodi igav, et me ei kavatse täita seda natuke, 68 00:03:39,180 --> 00:03:43,420 ja nagu ma ütlesin, massiivid JSON on tüüp seotud, 69 00:03:43,420 --> 00:03:46,400 nii et me võiks ka stringi siin, mis on hi, 70 00:03:46,400 --> 00:03:49,330 ja see on juba teine ​​element, mis massiivi. 71 00:03:49,330 --> 00:03:53,450 Ja samuti me võiksime lisada hashmapping siin, mis läheb on vähe kaardistamisel. 72 00:03:53,450 --> 00:04:00,470 See saab olema teisendamisprotsessi nime string Billy. 73 00:04:00,470 --> 00:04:04,590 Meil on teisendamisprotsessi nime Billy, ja meil kaardistamine 74 00:04:04,590 --> 00:04:10,860 lemmik värv sinine. 75 00:04:10,860 --> 00:04:12,700 See on põhimõtteliselt hea näide JSON. 76 00:04:12,700 --> 00:04:18,160 See liik satub-Ups, vaja koma seal-kõik erinevad osad. 77 00:04:18,160 --> 00:04:21,140 Jällegi, see ei kirjuta kindlasti üldse, nii et sul võib olla mis tahes liiki 78 00:04:21,140 --> 00:04:24,710 sees midagi tahad, ja mõte on see enese sarnaseks. 79 00:04:24,710 --> 00:04:28,830 Teisisõnu, see siin on JSON objekti, nagu on kogu see asi, 80 00:04:28,830 --> 00:04:33,200 kui on lihtsalt selles, et sul võib olla primitiivne olema objekt, 81 00:04:33,200 --> 00:04:35,680 massiiv olla eseme või HashMap olema objekt. 82 00:04:35,680 --> 00:04:40,270 >> Kui saad mingi vaata, JSON on tõesti väga kasulik, et see on nii mitmekülgne. 83 00:04:40,270 --> 00:04:45,860 Sul võib olla võimalik andmeid, mida võib ette kujutada salvestatud JSON. 84 00:04:45,860 --> 00:04:47,900 See teeb ta tõesti kena keelt kasutada koos APIs 85 00:04:47,900 --> 00:04:50,770 sest päris palju tähendab, et ükskõik milliseid andmeid, mida soovite 86 00:04:50,770 --> 00:04:54,270 seal saab olema mingi võimalus see tagasi saada JSON. 87 00:04:54,270 --> 00:04:58,600 Mõned omadused, mis muudavad JSON eriti hea selline asi. 88 00:04:58,600 --> 00:05:02,270 Nagu näete, võrreldes palju asju, et olete töötanud ka CS50 89 00:05:02,270 --> 00:05:06,040 see on suhteliselt väga lihtne lugeda ja ka väga lihtne kirjutada. 90 00:05:06,040 --> 00:05:09,700 Võite taane see välja, kui soovite, nagu ma tegin, et näiteks 91 00:05:09,700 --> 00:05:12,990 mis annab teile kena, ilus versioon, et sa näed tõesti hästi. 92 00:05:12,990 --> 00:05:17,150 Aga lisaks sellele on ka lihtne lugeda ja kirjutada arvuti. 93 00:05:17,150 --> 00:05:19,870 Teisisõnu, see on lihtne sõeluda ja lihtne kodeerida, 94 00:05:19,870 --> 00:05:23,820 mis tähendab, et see on päris kiire niipalju kui andmete lugemiseks on mures, 95 00:05:23,820 --> 00:05:26,460 ja JSON saab tekitada tõesti kiiresti. 96 00:05:26,460 --> 00:05:30,300 >> Samuti on väga lihtne juurdepääs erinevates osades JSON ja sellised asjad. 97 00:05:30,300 --> 00:05:33,320 See on tore, ja lisaks sellele, et see on ise samasugune, 98 00:05:33,320 --> 00:05:36,090 teisisõnu, et sul võib olla JSON jooksul JSON jooksul JSON 99 00:05:36,090 --> 00:05:40,040 on tõesti kena andmete salvestamiseks. 100 00:05:40,040 --> 00:05:45,490 Teine osa, mis on üldiselt väga kasulik koostööst APIs on jQuery. 101 00:05:45,490 --> 00:05:49,290 Sa oled õppinud natuke JavaScript, mis on kena viis 102 00:05:49,290 --> 00:05:53,710 manipuleerida HTML ja CSS jooksul veebilehel. 103 00:05:53,710 --> 00:05:57,190 Kuid see ei saa selline olla valu kood lihtsas JavaScript, 104 00:05:57,190 --> 00:05:59,810 suuresti sellepärast JavaScript on tõesti verbose keeles. 105 00:05:59,810 --> 00:06:03,020 Sa pead õppima palju süntaks, ja lihtsalt teha väga lihtsad asjad 106 00:06:03,020 --> 00:06:07,590 see võtab palju koodi, nii jQuery on raamatukogu JavaScript. 107 00:06:07,590 --> 00:06:09,800 Teisisõnu, see on JavaScript-fail, mida saab laadida 108 00:06:09,800 --> 00:06:12,730 ja siis kasuta jQuery ülesandeid teha teatud asju. 109 00:06:12,730 --> 00:06:15,670 Ja jQuery põhimõtteliselt muudab teie elu palju lihtsamaks. 110 00:06:15,670 --> 00:06:20,390 See lihtsustab mida võtaks sadu ridu JavaScript alla paar rida jQuery. 111 00:06:20,390 --> 00:06:24,430 >> See on eriti kasulik, kui te kasutate API-sest üldiselt 112 00:06:24,430 --> 00:06:27,600 kuidas teil tutvumise APIs on tehes AJAX taotlusi, 113 00:06:27,600 --> 00:06:30,130 ja ma usun, David on mainitud loengu, et AJAX taotlusi 114 00:06:30,130 --> 00:06:33,120 Üldiselt, kui sa üritad võrgu taotluse mingi server 115 00:06:33,120 --> 00:06:37,760 ja saada tagasi mingi info ja ajakohastamine leht silmapilkselt. 116 00:06:37,760 --> 00:06:41,840 Arvestades lihtsas JavaScript et võtaks hull numbrid read 117 00:06:41,840 --> 00:06:44,620 kinnitada kõik päised ja teha kõik, et omamoodi värk, 118 00:06:44,620 --> 00:06:46,810 jQuery on tõesti lihtne funktsioon nimega AJAX, 119 00:06:46,810 --> 00:06:51,760 ja kõik mida sa pead tegema AJAX on anda parameetreid, et soovite anda API 120 00:06:51,760 --> 00:06:56,830 asukoht API ja täiendavaid omamoodi võimalusi, mida soovite konfigureerida. 121 00:06:56,830 --> 00:07:02,480 See on tõesti väga kena ja väga kasulik selline asi. 122 00:07:02,480 --> 00:07:06,970 See on kõik, mida me peame hakkama saada oma käed määrdunud rakendusliideste. 123 00:07:06,970 --> 00:07:10,220 >> Ma lähen avab mõned näited ja uurida nende erinevaid omadusi 124 00:07:10,220 --> 00:07:13,150 ja miks on need kasulikud erinevaid asju. 125 00:07:13,150 --> 00:07:15,570 Esimene asi, mida ma tegelikult näitan teile on midagi, mida ma töötan 126 00:07:15,570 --> 00:07:18,310 minu teadus lab, mis on Ngram Viewer 127 00:07:18,310 --> 00:07:23,270 ja põhimõtteliselt idee Ngram Viewer on saate otsida mingi sõna 128 00:07:23,270 --> 00:07:28,840 või fraas ja vaata, kui sageli see ilmus teatud hulk teksti ajas. 129 00:07:28,840 --> 00:07:33,160 See näide on siin see andmekogum lapsi 130 00:07:33,160 --> 00:07:36,480 et on sündinud New Yorgis vahel 1920 ja 2000. 131 00:07:36,480 --> 00:07:40,090 Me ei otsi, näiteks nime Jennifer, 132 00:07:40,090 --> 00:07:44,400 ja me näeme, et enne 1960 see tõesti ei kasutatud kõik, et palju, 133 00:07:44,400 --> 00:07:48,900 ja siis kui me sattuda järgnevatel aastatel see on muutumas üha enam kasutatud. 134 00:07:48,900 --> 00:07:53,680 Saame ka teha võrdlusi, nii et kui me võrdleme Jennifer et näiteks Thomas, 135 00:07:53,680 --> 00:07:56,520 näeme Thomas on olnud üsna levinud läbi ajaloo 136 00:07:56,520 --> 00:07:58,780 arvestades, et Jennifer on uuem nimi. 137 00:07:58,780 --> 00:08:00,590 Me saame teha, et selline asi. 138 00:08:00,590 --> 00:08:02,460 >> Kuidas see rakendus toimib? 139 00:08:02,460 --> 00:08:06,030 Põhimõtteliselt, see toimib läbi API. 140 00:08:06,030 --> 00:08:08,660 Teisisõnu, meil on teatud parameetrid siin. 141 00:08:08,660 --> 00:08:11,360 Meil on parameetrid, mida me tegelikult otsivad, 142 00:08:11,360 --> 00:08:13,720 mis on nende nimed, ja siis on meil mõned muud omadused, 143 00:08:13,720 --> 00:08:16,570 nagu Y-telje ja x-telje suhtes. 144 00:08:16,570 --> 00:08:18,440 Näete meil mõned erinevad võimalused niipalju kui 145 00:08:18,440 --> 00:08:20,860 ajaline lahutus kasutada ja sellised asjad. 146 00:08:20,860 --> 00:08:26,700 Meil on neid võimalusi nii palju kui milliseid andmeid me tegelikult tahame andmebaasist, 147 00:08:26,700 --> 00:08:29,400 ja me tahame saada, et andmed tagasi mõned kasulikud viisil. 148 00:08:29,400 --> 00:08:34,020 Tavaliselt, kui me olime päringute andmebaas otse oleks omamoodi olla valu tegema 149 00:08:34,020 --> 00:08:38,970 sest arvatavasti see andmeid lapse nimed elab mõnes andmebaasis kuskil, 150 00:08:38,970 --> 00:08:42,789 ja see oleks tõesti keeruline on teha päringuid käsitsi 151 00:08:42,789 --> 00:08:45,830 ja otsustada täpselt, milliseid andmeid taastada. 152 00:08:45,830 --> 00:08:49,300 Teisisõnu, me ainult hoolid Jennifer ja Thomas sel juhul, 153 00:08:49,300 --> 00:08:53,410 ja me ainult hoolid teataval teljel ja kõik seda sorti asju. 154 00:08:53,410 --> 00:08:55,720 >> Kuidas me saame selle ümber? 155 00:08:55,720 --> 00:09:01,200 Et kaevama selle API veidi rohkem ma näitan sulle veel üks näide selle platvormi 156 00:09:01,200 --> 00:09:04,490 mis kasutab veidi teistsugust andmekogum. 157 00:09:04,490 --> 00:09:09,950 See andmekogum, selle asemel, et lapsele nime, on tegelikult lihtsalt kogu 158 00:09:09,950 --> 00:09:12,460 trükiste andmebaas Open Library, 159 00:09:12,460 --> 00:09:18,410 mis on hiiglaslik allikas avaldatud tekste kogu viimase 100 või nii aastat. 160 00:09:18,410 --> 00:09:23,540 Idee on meil see compository miljoneid ja miljoneid teksti, 161 00:09:23,540 --> 00:09:27,420 mida saame nüüd otsida erinevaid sõnu ja väljendeid sisse 162 00:09:27,420 --> 00:09:30,840 Siin on näide, mis varieerub veidi teisiti kui eelmises näites 163 00:09:30,840 --> 00:09:33,350 Ma näitasin teile, mis on meil neid 3 otsingupäringuid 164 00:09:33,350 --> 00:09:36,290 sõda, sõda, ja prantsuse sõna sõda, mis on guerre. 165 00:09:36,290 --> 00:09:40,380 Ja me otsime jooksul 3 erineva osa kogu andmebaasi. 166 00:09:40,380 --> 00:09:45,080 Teisisõnu, see esimene päring me ainult otsida USA, 167 00:09:45,080 --> 00:09:51,150 aastal teine ​​ainult Ühendkuningriigis ja kolmas ainult avaldatud tööde Prantsusmaa. 168 00:09:51,150 --> 00:09:53,120 Me näeme mõningaid huvitavaid mustreid tekkima. 169 00:09:53,120 --> 00:09:58,180 Näiteks näeme õige siinkandis mis- 170 00:09:58,180 --> 00:10:02,410 oih, ma messed up telje natuke, aga näete õigus selles vahemikus siin 171 00:10:02,410 --> 00:10:05,730 umbes kodusõda seal on suur ora ameerika väljaanne 172 00:10:05,730 --> 00:10:08,340 kuid mitte nii suur piigid teised kaks, ja see on ilmselt seetõttu, 173 00:10:08,340 --> 00:10:10,880 Ameerika kodusõda toimus sel hetkel. 174 00:10:10,880 --> 00:10:13,890 >> Me näeme mõned lahedad asjad seal, 175 00:10:13,890 --> 00:10:17,070 kuid mida me tegelikult hoolivad on, kuidas me saime selle info. 176 00:10:17,070 --> 00:10:21,320 Ma viin teid kulisside taga see app natuke. 177 00:10:21,320 --> 00:10:24,540 Kena trikk on see, kui te töötate saidil ja nagu tahaks teada 178 00:10:24,540 --> 00:10:27,430 mis toimub kulisside taga, saate avada arendaja tööriistu. 179 00:10:27,430 --> 00:10:30,200 Ma lähen kasutate Chrome'i arendaja tööriistad ja saada nendele 180 00:10:30,200 --> 00:10:35,160 saate teha kontrolli, nihe, J, ja mis viib teid JavaScripti konsool. 181 00:10:35,160 --> 00:10:37,420 On mõned kaardid siit. 182 00:10:37,420 --> 00:10:39,680 Nad võivad kõik olla päris kasulik mitmesugustes olukordades, kuid ma hoolin võrgu 183 00:10:39,680 --> 00:10:44,150 tab praegu, ja tegelikult mul värskendada saada, et töö. 184 00:10:44,150 --> 00:10:50,180 Oh, vabandust. 185 00:10:50,180 --> 00:10:52,320 See meeldib anda juhuslik näide. 186 00:10:52,320 --> 00:10:54,700 Okei, me kasutame seda näiteks selle asemel siis. 187 00:10:54,700 --> 00:11:01,330 >> Idee on seal on see API siin, 188 00:11:01,330 --> 00:11:05,330 ja te näete täpselt, mida API on tagasi. 189 00:11:05,330 --> 00:11:10,220 See on see, mida taotluse saada tagasi API saatnud seda taotlust. 190 00:11:10,220 --> 00:11:13,680 Lubage mul suumida natuke, 191 00:11:13,680 --> 00:11:18,340 ja me saame põhimõtteliselt näha, et see on lihtsalt rida põhiväärtus paari JSON. 192 00:11:18,340 --> 00:11:23,220 Teisisõnu, meil on see HashMap siin, mis on kaardistada väärtusi. 193 00:11:23,220 --> 00:11:26,440 Teisisõnu, see on kaardistada aastat väärtused. 194 00:11:26,440 --> 00:11:32,600 Aastal 1765 iganes sõna me esialgu otsitakse kasutatakse 90 korda 195 00:11:32,600 --> 00:11:35,810 välja 1 miljon, siis me saada tagasi seda tulemust. 196 00:11:35,810 --> 00:11:40,280 See pole just JSON kuna meil on see väike tulemus päise siin, 197 00:11:40,280 --> 00:11:45,630 aga teate, et kogu see objekt siin on lihtsalt väga suur JSON kämp. 198 00:11:45,630 --> 00:11:51,070 Meil on hulgaliselt siin, mis sisaldab kogu see element, 199 00:11:51,070 --> 00:11:55,590 ja te näete, et kogu element lõpeb seal, ja siis on meil veel üks suur element 200 00:11:55,590 --> 00:11:59,430 mis läheb täiesti alla lõppu ja mis lõpeb siin. 201 00:11:59,430 --> 00:12:02,200 Meil on tõesti suur massiiv 2 objekti selles, 202 00:12:02,200 --> 00:12:04,630 ja kõik need esemed on HashMap. 203 00:12:04,630 --> 00:12:07,340 Näete iga nende hashmaps meil kaardistamine 204 00:12:07,340 --> 00:12:12,700 Käesoleva indeksi väärtuseks 0 ja selle väärtuseks teise HashMap, 205 00:12:12,700 --> 00:12:18,360 mis omakorda on kaardistada X telje väärtused Y telje väärtused. 206 00:12:18,360 --> 00:12:20,970 >> Näete JSON muutub natuke keeruline, kuid üldiselt 207 00:12:20,970 --> 00:12:24,190 see on tegelikult väga kasulik, ja see on väga lihtne juurdepääs võrreldes 208 00:12:24,190 --> 00:12:27,390 teiste erinevate märke. 209 00:12:27,390 --> 00:12:30,550 Niipalju kui see, mida me tegelikult andmete saatmist API saada, 210 00:12:30,550 --> 00:12:34,690 Ma lähen minema tagasi end natuke siin. 211 00:12:34,690 --> 00:12:39,850 See on suur JavaScripti fail, mis töötleb kõiki koostoimeid veebirakendus, 212 00:12:39,850 --> 00:12:44,810 ja nii me ei hooli enamus sellest, kuid me ei hooli osa sellest. 213 00:12:44,810 --> 00:12:47,410 Näiteks me hoolime selles buildQuery funktsioon, 214 00:12:47,410 --> 00:12:50,670 ja idee see funktsioon on põhiliselt see vaatab ringi lehel 215 00:12:50,670 --> 00:12:53,750 figuring mida kasutaja soovib päringuid, teisisõnu, 216 00:12:53,750 --> 00:12:57,090 kontrollides need kastid, kuhu nad sisendkäibemaksu oma otsingu tingimusi, 217 00:12:57,090 --> 00:13:01,380 kontrollimiseks erinevad Y-ja X-telje väärtused, et nad on valitud ja kõik sellised asjad, 218 00:13:01,380 --> 00:13:06,650 ja see läheb sülitama selle päringu väärtus, mis ma saan siis ära saatma, et API. 219 00:13:06,650 --> 00:13:09,180 >> See näeb keeruline, ja see on päris keeruline 220 00:13:09,180 --> 00:13:18,090 aga mida ma teen, tegelikult, ma olen juba seda teed, mis on vana- 221 00:13:18,090 --> 00:13:21,640 on see, et ma lähen, et saada konsooli välja trükkida täpselt, et päring väärtus 222 00:13:21,640 --> 00:13:28,110 et ta on saatnud ära API. 223 00:13:28,110 --> 00:13:30,870 See on tegelikult siinsamas. Vabandust, see väljundid palju asju. 224 00:13:30,870 --> 00:13:33,690 Aga see on see, mida me hoolime, seda objekti siin. 225 00:13:33,690 --> 00:13:35,300 See on päringu objektiks. 226 00:13:35,300 --> 00:13:40,670 Teisisõnu, see on täpselt, mida veebirakenduse saates API 227 00:13:40,670 --> 00:13:45,730 ja seega vaatame sees natuke, ja me näeme, et meil on mõned väärtused siin. 228 00:13:45,730 --> 00:13:48,710 Me näeme meil on see arv tüüp, mis on sündmuste kohta miljon sõna, 229 00:13:48,710 --> 00:13:51,460 mis on täpselt see, mida me oleme otsustanud Y-teljel siin. 230 00:13:51,460 --> 00:13:53,740 See, kui et tuleb. 231 00:13:53,740 --> 00:13:58,010 Meil on andmebaasi väärtus, mis tähendab, et seal on mõned teatud andmebaas 232 00:13:58,010 --> 00:14:01,610 nende andmete elavad, ja me tahame pääseda, et konkreetsete andmete 233 00:14:01,610 --> 00:14:04,950 mitte lapse nimed andmed, näiteks. 234 00:14:04,950 --> 00:14:08,320 Siis on meil see rühmade väärtus, 235 00:14:08,320 --> 00:14:12,090 mis ütleb, et me tahame otsida aastas võrreldes 236 00:14:12,090 --> 00:14:16,030 muud X-telje väärtus. 237 00:14:16,030 --> 00:14:19,040 Siis on meil meetod, mida mõned APIs teen mitu asja. 238 00:14:19,040 --> 00:14:22,360 Teisisõnu, see API võimalik naasta ka muud liiki andmed, 239 00:14:22,360 --> 00:14:27,740 kuid sel juhul me tahame, et kaardistada X-telje väärtused Y telje väärtused. 240 00:14:27,740 --> 00:14:30,730 Just see räägib seda teha seal, 241 00:14:30,730 --> 00:14:35,020 ja meil see otsing piiranguid massiivi, mis sisaldab 2 väärtused. 242 00:14:35,020 --> 00:14:40,720 Esimene on see, mida me näeme siin, mis on kõik väärtused 243 00:14:40,720 --> 00:14:43,020 sisalduva et esimest väikest kasti ülaosas. 244 00:14:43,020 --> 00:14:47,570 >> Teisisõnu, me tahame otsima sõna lahing, ja me tahame filtreerida 245 00:14:47,570 --> 00:14:51,920 Inglise tekste jooksul ameerika kirjandust. 246 00:14:51,920 --> 00:14:54,590 Meil on see riik, mis on USA. 247 00:14:54,590 --> 00:14:59,130 Meil on keel, mis on inglise keeles, nii et meil on kõik need erinevad osad 248 00:14:59,130 --> 00:15:02,690 et kõik räägivad API täpselt, mida tahame. 249 00:15:02,690 --> 00:15:04,940 Me ei tea, mis andmed, et saame tagasi on veel, 250 00:15:04,940 --> 00:15:10,970 kuid me teame, et andmed ei kavatse võtta teatud vormi. 251 00:15:10,970 --> 00:15:13,650 See näide on omamoodi edasi keeruline pool, 252 00:15:13,650 --> 00:15:16,180 ja sa ei pea olema ilmtingimata kasutades API seda keerulist, 253 00:15:16,180 --> 00:15:20,600 kuid see on näidata, ulatus ja võimsus, mida API saab teha. 254 00:15:20,600 --> 00:15:24,980 Teisisõnu, kasutades suhteliselt lihtsa päringu süsteem me põhimõtteliselt on sisestuskasti 255 00:15:24,980 --> 00:15:29,490 mõne muu valijad erinevates kohtades. 256 00:15:29,490 --> 00:15:32,010 >> Lubage mul suumida tagasi siin. 257 00:15:32,010 --> 00:15:37,720 Meil on sisend kasti paar erinevat metaandmete valikud 258 00:15:37,720 --> 00:15:40,610 ja meil on y-teljega ja x-telje suhtes valikuid. 259 00:15:40,610 --> 00:15:42,830 Me tegelikult ei ole, et paljudes valdkondades, 260 00:15:42,830 --> 00:15:46,210 ja me näeme väga kergesti suudame päringu mingi API 261 00:15:46,210 --> 00:15:48,510 ja saada andmeid tagasi ja siis pane see seda tabelit, 262 00:15:48,510 --> 00:15:52,080 mis seejärel läheb näitab seda kasulikul viisil. 263 00:15:52,080 --> 00:15:54,970 Et vaadata järjekordne näide, et võiks natuke rohkem tuttav kutid 264 00:15:54,970 --> 00:15:56,510 me ei kavatse pöörduda Facebook. 265 00:15:56,510 --> 00:15:59,440 Facebook API nimetatakse Facebook Graph, 266 00:15:59,440 --> 00:16:04,390 ja põhimõtteliselt mida see tähendab, on Facebook näeb ennast selle tohutu andmebaas 267 00:16:04,390 --> 00:16:08,000 on palju erinevaid osi, et kõik on teatud suhteid omavahel. 268 00:16:08,000 --> 00:16:11,070 Teisisõnu, ma olen kasutaja Facebook, nii et ma pean profiili 269 00:16:11,070 --> 00:16:14,310 ja ma ka teatud sõbrad, ja igaühel neist on konto, 270 00:16:14,310 --> 00:16:17,580 ja iga mu sõbrad on sein, millel on erinevad märkused selle kohta, 271 00:16:17,580 --> 00:16:20,800 ja kõik need kommentaarid on meeldib ja kõik sellised asjad. 272 00:16:20,800 --> 00:16:23,100 >> Seal on palju erinevaid osi, et Facebook. 273 00:16:23,100 --> 00:16:26,670 See on äärmiselt keeruline API, ja seal tonni, mida saate teha seda, 274 00:16:26,670 --> 00:16:28,450 aga see on tegelikult üsna lihtne kasutada. 275 00:16:28,450 --> 00:16:33,680 Ma lähen alustada läbi minnes graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 mis on minu ainulaadne konto nimi ja konto nimi võib olla kas 277 00:16:38,430 --> 00:16:43,710 mingi sõna, kui olete valinud, või see võib lihtsalt olla numbrijada. 278 00:16:43,710 --> 00:16:46,360 Mida me saame tagasi on päris põhiteavet. 279 00:16:46,360 --> 00:16:50,460 Me näeme, et mul on eesnimi, mis on Billy, perekonnanimi, mis on Janitsch. 280 00:16:50,460 --> 00:16:53,370 Seal on ainulaadne Facebook ID-ga mis mul on. 281 00:16:53,370 --> 00:16:57,920 Te näete, et ma olen mees ja et ma saaksin oma keeleseaded 282 00:16:57,920 --> 00:17:01,290 Briti inglise keeles. 283 00:17:01,290 --> 00:17:03,490 Teisisõnu, me näeme väga põhiandmed siin. 284 00:17:03,490 --> 00:17:08,670 See ei ole liiga palju, kuid see ei anna meile aimu sellest, mis on seal. 285 00:17:08,670 --> 00:17:10,849 >> Me saame teha sama asja, et David Malan, näiteks. 286 00:17:10,849 --> 00:17:13,599 Ma arvan, et ta nimi on dmalan. 287 00:17:13,599 --> 00:17:16,369 Me näeme David Malan on unikaalne ID. 288 00:17:16,369 --> 00:17:19,300 Tal on nimi, eesnimi, keskmine nimi, perekonnanimi. 289 00:17:19,300 --> 00:17:24,210 Näeme ka, et ta on mees ja tema keel seatud inglise keeles. 290 00:17:24,210 --> 00:17:26,869 Teisisõnu, me näeme päris põhi infot siit. 291 00:17:26,869 --> 00:17:28,860 Nüüd, mis juhtub, kui me püüame kontrollida midagi muud? 292 00:17:28,860 --> 00:17:33,060 Oletame, et ma olen huvitatud sellest, mida David Malan on meeldinud Facebookis. 293 00:17:33,060 --> 00:17:36,860 Ma suudan / meeldib. Nüüd oleme sattunud probleem. 294 00:17:36,860 --> 00:17:39,280 Meil mingi viga, mis ütleb juurepääsutõend 295 00:17:39,280 --> 00:17:41,660 on vaja taotleda seda ressurssi. 296 00:17:41,660 --> 00:17:44,730 Aga kui sa mõtled seda, et tegelikult mõtet, sest see oleks imelik 297 00:17:44,730 --> 00:17:47,830 kui sa saaksid juurdepääsu iga osa Facebooki andmebaas 298 00:17:47,830 --> 00:17:50,170 just alates mingi lihtne API, eks? 299 00:17:50,170 --> 00:17:56,040 Teisisõnu, arvatavasti oma andmed ei saa siseneda igaüks, kes seda soovib. 300 00:17:56,040 --> 00:17:58,330 >> See viga on täpselt, mida see tähendab. 301 00:17:58,330 --> 00:18:03,630 Mõned APIs nõuda teatud õigused, et tutvuda nende andmetega. 302 00:18:03,630 --> 00:18:06,940 Ja isegi rohkem arenenud API, nagu Facebook üks, 303 00:18:06,940 --> 00:18:09,840 nõuab teatud õigused teha teatud asju. 304 00:18:09,840 --> 00:18:12,650 Ma näen seda põhilist teavet David Malan. 305 00:18:12,650 --> 00:18:15,950 Ma näen, et ta on mees ja et ta elab USAs, 306 00:18:15,950 --> 00:18:19,270 aga ma tõesti ei saa aru midagi mineviku. 307 00:18:19,270 --> 00:18:23,050 Et saada seda nüüd, Facebook on see tore tööriist 308 00:18:23,050 --> 00:18:27,690 mis on graafik API Explorer ja ideed, mis on saate sortida kohta 309 00:18:27,690 --> 00:18:31,880 moodustavad load ise põhineb oma konto 310 00:18:31,880 --> 00:18:35,680 ja siis vaadata asju, mis konkreetselt teie konto saab vaadata. 311 00:18:35,680 --> 00:18:45,120 Näiteks, kui ma graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Oih, ma arvan, et valideerida oma sümboolne siin. 313 00:18:53,510 --> 00:18:55,950 Okei. 314 00:18:55,950 --> 00:19:01,740 Kui ma seda teen jälle, tore, nüüd ma näen, et ma saaksin selle objekti tagasi 315 00:19:01,740 --> 00:19:06,300 mis ütleb, et mulle meeldib bassein nuudlid, mis on kategoorias Mängud ja mänguasjad. 316 00:19:06,300 --> 00:19:08,620 Mulle meeldib morsad, mis on kategooria loomsed. 317 00:19:08,620 --> 00:19:10,180 Need on minu tegelik Facebook meeldib. 318 00:19:10,180 --> 00:19:13,280 Nad on omamoodi piinlik. 319 00:19:13,280 --> 00:19:16,090 >> Aga me näeme neid andmeid kõikide tagastatud JSON. 320 00:19:16,090 --> 00:19:18,160 See on päris loetav. 321 00:19:18,160 --> 00:19:20,970 Teisisõnu, meil on see kaardistamise andmete mingi massiivi 322 00:19:20,970 --> 00:19:25,220 ja iga element selles massiivis on HashMap mis kaardid 323 00:19:25,220 --> 00:19:28,530 nimi näeb ja kategooria nagu. 324 00:19:28,530 --> 00:19:31,240 Iga nagu on unikaalne ID. 325 00:19:31,240 --> 00:19:34,510 Seal on igasuguseid erinevaid asju andmeid, et saame, 326 00:19:34,510 --> 00:19:37,980 ja kui olete huvitatud kasutades Facebook API CS50 lõplik projekt 327 00:19:37,980 --> 00:19:40,720 või midagi sellist, et see on tegelikult üsna sooritatav. 328 00:19:40,720 --> 00:19:44,260 Põhimõtteliselt kuidas sa saad umbes autentimise asi on Facebook 329 00:19:44,260 --> 00:19:48,030 kasutab süsteemi nimetatakse OAuth või Open Authentication, 330 00:19:48,030 --> 00:19:52,870 ja ma ei taha sattuda ta nüüd, sest OAuth või erinevat tüüpi 331 00:19:52,870 --> 00:19:56,060 autentimise kipub väga erinevad erinevate rakendusliideste, 332 00:19:56,060 --> 00:19:58,320 nii et ma võiks kulutada aega läheb üle igaüks, 333 00:19:58,320 --> 00:20:01,170 kuid nad on tegelikult üsna selgituseta. 334 00:20:01,170 --> 00:20:04,050 >> Kui sa Google Facebook API on väga loetav. 335 00:20:04,050 --> 00:20:06,670 Seal on kogu spec. 336 00:20:06,670 --> 00:20:10,210 Näiteks see dokumentatsioon Facebook API 337 00:20:10,210 --> 00:20:14,170 ja te näete ma olen Kasutaja leht, et ma saaks õppida kõike erinevaid asju 338 00:20:14,170 --> 00:20:17,170 et on olemas, et saada nii palju kui andmeid 339 00:20:17,170 --> 00:20:21,550 ja ka erinevad õigused, mida ma vajan, et neile ligi pääseda. 340 00:20:21,550 --> 00:20:25,470 Nagu nägime, ei pea me õigused juurdepääsuks nimi või sugu, 341 00:20:25,470 --> 00:20:29,380 kuid pärast seda me peame load kõige rohkem asju. 342 00:20:29,380 --> 00:20:33,040 Seda lehekülge või pigem sellel veebilehel on ka teile, kuidas saada 343 00:20:33,040 --> 00:20:35,640 märgiks oleks võimalik end autentida. 344 00:20:35,640 --> 00:20:39,290 Enamik autentimise süsteemide kasutamine mingi sümboolse 345 00:20:39,290 --> 00:20:42,880 kus sa saad seda ainulaadset väärtust, mis on tõesti pikk ja juhuslik jada, 346 00:20:42,880 --> 00:20:46,240 ja et kuidas nad suudavad siduda taotluse, et sa üritad teiega. 347 00:20:46,240 --> 00:20:50,560 Teisisõnu, nad teavad, et sa ei tee midagi kahtlast oma andmeid. 348 00:20:50,560 --> 00:20:53,340 Nad teavad täpselt, mida sa saada. 349 00:20:53,340 --> 00:20:56,180 Nad teavad, et teil on luba vaadata seda teavet. 350 00:20:56,180 --> 00:20:59,110 >> Kui oled teinud Facebook app ja oma app on teatud kasutajatele, 351 00:20:59,110 --> 00:21:03,380 ja need kasutajad on lubatud, et app juurdepääsu teatud osa oma profiilile 352 00:21:03,380 --> 00:21:07,790 siis mis iganes API võti või märgi, et rakendus kasutab 353 00:21:07,790 --> 00:21:11,090 saab juurdepääsu andmetele nende kasutajate. 354 00:21:11,090 --> 00:21:13,780 See võib tunduda keeruline, kuid see ei ole liiga halb, 355 00:21:13,780 --> 00:21:16,810 ja kui sa tahad kasutada Facebook Ma väga soovitada, et te 356 00:21:16,810 --> 00:21:18,990 kaaluda mängides oma API. 357 00:21:18,990 --> 00:21:21,610 See on väga lahe, ja sa saad teha palju erinevaid asju teha. 358 00:21:21,610 --> 00:21:24,880 Kui kasutaja annab teile need õigused saab isegi tagasi minna API 359 00:21:24,880 --> 00:21:28,820 ja öelda, et ma tahan tegelikult postitada selle kasutaja seina, või tahan ma lasta postitada foto 360 00:21:28,820 --> 00:21:32,390 ja sellepärast oma uudistevoo teil mõnikord need tüütud asjad 361 00:21:32,390 --> 00:21:37,840 öeldes su sõber on vaatasin seda videot mingi imelik sait või midagi sellist. 362 00:21:37,840 --> 00:21:43,120 See on sellepärast, et app on antud juurdepääs postitamiseks antud isiku seina. 363 00:21:43,120 --> 00:21:48,350 Idee üldiselt Facebook API on päris keeruline, vaid ka väga kasulik. 364 00:21:48,350 --> 00:21:53,220 Kindlasti tasub kontrollida, kas sa ikka otsivad lõplik projekt. 365 00:21:53,220 --> 00:21:57,930 >> Teine komplekt APIs et ma lähen üle on CS50 rakendusliideste. 366 00:21:57,930 --> 00:22:00,070 Lubage mul suumimiseks siin. 367 00:22:00,070 --> 00:22:03,390 CS50 on tegelikult kokku pandud terve rida APIs 368 00:22:03,390 --> 00:22:07,080 , mida saab kasutada lõpliku projekti või lihtsalt midagi, mida sa üritad. 369 00:22:07,080 --> 00:22:12,830 Ja nad on enamasti Harvardi seotud, ja need varieeruvad HUDS menüü 370 00:22:12,830 --> 00:22:17,780 Näiteks sellele Harvardi Üritused API, mis võimaldab teil juurdepääs nimekirja 371 00:22:17,780 --> 00:22:21,290 erinevate sündmuste, mis on kestnud Harvardi ja sellised asjad. 372 00:22:21,290 --> 00:22:24,510 Ja nii me saame klikkige mõni neist ja saada spec seda, 373 00:22:24,510 --> 00:22:28,090 mis teil oleks võimalik leida mistahes API, ja mõte on 374 00:22:28,090 --> 00:22:33,920 see annab teile teada, konkreetselt, mida nõuda API ja kuidas seda taotleda. 375 00:22:33,920 --> 00:22:37,370 Teisisõnu, kui ma tahan kõik sündmused, mis juhtub homme 376 00:22:37,370 --> 00:22:42,550 siis ma pean ilmselt annab see nimetatud kuupäevaks, et ma tahan teatud vormis, 377 00:22:42,550 --> 00:22:46,030 ja B, siis räägi mulle täpselt, mida ta on annan tagasi mulle. 378 00:22:46,030 --> 00:22:48,590 See öelda, et ma lähen tagasi sa seda JSON objekti, 379 00:22:48,590 --> 00:22:50,960 või nagu näete, on erinevaid vorme. 380 00:22:50,960 --> 00:22:54,050 >> Võite naasta andmed CSV, näiteks. 381 00:22:54,050 --> 00:22:57,620 Aga tead täpselt, kuidas see info läheb otsima, kui sa saad selle tagasi 382 00:22:57,620 --> 00:23:00,610 nii võite oodata teha teatud asju koos sellega. 383 00:23:00,610 --> 00:23:07,240 Me ei keri ja vaata, näiteks, kui me tahame päringu API 384 00:23:07,240 --> 00:23:11,500 saada kalendriaasta, siis saame kasutada selle konkreetse URL 385 00:23:11,500 --> 00:23:16,480 ja annab talle teatud parameetreid, mis saab olema andmed, et me tahame täpselt. 386 00:23:16,480 --> 00:23:19,540 Ja samuti, kui me tahame andmed tagasi teatud vormis, 387 00:23:19,540 --> 00:23:23,790 siis saame paluda väljastada andmeid CSV, 388 00:23:23,790 --> 00:23:27,700 ja see on lihtsalt üks parameeter, mida me möödaminnes API. 389 00:23:27,700 --> 00:23:29,210 Palju lahedaid asju teha seal. 390 00:23:29,210 --> 00:23:32,550 Tahaksin kindlasti soovitada kontrollimiseks läbi CS50 rakendusliideste. 391 00:23:32,550 --> 00:23:36,000 >> Ma lähen vaatan seda Harvardi Toidu API eelkõige natuke. 392 00:23:36,000 --> 00:23:39,870 Üks asi mis mulle tegelikult mõeldud on see Harvardi Noms veebilehel, 393 00:23:39,870 --> 00:23:44,930 mis kasutab CS50 Toidu API laadida HUDS menüü päev. 394 00:23:44,930 --> 00:23:50,400 Ja pikendamise kooli inimesed, HUDS on söögituba teenus Harvardi. 395 00:23:50,400 --> 00:23:55,130 Mis teil on see leht, mis sisaldab kõiki söögikordi päevas, seda me näeme lõunasöök. 396 00:23:55,130 --> 00:23:58,130 Meil on paar erinevat liiki. Meil on uba ja täistera jaam. 397 00:23:58,130 --> 00:24:00,340 Meil on pruun riis jaam. 398 00:24:00,340 --> 00:24:03,360 Me näeme einele meil on neid vähe pakke. 399 00:24:03,360 --> 00:24:07,030 Kui me kliki neid, siis saame toitumisalast teavet. 400 00:24:07,030 --> 00:24:12,240 Näete see on toitumisalane teave greip, et kui sa ei tea. 401 00:24:12,240 --> 00:24:14,870 Ja nii jälle, me ei kavatse piiluda kolp siin natuke 402 00:24:14,870 --> 00:24:18,530 ja vaata, mis seda täpselt teeme, et need andmed. 403 00:24:18,530 --> 00:24:21,710 Ja selgub, et tegelikult ei väga keeruline üldse. 404 00:24:21,710 --> 00:24:28,720 See fail paistab pisut räpane, kuid pidage meeles, et see on käitlemiseks kogu veebileht 405 00:24:28,720 --> 00:24:34,130 ja kui ma keri näeme seda muutust andmed funktsioon. 406 00:24:34,130 --> 00:24:36,630 >> Nüüd, et asi selge oleks, see on kirjutatud CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 mis on keeles, siis ilmselt ei ole varem näinud. 408 00:24:39,570 --> 00:24:44,810 Aga see on päris loetav, nii et ma saadan selle kaudu, nagu oleks pseudokoodi. 409 00:24:44,810 --> 00:24:49,080 Muuda kuupäeva on funktsioon, mis vőtab selle kuupäeva väärtus, 410 00:24:49,080 --> 00:24:51,740 ja see on ka kavatse võtta esimene, mida me ei hooli nii palju. 411 00:24:51,740 --> 00:24:54,110 Aga kõige tähtsam on see, et see kuupäev, 412 00:24:54,110 --> 00:25:00,080 ja see kuupäev on päev, mida me tahame taotleda kõik pakke. 413 00:25:00,080 --> 00:25:04,030 Ja siis sa näed meil on natuke süntaks siin, 414 00:25:04,030 --> 00:25:09,000 mis on põhimõtteliselt parsing seda kuupäeva arvesse loetavas vormingus. 415 00:25:09,000 --> 00:25:11,920 Teisisõnu, API nõuab kuupäev teatud formaadis. 416 00:25:11,920 --> 00:25:17,390 Sa ei saa lihtsalt öelda 16. november 2012 AD. 417 00:25:17,390 --> 00:25:20,320 See ei tea, mida teha sellega. Ta tahab kuupäeval kindlas vormingus. 418 00:25:20,320 --> 00:25:23,230 Kõik me teeme siin annab see täpselt sellisel kujul, 419 00:25:23,230 --> 00:25:26,520 mis on aasta väärtus ja seejärel sidekriipsuga, kuu väärtus, 420 00:25:26,520 --> 00:25:29,420 teine ​​taandes ja kuupäeva väärtus. 421 00:25:29,420 --> 00:25:34,910 Ja me ka öelda tahame andmeid olla väljastatud JSON. 422 00:25:34,910 --> 00:25:37,560 >> Nüüd teeme seda AJAX taotlus, ja nagu ma varem mainisin, 423 00:25:37,560 --> 00:25:41,680 jQuery on see super kasulik AJAX funktsioon, mis kõik mida sa pead tegema, on määrata 424 00:25:41,680 --> 00:25:45,780 mõned parameetrid siia alla, ja ta annab sulle tagasi täpselt mida sa tahad. 425 00:25:45,780 --> 00:25:50,490 Me ütleme seda, et URL me tahame seda minna, on see CS50 Toidu API 426 00:25:50,490 --> 00:25:52,270 mida kuulsime spec. 427 00:25:52,270 --> 00:25:56,730 Me ütleme, et me tahame andmeid JSON ja et 428 00:25:56,730 --> 00:25:59,490 me anname ta neid andmeid, mida me oleme määratud siin. 429 00:25:59,490 --> 00:26:02,670 See on päev, mil me tahame pakke. 430 00:26:02,670 --> 00:26:07,790 Ja siis kõik me peame tegema, on määrata mingi edu funktsioon, 431 00:26:07,790 --> 00:26:11,980 mis on põhimõtteliselt mis juhtub, kui API tagastab selle andmed. 432 00:26:11,980 --> 00:26:15,490 Teisisõnu, me oleme pakendatud kuni kõik parameetrid, et me tahame, 433 00:26:15,490 --> 00:26:20,530 mis antud juhul on päev, et me tahame seda ja seda, et me tahame seda JSON, 434 00:26:20,530 --> 00:26:23,840 ja saatsime ta välja, et API, nii et nüüd API ütleb, okei, 435 00:26:23,840 --> 00:26:26,350 Siin on teie andmed, ma sain selle tagasi teile. 436 00:26:26,350 --> 00:26:29,930 Meil on edu funktsioon, mis tähendab, et kuna API 437 00:26:29,930 --> 00:26:32,230 edukalt naaseb mõned andmed, mida me teeme seda? 438 00:26:32,230 --> 00:26:35,980 >> Ja selgub, et kõik me teeme, on helistada selle värskenduse menüüfunktsioon 439 00:26:35,980 --> 00:26:42,680 kõikvõimaliku API on tagasi, nii saame otsida, et 440 00:26:42,680 --> 00:26:47,970 ja vaata, et kõik me teeme kasutab hunnik uusi süntaks siin 441 00:26:47,970 --> 00:26:52,220 uuendada HTML ja sisestada see uus info. 442 00:26:52,220 --> 00:26:56,580 Mis see võimaldab on meil neid nooli mõlemal pool, ja me saame klikkige, 443 00:26:56,580 --> 00:27:01,060 ja nüüd me vaatame andmeid järgmisel päeval ja uuesti järgmisel päeval, 444 00:27:01,060 --> 00:27:04,820 ja iga kord kui seda ajakohastatakse seda kuupäeva väärtus ja päringute API 445 00:27:04,820 --> 00:27:07,510 saada tagasi mõned andmed ja selle kasutuselevõtul kohas. 446 00:27:07,510 --> 00:27:10,590 Jällegi näete, super, super kasulik. 447 00:27:10,590 --> 00:27:14,410 See app võttis mind paar tundi häkkida koos, 448 00:27:14,410 --> 00:27:20,140 ja mul on natuke rohkem kogemusi, muidugi, kuid oma CS50 lõplik projekt 449 00:27:20,140 --> 00:27:22,870 otsida midagi väga meeldib see. 450 00:27:22,870 --> 00:27:29,540 >> APIs on super võimas summa jõupingutusi, et nad võtavad. 451 00:27:29,540 --> 00:27:32,800 Viimane asi, mida ma lähen üle on veel mõned APIs laialt. 452 00:27:32,800 --> 00:27:35,480 Ma ei saa nii palju võtta nii palju kui mida nad teevad konkreetselt, 453 00:27:35,480 --> 00:27:38,740 aga ma annan sulle idee, mis seal on. 454 00:27:38,740 --> 00:27:42,700 2 tõesti kasulik ones, kui olete huvitatud andmete analüüsi või visualiseerimine 455 00:27:42,700 --> 00:27:45,960 või midagi sellist, on Freebase'ist ja Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-arvatavasti te kõik teate, on tasuta online entsüklopeedia, 457 00:27:49,800 --> 00:27:53,230 ja see on tegelikult API, nii et kui soovite näiteks 458 00:27:53,230 --> 00:27:56,250 saada kõik tekstid ja artiklid kaheksajalg 459 00:27:56,250 --> 00:27:58,030 saab väga lihtsalt teha. 460 00:27:58,030 --> 00:28:02,300 Lihtsalt öelda, hei, Wikipedia API, ma tahaksin andmed tagastatakse see, 461 00:28:02,300 --> 00:28:07,010 ja ma tahaks seda sellisel kujul, ning artiklis Sooviksin on kaheksajalg, 462 00:28:07,010 --> 00:28:09,820 ja väga kiiresti ta annab sulle tagasi, et teavet. 463 00:28:09,820 --> 00:28:12,230 See võib olla väga kasulik, kui sa tahad teha mingi sait 464 00:28:12,230 --> 00:28:16,200 see on parem näitaja Wikipedia või midagi sellist. 465 00:28:16,200 --> 00:28:21,350 >> Freebase'ist on omamoodi sarnased, kuigi see on natuke raskem kuivõrd API. 466 00:28:21,350 --> 00:28:24,390 Freebase'ist on nagu Wikipedia, et see on online entsüklopeedia 467 00:28:24,390 --> 00:28:29,050 mis sisaldab palju ja palju erinevaid andmeid igasuguseid erinevaid teemasid, 468 00:28:29,050 --> 00:28:33,150 aga see on salvestatud relatsiooniline andmebaas, mis on veidi erinev Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia on oma esemed ja esemed, mis on seotud muude esemete, 470 00:28:36,410 --> 00:28:38,860 kuid enamasti, kui soovite andmeid kaheksajalad, 471 00:28:38,860 --> 00:28:41,990 te lähete kaheksajalg artikkel, saada, et andmed, ja sul on hunnik teksti 472 00:28:41,990 --> 00:28:43,830 umbes kaheksajalg, nii et on hea. 473 00:28:43,830 --> 00:28:46,870 Freebase'ist töötab veidi keerulisem viisil, et 474 00:28:46,870 --> 00:28:48,930 kõik on üksteisega seotud. 475 00:28:48,930 --> 00:28:52,620 Teisisõnu, kui me otsite kaheksajalg 476 00:28:52,620 --> 00:28:54,940 siis on hunnik kategooriad sellega seotud. 477 00:28:54,940 --> 00:28:57,920 >> Näiteks, see on loom, ta elab vee all 478 00:28:57,920 --> 00:28:59,710 see on teatud kehatemperatuuri. 479 00:28:59,710 --> 00:29:01,210 Ma ei tea. 480 00:29:01,210 --> 00:29:04,230 Ja kõik need kategooriad on lingid teistesse kohtadesse, kus võid minna 481 00:29:04,230 --> 00:29:06,640 näha asju, et samasse kategooriasse. 482 00:29:06,640 --> 00:29:13,450 Teisisõnu, kaheksajalg andmekogum peaks sisaldama linki andmekogumi kõikide loomade puhul, 483 00:29:13,450 --> 00:29:16,790 ja et ei lase mul liikuda andmebaasis tõesti kiiresti. 484 00:29:16,790 --> 00:29:21,740 See võib olla väga kasulik, kui sa teed midagi võrrelda. 485 00:29:21,740 --> 00:29:24,490 Teisisõnu, arvestades teatud asi, mida soovite näha 486 00:29:24,490 --> 00:29:27,890 mida veel see seotud ja vaata, mis muidu pole see seotud. 487 00:29:27,890 --> 00:29:30,700 Et selline asi. See võib olla kasulik mitmel moel. 488 00:29:30,700 --> 00:29:34,250 Kui otsite suuremat väljakutset ning olla võimeline tegema mõned keerulisemad asjad 489 00:29:34,250 --> 00:29:38,740 Ma kaaluks võttes pilk Freebase'ist API. 490 00:29:38,740 --> 00:29:44,670 Aga enamasti, Wikipedia on väga lihtne koht, kuhu minna nii kaugele kui saad teavet. 491 00:29:44,670 --> 00:29:48,340 Teine koht, mis ma vaatan on Last.fm, ja ma olen tegelikult läheb saidile minna 492 00:29:48,340 --> 00:29:53,800 juhuks, kui mõned inimesed ei tunne, kuid Last.fm on põhimõtteliselt muusika 493 00:29:53,800 --> 00:29:57,220 maitsele ja soovitused veebilehel. 494 00:29:57,220 --> 00:29:59,000 Võite teha konto. 495 00:29:59,000 --> 00:30:04,250 Te võite alustada uploading muusikat oma muusikapleier 496 00:30:04,250 --> 00:30:08,020 veebilehel, ja põhiliselt siis hakkab andes sulle muusikat soovitused 497 00:30:08,020 --> 00:30:10,030 selle põhjal, mida te kuulate. 498 00:30:10,030 --> 00:30:14,270 >> Näiteks, kui sa lähed oma profiili lehele, see on minu- 499 00:30:14,270 --> 00:30:18,180 näete teil on nimekirja hiljuti kuulasin lugusid. 500 00:30:18,180 --> 00:30:22,550 Näete üldine lemmik kunstnike, kõik sellised asjad, 501 00:30:22,550 --> 00:30:25,280 ja uuesti, seal on suur API taga Last.fm, 502 00:30:25,280 --> 00:30:29,360  ja saate seda teha palju ja palju lahedaid asju. 503 00:30:29,360 --> 00:30:38,870 Näiteks, ma lähen sõbra leht kellel on see Last.fm Tööriistad veebilehel. 504 00:30:38,870 --> 00:30:42,380 See on tegelikult teine ​​platvorm, mis on ehitatud Last.fm API 505 00:30:42,380 --> 00:30:45,420 ja see arv päris huvitavaid asju. 506 00:30:45,420 --> 00:30:50,260 Kui ma sisse logida oma kasutaja nimi, näiteks 507 00:30:50,260 --> 00:30:53,110 Oskan küsida seda genereerida tag cloud, näiteks 508 00:30:53,110 --> 00:30:56,480 ja mida see tegema hakkab, on anda mulle tagasi pilt 509 00:30:56,480 --> 00:30:59,850 kõik erinevate žanrite ja et selline asi, et mulle meeldib kuulata. 510 00:30:59,850 --> 00:31:01,410 Kuidas ta teeb seda? 511 00:31:01,410 --> 00:31:05,670 Väga põhiliselt see ütleb, et Last.fm API siin on See kasutaja. 512 00:31:05,670 --> 00:31:10,710 Ma tahaks teada žanri iga laulu, et nad pole kunagi kuulanud, 513 00:31:10,710 --> 00:31:15,130 ja mida saate teha, et tehes üsna lihtne AJAX kõne Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Sa saad tagasi suur nimekiri, ja siis ilmselt mõned muud asjad tehakse 515 00:31:18,990 --> 00:31:22,280 et muuta see sõna pilv, aga näete üldine 516 00:31:22,280 --> 00:31:25,850 see on väga lihtne kasutada ja väga lihtne kasutada. 517 00:31:25,850 --> 00:31:30,750 Tõesti kena mitmeid asju. 518 00:31:30,750 --> 00:31:35,940 >> Ma arvan, et umbes kõik, mida ma ütlen üldine. 519 00:31:35,940 --> 00:31:39,040 Üks viimane asi, mida ma teile rääkida APIs üldiselt on see, et 520 00:31:39,040 --> 00:31:41,840 teil mõnikord tekib midagi, mida nimetatakse kiirust piirav, 521 00:31:41,840 --> 00:31:44,940 ja idee kiirust piirav on te ei soovi kuritarvitada rakendusliideste. 522 00:31:44,940 --> 00:31:48,130 Teisisõnu, see on tõesti tore, et palju need veebilehed on APIs 523 00:31:48,130 --> 00:31:51,070 et võite minna ja kasutada tasuta. 524 00:31:51,070 --> 00:31:54,460 Siiski, kui sa üritad miljoneid või miljardeid päringuid päevas, 525 00:31:54,460 --> 00:31:57,610 Näiteks, kui sa oled ummikus lõputu silmuse, mis on lõpmatult päringute 526 00:31:57,610 --> 00:32:00,680 mingi API ja saada tagasi tohutu hulga andmeid, 527 00:32:00,680 --> 00:32:04,570 ilmselt see pole hea, mis siis palju APIs tegema, on see kiirust piirav funktsioon 528 00:32:04,570 --> 00:32:09,970 mis ütleb, et saate luua ainult 1000 vaatamist päevas ühe IP aadressi või midagi sellist. 529 00:32:09,970 --> 00:32:12,540 Ja kui sa teed palju katsetamist ja sellised asjad, 530 00:32:12,540 --> 00:32:14,890 teil mõnikord sattunud seda ja äkki ta sulgeb teid välja 531 00:32:14,890 --> 00:32:18,280 ja ütlevad ei, ma ei anna sulle rohkem andmeid. 532 00:32:18,280 --> 00:32:20,000 >> Mida sa tahad teha, on mängida reeglite järgi. 533 00:32:20,000 --> 00:32:22,950 Sa tahad teha kindel, et sa loed API spec hoolikalt. 534 00:32:22,950 --> 00:32:26,330 Kui see on teatud reeglid selle juurde, nagu saab teha ainult X päringut päevas 535 00:32:26,330 --> 00:32:30,000 või saate juurdepääsu ainult osa andmebaasi teatud arv kordi 536 00:32:30,000 --> 00:32:32,900 või midagi sellist tahad, veendumaks, et jääda seda. 537 00:32:32,900 --> 00:32:38,360 Niikaua kui sa mängid jooksul nende eeskirjade saad ilmselt väga tore kasutades rakendusliideste. 538 00:32:38,360 --> 00:32:42,030 Teie üldine Buffee on APIs on tõesti väga kasulik. 539 00:32:42,030 --> 00:32:45,610 >> Seal API peaaegu iga suur veebiteenus seal. 540 00:32:45,610 --> 00:32:50,700 Päris palju tahes osa Google'i Tööriistad Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Calendar, kõik need asjad on rakendusliideste. 542 00:32:54,390 --> 00:32:58,280 Võite kasutada neid nii saada andmeid server ja saata andmeid serverisse. 543 00:32:58,280 --> 00:33:00,870 Teisisõnu, kui sa tahad teha kalender app, mida saab uuendada 544 00:33:00,870 --> 00:33:04,190 kellegi Google Calendar, seal on API selle eest. 545 00:33:04,190 --> 00:33:07,810 Kui sa tahad teha midagi, mis ei ütle teile, kus 546 00:33:07,810 --> 00:33:12,530 asukoht teatavaid aadress on saate kasutada Google Maps API selle eest. 547 00:33:12,530 --> 00:33:15,860 APIs on fantastiliselt kasulik, ja nad on kõikjal. 548 00:33:15,860 --> 00:33:18,700 Kui olete huvitatud mingi idee, 549 00:33:18,700 --> 00:33:22,170 seal on ilmselt seotud API, mida saab kasutada, et saada palju andmeid 550 00:33:22,170 --> 00:33:25,060 väga kiiresti ja väga lihtsalt. 551 00:33:25,060 --> 00:33:28,140 >> Kui sa ikka otsivad projekti või kui tahad lihtsalt mängida 552 00:33:28,140 --> 00:33:31,820 midagi üldiselt, API on kindlasti väärt. 553 00:33:31,820 --> 00:33:37,200 Aitäh, ja ma olen õnnelik, et vastata kõikidele küsimustele, et te võib-olla. 554 00:33:37,200 --> 00:33:44,900 Okei, suur tänu. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]