1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Semina] [programu ya Utangulizi wa APIs] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Chuo Kikuu cha Harvard] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Hii ni CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hi, kila mtu, mimi nina Billy, na leo mimi naenda kuwa na kuzungumza kuhusu APIs, 5 00:00:12,100 --> 00:00:15,220 au maombi ya programu interfaces, 6 00:00:15,220 --> 00:00:20,040 hasa katika muktadha wa miradi CS50 mwisho na kwamba aina ya kitu. 7 00:00:20,040 --> 00:00:22,490 Kwa ujumla ni nini API? 8 00:00:22,490 --> 00:00:25,530 Katika suala pana sana, ni mtu wa namna katikati ambayo inaruhusu vipande 2 9 00:00:25,530 --> 00:00:28,610 ya programu ya kuwasiliana na kila mmoja. 10 00:00:28,610 --> 00:00:32,530 Hiyo ni aina ya ufafanuzi mpana sana na si kwamba husika kwa nini sisi tunataka. 11 00:00:32,530 --> 00:00:35,450 Nini sisi kweli unataka ni aina fulani ya ardhi manufaa katikati 12 00:00:35,450 --> 00:00:40,570 kuwasiliana na baadhi ya aina ya database mahali fulani. 13 00:00:40,570 --> 00:00:43,310 >> Hapa ni chati, na kimsingi wazo ni kwamba 14 00:00:43,310 --> 00:00:46,790 sisi ni maombi, na tunataka kupata data kutoka database, 15 00:00:46,790 --> 00:00:49,570 lakini sisi hawataki swala database moja kwa moja. 16 00:00:49,570 --> 00:00:52,710 Badala yake tunataka kwenda kwa njia ya aina hii ya mtu katikati, API. 17 00:00:52,710 --> 00:00:55,440 Dhana ya kwamba ni idadi 2 na 3 kwenye chati 18 00:00:55,440 --> 00:00:57,750 ni wawili kwenda kuwa ngumu sana na messy. 19 00:00:57,750 --> 00:00:59,960 Kwa maneno mengine, wakati API ni querying database, 20 00:00:59,960 --> 00:01:03,300 ni pengine itakuwa ni ya kutumia meza SQL na wote wa aina hiyo ya mambo, 21 00:01:03,300 --> 00:01:05,489 na tumejifunza kidogo kuhusu hilo katika CS50, lakini kwa ujumla, 22 00:01:05,489 --> 00:01:07,590 ve niliona kuwa ni kidogo ya maumivu. 23 00:01:07,590 --> 00:01:10,590 Ni anapata sana, ngumu sana na messy, hasa wakati wewe ni kufanya 24 00:01:10,590 --> 00:01:12,530 tata maswali na kwamba aina ya kitu. 25 00:01:12,530 --> 00:01:15,960 >> Nini sisi kweli unataka ni aina fulani ya njia muhimu na rahisi 26 00:01:15,960 --> 00:01:19,780 kupata data kwamba, na kwamba ni wazo nyuma ya namba 1 na 4 kwenye chati. 27 00:01:19,780 --> 00:01:23,600 Kwa maneno mengine, tunataka njia ya kweli rahisi kuwaambia API nini kupata kwa ajili yetu 28 00:01:23,600 --> 00:01:27,760 na njia ya kweli rahisi kupata data kwamba nyuma. 29 00:01:27,760 --> 00:01:33,020 Kuna moja kuu njia ambayo data kwamba ni kawaida alimtuma na kupokea, 30 00:01:33,020 --> 00:01:36,490 ambayo ni JSON, au JavaScript nukuu Object. 31 00:01:36,490 --> 00:01:40,370 Hiyo inaweza kutofautiana kidogo mbali kama jinsi ya kutuma ombi kwa API. 32 00:01:40,370 --> 00:01:43,210 Kwa maneno mengine, kama unataka baadhi kiasi fulani ya data, 33 00:01:43,210 --> 00:01:46,670 jinsi kumweleza API kupata kwamba data wanaweza kutofautiana kidogo. 34 00:01:46,670 --> 00:01:49,210 Kawaida inahusisha kufanya baadhi ya aina ya ombi la mtandao. 35 00:01:49,210 --> 00:01:53,130 Kwa maneno mengine, kupata aina fulani ya URL ambayo inaenda kuwaambia API 36 00:01:53,130 --> 00:01:56,190 hasa unataka nini, lakini data ni karibu daima kurejea, 37 00:01:56,190 --> 00:01:59,530 kwa maneno mengine, idadi 4 katika JSON. 38 00:01:59,530 --> 00:02:01,030 >> Nini ni JSON hasa? 39 00:02:01,030 --> 00:02:03,030 Kama nilivyosema, JavaScript Object nukuu. 40 00:02:03,030 --> 00:02:07,090 Ni kimsingi kiwango zima kwa ajili ya kupeleka na kupokea data. 41 00:02:07,090 --> 00:02:11,410 Wazo ni kwamba, una makundi 3 ya mambo haya. 42 00:02:11,410 --> 00:02:13,540 Una arrays hashmaps, na primitives. 43 00:02:13,540 --> 00:02:16,580 Arrays na hashmaps wewe Tumeangalia katika kidogo katika CS50, 44 00:02:16,580 --> 00:02:19,870 lakini umefanya aina ya kujipatia hisia kali sana ya nini hao. 45 00:02:19,870 --> 00:02:22,780 Kwa maneno mengine, kwa arrays unajua kwamba wao ni aina ya amefungwa, 46 00:02:22,780 --> 00:02:26,560 hivyo wewe tu moja aina ya aina ya kwamba huenda katika safu nzima. 47 00:02:26,560 --> 00:02:29,310 JSON ni mengi zaidi lenient na kwamba aina ya kitu. 48 00:02:29,310 --> 00:02:33,590 Kimsingi wazo ni wewe kujenga hii kitu, 49 00:02:33,590 --> 00:02:36,270 ambayo inaweza linajumuisha yeyote mambo haya 3 50 00:02:36,270 --> 00:02:39,470 na inaweza linajumuisha wale nyingi wao, na wanaweza kuwa nested. 51 00:02:39,470 --> 00:02:42,110 >> Aina Hapa ya mfano wa JSON, 52 00:02:42,110 --> 00:02:47,910 ambayo ni haya mabano curly hapa kuwakilisha hashmap yako, 53 00:02:47,910 --> 00:02:51,400 na hashmap kimsingi ni ramani kutoka kwa baadhi ya aina ya ufunguo 54 00:02:51,400 --> 00:02:53,340 kwa baadhi ya aina ya thamani. 55 00:02:53,340 --> 00:02:56,440 Utaona hapa kwamba tuna muhimu mali, 56 00:02:56,440 --> 00:02:59,600 na kwamba ramani kwenye safu, ambayo ni jambo hili lote. 57 00:02:59,600 --> 00:03:04,120 Sisi kuona mwingine kipengele cha hashmap, ambayo ni hii isAwesome muhimu, 58 00:03:04,120 --> 00:03:07,370 ambayo ramani kwa thamani duni wa kweli, kwa maneno mengine, bulin. 59 00:03:07,370 --> 00:03:09,420 Primitives inaweza kuwa masharti. Wanaweza kuwa integers. 60 00:03:09,420 --> 00:03:11,960 Wanaweza kuwa bools, jambo kama hilo. 61 00:03:11,960 --> 00:03:18,410 Na unaona yaliyomo ya safu hii kwamba mali pointi ina masharti 2 ndani yake, 62 00:03:18,410 --> 00:03:20,050 binafsi sawa na ya ajabu. 63 00:03:20,050 --> 00:03:27,410 Wale ni mali ya 2 JSON, na sisi kuona kwamba JSON ni wa kushangaza. 64 00:03:27,410 --> 00:03:30,060 Kuangalia kwamba kidogo karibu zaidi nitakacho kujenga 65 00:03:30,060 --> 00:03:32,870 mfano ngumu zaidi ya JSON hapa. 66 00:03:32,870 --> 00:03:37,000 >> Hebu kuanza na safu, kwa mfano, tu safu tupu. 67 00:03:37,000 --> 00:03:39,180 Lakini hiyo ni aina ya boring, hivyo sisi ni kwenda kujaza juu kidogo, 68 00:03:39,180 --> 00:03:43,420 na kama nilivyosema, arrays katika JSON ni aina amefungwa, 69 00:03:43,420 --> 00:03:46,400 hivyo tunaweza pia kuwa string hapa, ambayo ni hi, 70 00:03:46,400 --> 00:03:49,330 na kwamba ni mwingine kipengele cha safu hiyo. 71 00:03:49,330 --> 00:03:53,450 Na vivyo hivyo, tunaweza kuongeza hashmapping hapa, ambayo ni kwenda na upangaji chache. 72 00:03:53,450 --> 00:04:00,470 Ni kwenda na ramani kutoka kwa jina Billy kamba. 73 00:04:00,470 --> 00:04:04,590 Tuna ramani kutoka kwa jina Billy, na tuna ramani ya 74 00:04:04,590 --> 00:04:10,860 favorite rangi ya bluu. 75 00:04:10,860 --> 00:04:12,700 Hiyo ni kimsingi mfano mzuri wa JSON. 76 00:04:12,700 --> 00:04:18,160 Ni aina ya anapata katika-Whoops, haja comma kuna-aina ya sehemu mbalimbali ya hiyo. 77 00:04:18,160 --> 00:04:21,140 Tena, siyo aina amefungwa wakati wote, hivyo unaweza kuwa na aina yoyote ya aina ya 78 00:04:21,140 --> 00:04:24,710 ndani ya kitu chochote unataka, na wazo ni ni self-sawa. 79 00:04:24,710 --> 00:04:28,830 Kwa maneno mengine, haki hii hapa ni kitu JSON, kama ni jambo hili zima, 80 00:04:28,830 --> 00:04:33,200 kama ni tu hii, hivyo unaweza kuwa na mali kuwa kitu, 81 00:04:33,200 --> 00:04:35,680 safu kuwa kitu au hashmap kuwa kitu. 82 00:04:35,680 --> 00:04:40,270 >> Kama unaweza aina ya kuona, JSON ni kweli, kweli muhimu katika kuwa ni hivyo versatile. 83 00:04:40,270 --> 00:04:45,860 Unaweza kuwa na data yoyote inawezekana kwamba unaweza mimba kuhifadhiwa katika JSON. 84 00:04:45,860 --> 00:04:47,900 Kwamba inafanya lugha nzuri kwa kweli kutumia na APIs 85 00:04:47,900 --> 00:04:50,770 kwa sababu ni kiasi pretty ina maana kwamba hakuna jambo gani data ambayo unataka 86 00:04:50,770 --> 00:04:54,270 kuna kwenda kuwa baadhi ya njia ya kupata nyuma katika JSON. 87 00:04:54,270 --> 00:04:58,600 mali chache kwamba kufanya JSON hasa nzuri kwa aina hii ya kitu. 88 00:04:58,600 --> 00:05:02,270 Kama unaweza kuona, ikilinganishwa na mambo mengi ambayo tumekuwa kazi na katika CS50 89 00:05:02,270 --> 00:05:06,040 ni comparatively rahisi sana kusoma na pia rahisi sana kuandika. 90 00:05:06,040 --> 00:05:09,700 Unaweza Indent nje kama unataka, kama mimi alikuwa akifanya katika mfano kwamba, 91 00:05:09,700 --> 00:05:12,990 ambayo inakupa nice, pretty toleo kwamba unaweza kuona vizuri. 92 00:05:12,990 --> 00:05:17,150 Lakini zaidi ya hayo, pia ni rahisi kusoma na kuandika kwa ajili ya kompyuta. 93 00:05:17,150 --> 00:05:19,870 Kwa maneno mengine, ni rahisi kupambanua na rahisi encode, 94 00:05:19,870 --> 00:05:23,820 ambayo ina maana kwamba ni pretty kufunga mbali kama kusoma data ni wasiwasi, 95 00:05:23,820 --> 00:05:26,460 na JSON unaweza kuzalishwa kweli haraka. 96 00:05:26,460 --> 00:05:30,300 >> Ni pia ni rahisi sana kupata sehemu mbalimbali za JSON na kwamba aina ya kitu. 97 00:05:30,300 --> 00:05:33,320 Hiyo ni nzuri, na zaidi ya hapo, ukweli kwamba ni self-sawa, 98 00:05:33,320 --> 00:05:36,090 kwa maneno mengine, ukweli kwamba unaweza kuwa na JSON ndani ya JSON ndani ya JSON 99 00:05:36,090 --> 00:05:40,040 ni nzuri kwa kweli kwa ajili ya kuhifadhi data. 100 00:05:40,040 --> 00:05:45,490 Sehemu nyingine ambayo ni muhimu kweli kweli kwa ujumla katika kufanya kazi na APIs ni jQuery. 101 00:05:45,490 --> 00:05:49,290 Wewe wameweza kujifunza kidogo ya JavaScript, ambayo ni njia nzuri 102 00:05:49,290 --> 00:05:53,710 kuendesha HTML na CSS ndani ya tovuti. 103 00:05:53,710 --> 00:05:57,190 Lakini unaweza aina ya kuwa maumivu kwa kificho katika JavaScript wazi, 104 00:05:57,190 --> 00:05:59,810 kiasi kikubwa kwa sababu JavaScript ni kweli verbose lugha. 105 00:05:59,810 --> 00:06:03,020 Inakubidi kujifunza mengi ya kisintaksia, na tu kufanya mambo rahisi sana 106 00:06:03,020 --> 00:06:07,590 inachukua mengi ya kificho, hivyo jQuery ni maktaba kwa JavaScript. 107 00:06:07,590 --> 00:06:09,800 Kwa maneno mengine, ni faili JavaScript kwamba unaweza kupakia 108 00:06:09,800 --> 00:06:12,730 na kisha kutumia kazi jQuery kufanya mambo fulani. 109 00:06:12,730 --> 00:06:15,670 Na jQuery kimsingi inafanya maisha yako mengi yote rahisi. 110 00:06:15,670 --> 00:06:20,390 Ni simplifies gani kuchukua mamia ya mistari katika JavaScript chini mistari michache katika jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Ni muhimu hasa kama wewe ni kutumia APIs kwa sababu kwa ujumla 112 00:06:24,430 --> 00:06:27,600 jinsi wewe utakuwa kupata APIs ni kwa kufanya maombi ya AJAX, 113 00:06:27,600 --> 00:06:30,130 na naamini Daudi ametaja katika hotuba kwamba AJAX maombi 114 00:06:30,130 --> 00:06:33,120 ujumla wakati wewe ni kufanya ombi la mtandao kwa baadhi ya aina ya seva 115 00:06:33,120 --> 00:06:37,760 na kupata nyuma baadhi ya aina ya data na uppdatering ukurasa mara moja. 116 00:06:37,760 --> 00:06:41,840 Wakati katika JavaScript wazi kwamba ingekuwa kuchukua namba mambo ya mistari 117 00:06:41,840 --> 00:06:44,620 kuhalalisha yote ya headers na kufanya yote ya kwamba aina ya mambo, 118 00:06:44,620 --> 00:06:46,810 jQuery ina kazi kweli rahisi kuitwa AJAX, 119 00:06:46,810 --> 00:06:51,760 na wote una kufanya katika AJAX ni kutoa vigezo kwamba unataka kutoa API, 120 00:06:51,760 --> 00:06:56,830 eneo la API na aina yoyote ya ziada ya chaguzi kwamba unataka configure. 121 00:06:56,830 --> 00:07:02,480 Ni kweli, kweli nzuri na muhimu sana kwa ajili ya aina hii ya kitu. 122 00:07:02,480 --> 00:07:06,970 Hayo ni yote tunahitaji kuanza kupata mikono yetu chafu katika APIs. 123 00:07:06,970 --> 00:07:10,220 >> Mimi naenda kuleta mifano michache na kuchunguza mali zao mbalimbali 124 00:07:10,220 --> 00:07:13,150 na kwa nini wao uko muhimu kwa ajili ya aina tofauti ya mambo. 125 00:07:13,150 --> 00:07:15,570 Jambo la kwanza mimi itabidi kweli kuonyesha ni kitu ambacho mimi nina kazi ya 126 00:07:15,570 --> 00:07:18,310 katika utafiti maabara yangu, ambayo ni mtazamaji Ngram, 127 00:07:18,310 --> 00:07:23,270 na kimsingi wazo la mtazamaji Ngram ni unaweza kutafuta aina fulani ya neno 128 00:07:23,270 --> 00:07:28,840 au maneno na kuona jinsi mara nyingi ni alionekana katika kuweka baadhi ya maandishi juu ya muda. 129 00:07:28,840 --> 00:07:33,160 Hii mfano hapa ni kuweka hii data ya watoto 130 00:07:33,160 --> 00:07:36,480 kwamba walizaliwa katika New York kati ya 1920 na 2000. 131 00:07:36,480 --> 00:07:40,090 Tunaweza kutafuta, kwa mfano, kwa jina Jennifer, 132 00:07:40,090 --> 00:07:44,400 na sisi kuona kwamba kabla ya miaka ya 1960, ni kweli alikuwa hatumiki kiasi kwamba wote, 133 00:07:44,400 --> 00:07:48,900 na kisha kama sisi kupata katika miaka ya baadaye ni akikosa hutumiwa zaidi na zaidi. 134 00:07:48,900 --> 00:07:53,680 Tunaweza pia kufanya kulinganisha, hivyo kama sisi kulinganisha Jennifer, kwa mfano, Thomas, 135 00:07:53,680 --> 00:07:56,520 tunaweza kuona Thomas imekuwa pretty imefikia katika historia, 136 00:07:56,520 --> 00:07:58,780 ambapo Jennifer ni jina zaidi ya hivi karibuni. 137 00:07:58,780 --> 00:08:00,590 Tunaweza kufanya jambo la aina hiyo. 138 00:08:00,590 --> 00:08:02,460 >> Jinsi gani hii ya maombi ya kazi? 139 00:08:02,460 --> 00:08:06,030 Kimsingi, ni kazi kupitia API. 140 00:08:06,030 --> 00:08:08,660 Kwa maneno mengine, tuna vigezo fulani hapa. 141 00:08:08,660 --> 00:08:11,360 Tuna vigezo ya tulichokuwa kwa ajili ya kutafuta, 142 00:08:11,360 --> 00:08:13,720 ambayo ni majina haya, na kisha tuna chache mali nyingine, 143 00:08:13,720 --> 00:08:16,570 kama mhimili Y na mhimili X. 144 00:08:16,570 --> 00:08:18,440 Unaweza kuona tuna wachache chaguzi mbalimbali mbali kama 145 00:08:18,440 --> 00:08:20,860 wakati azimio kutumia na aina ya kitu. 146 00:08:20,860 --> 00:08:26,700 Sisi na chaguzi hizi mbali kama kile data sisi kweli unataka kutoka orodha, 147 00:08:26,700 --> 00:08:29,400 na tunataka kupata data kwamba nyuma katika baadhi ya njia muhimu. 148 00:08:29,400 --> 00:08:34,020 Kwa kawaida, kama sisi walikuwa querying database moja kwa moja itakuwa ya aina ya kuwa maumivu ya kufanya 149 00:08:34,020 --> 00:08:38,970 kwa sababu hii huenda ikatengeneza data kuhusu majina ya mtoto anaishi katika database baadhi mahali fulani, 150 00:08:38,970 --> 00:08:42,789 na itakuwa ngumu kweli kuwa na swala hilo manually 151 00:08:42,789 --> 00:08:45,830 na kuamua nini hasa data kurudi. 152 00:08:45,830 --> 00:08:49,300 Kwa maneno mengine, sisi tu huduma ya juu Jennifer na Thomas katika kesi hii, 153 00:08:49,300 --> 00:08:53,410 na sisi tu huduma ya juu kwenye mhimili mmoja na yote ya kwamba aina ya mambo ya ajabu. 154 00:08:53,410 --> 00:08:55,720 >> Jinsi gani sisi kupata kote hii? 155 00:08:55,720 --> 00:09:01,200 Kuchimba ndani ya API hii kidogo zaidi nitawaonyesheeni mfano mwingine wa jukwaa hili 156 00:09:01,200 --> 00:09:04,490 ambayo inatumia data tofauti kidogo ya kuweka. 157 00:09:04,490 --> 00:09:09,950 Hii seti data, badala ya kuwa mtoto majina, ni kweli tu nzima 158 00:09:09,950 --> 00:09:12,460 magazeti ya uchapishaji database ya Maktaba Open, 159 00:09:12,460 --> 00:09:18,410 ambayo ni chanzo kubwa ya maandiko ya kuchapishwa katika miaka 100 iliyopita au hivyo. 160 00:09:18,410 --> 00:09:23,540 wazo ni sisi kuwa hii compository ya mamilioni na mamilioni ya maandishi, 161 00:09:23,540 --> 00:09:27,420 ambayo sasa tunaweza kutafuta maneno tofauti na misemo in 162 00:09:27,420 --> 00:09:30,840 Hapa ni mfano kwamba hutofautiana kidogo tofauti na mfano uliopita 163 00:09:30,840 --> 00:09:33,350 Nilikuonyeshea, ambayo ni sisi kuwa haya maswali tafuta 3, 164 00:09:33,350 --> 00:09:36,290 vita, vita, na neno la Kifaransa kwa vita, ambayo ni guerre. 165 00:09:36,290 --> 00:09:40,380 Na sisi ni kutafuta ndani ya sehemu 3 tofauti ya database jumla. 166 00:09:40,380 --> 00:09:45,080 Kwa maneno mengine, katika hoja hii ya kwanza tuko tu kutafuta katika Marekani, 167 00:09:45,080 --> 00:09:51,150 katika moja ya pili tu katika Uingereza, na ya tatu tu kutokana na matendo kuchapishwa katika Ufaransa. 168 00:09:51,150 --> 00:09:53,120 Tunaona baadhi mifumo ya kuvutia kuibuka. 169 00:09:53,120 --> 00:09:58,180 Kwa mfano, tunaona haki kote hapa ambayo- 170 00:09:58,180 --> 00:10:02,410 oops, mimi messed up mhimili kidogo, lakini unaweza kuona haki katika mbalimbali huu hapa 171 00:10:02,410 --> 00:10:05,730 kuzunguka vita vya kiraia kuna Mwiba kubwa katika toleo la Marekani 172 00:10:05,730 --> 00:10:08,340 lakini si vile Mwiba kubwa katika watu wengine wawili, na kwamba ni wazi kwa sababu 173 00:10:08,340 --> 00:10:10,880 American Civil War kilichojitokeza katika hatua hiyo. 174 00:10:10,880 --> 00:10:13,890 >> Tunaweza kuona baadhi ya mambo ya baridi huko, 175 00:10:13,890 --> 00:10:17,070 lakini kile sisi kweli huduma kuhusu ni jinsi gani sisi got data hii. 176 00:10:17,070 --> 00:10:21,320 Nitachukua wewe nyuma ya pazia katika programu hii katika kidogo. 177 00:10:21,320 --> 00:10:24,540 hila nadhifu ni kama wewe ni kufanya kazi na tovuti na aina ya kutaka kujua 178 00:10:24,540 --> 00:10:27,430 nini kinaendelea nyuma ya pazia, unaweza kufungua zana developer. 179 00:10:27,430 --> 00:10:30,200 Mimi nina kwenda kuwa na kutumia zana developer Chrome, na kupata kwa wale 180 00:10:30,200 --> 00:10:35,160 unaweza kufanya kudhibiti, kuhama, J, na kwamba inachukua wewe console JavaScript. 181 00:10:35,160 --> 00:10:37,420 Kuna tabo chache hapa. 182 00:10:37,420 --> 00:10:39,680 Wanaweza wote kuwa pretty muhimu chini ya mazingira tofauti, lakini mimi huduma kuhusu mtandao 183 00:10:39,680 --> 00:10:44,150 tab sasa hivi, na mimi kweli kuwa na kupata mahitaji ya kupata kazi. 184 00:10:44,150 --> 00:10:50,180 Oh, sorry. 185 00:10:50,180 --> 00:10:52,320 Ni anapenda kutoa mfano random. 186 00:10:52,320 --> 00:10:54,700 Okay, tutaweza kutumia mfano badala basi. 187 00:10:54,700 --> 00:11:01,330 >> Wazo ni kuna API hii hapa, 188 00:11:01,330 --> 00:11:05,330 na unaweza kuona hasa nini API ni kurudi. 189 00:11:05,330 --> 00:11:10,220 Hii ni nini maombi ni kupata nyuma kutoka API na kupeleka ombi hilo. 190 00:11:10,220 --> 00:11:13,680 Hebu zoom katika kidogo, 191 00:11:13,680 --> 00:11:18,340 na tunaweza kuona kimsingi ni tu mfululizo wa jozi ufunguo thamani katika JSON. 192 00:11:18,340 --> 00:11:23,220 Kwa maneno mengine, tuna hii hashmap hapa hiyo ramani ya maadili. 193 00:11:23,220 --> 00:11:26,440 Kwa maneno mengine, ni ramani ya miaka kwa maadili. 194 00:11:26,440 --> 00:11:32,600 Katika 1765 chochote neno sisi awali searched kwa limetumika mara 90 195 00:11:32,600 --> 00:11:35,810 nje ya milioni 1, hivyo sisi ni kupata nyuma matokeo haya. 196 00:11:35,810 --> 00:11:40,280 Ni si hasa JSON tangu tuna hiki kidogo matokeo header hapa, 197 00:11:40,280 --> 00:11:45,630 lakini taarifa kwamba hii kitu nzima hapa ni kubwa tu kubwa JSON Blob. 198 00:11:45,630 --> 00:11:51,070 Tuna safu hapa ambayo ina kipengele hii nzima, 199 00:11:51,070 --> 00:11:55,590 na unaweza kuona kwamba kipengele nzima inaishia hapo, na kisha sisi kuwa na mwingine kipengele kubwa 200 00:11:55,590 --> 00:11:59,430 kwamba huenda njia yote chini hadi mwisho, na kwamba mwisho hapa. 201 00:11:59,430 --> 00:12:02,200 Tuna safu kubwa kweli kweli na vitu 2 ndani yake, 202 00:12:02,200 --> 00:12:04,630 na kila moja ya vitu ni wale hashmap. 203 00:12:04,630 --> 00:12:07,340 Unaweza kuona ndani ya kila mmoja wa wale hashmaps tuna ramani 204 00:12:07,340 --> 00:12:12,700 ya thamani hii index 0 na thamani thamani hii kwa hashmap mwingine, 205 00:12:12,700 --> 00:12:18,360 ambayo tena ni ramani ya maadili mhimili X na maadili Y mhimili. 206 00:12:18,360 --> 00:12:20,970 >> Unaweza kuona JSON anapata kidogo kidogo ngumu, lakini kwa ujumla, 207 00:12:20,970 --> 00:12:24,190 ni kweli muhimu sana, na ni rahisi sana kupata ikilinganishwa na 208 00:12:24,190 --> 00:12:27,390 nyingine aina tofauti ya nukuu. 209 00:12:27,390 --> 00:12:30,550 Mbali kama tulichokuwa kutuma data kwa API kupata, 210 00:12:30,550 --> 00:12:34,690 Mimi nina kwenda ndani ya mwisho nyuma kidogo hapa. 211 00:12:34,690 --> 00:12:39,850 Hii ni kubwa JavaScript faili hiyo utunzaji wote wa mwingiliano wa programu ya mtandao, 212 00:12:39,850 --> 00:12:44,810 na hivyo sisi hawajali zaidi ya hii, lakini sisi kufanya huduma kuhusu baadhi ya hiyo. 213 00:12:44,810 --> 00:12:47,410 Kwa mfano, sisi huduma kuhusu kazi hii buildQuery, 214 00:12:47,410 --> 00:12:50,670 na wazo la kazi hii ni kimsingi ni kuangalia karibu ukurasa, 215 00:12:50,670 --> 00:12:53,750 kuhesabia nje nini user anataka swala, kwa maneno mengine, 216 00:12:53,750 --> 00:12:57,090 kuangalia masanduku hayo ambapo wameweza pembejeo tafuta masharti yao, 217 00:12:57,090 --> 00:13:01,380 kuangalia Y tofauti na maadili ya X mhimili kwamba wameweza waliochaguliwa na wote wa aina ya kitu, 218 00:13:01,380 --> 00:13:06,650 na ni kwenda mate nje thamani hii swala, ambayo siwezi kisha kutuma mbali na API. 219 00:13:06,650 --> 00:13:09,180 >> Hii inaonekana ngumu, na ni pretty ngumu 220 00:13:09,180 --> 00:13:18,090 lakini kile nitakacho kufanya-kwa kweli, mimi niko tayari kufanya hii, ambayo ni kubwa- 221 00:13:18,090 --> 00:13:21,640 ni kwamba mimi nina kwenda kupata console wa magazeti nje hasa kwamba swala thamani 222 00:13:21,640 --> 00:13:28,110 kwamba ni kutuma mbali na API. 223 00:13:28,110 --> 00:13:30,870 Hiyo ni kweli haki hapa. Samahani, ni matokeo ya mambo mengi. 224 00:13:30,870 --> 00:13:33,690 Lakini hii ni nini sisi huduma ya juu, hii kitu hapa hapa. 225 00:13:33,690 --> 00:13:35,300 Hii ni kitu swala. 226 00:13:35,300 --> 00:13:40,670 Kwa maneno mengine, hii ni nini hasa maombi ya mtandao ni kutuma kwa API, 227 00:13:40,670 --> 00:13:45,730 na hivyo hebu angalia ndani ya kidogo kidogo, na sisi kuona tuna maadili chache hapa. 228 00:13:45,730 --> 00:13:48,710 Sisi tunaona tuna aina hii kuhesabu, ambayo ni matukio kwa maneno milioni, 229 00:13:48,710 --> 00:13:51,460 ambayo ni hasa kile ambacho tumekuwa wateule katika mhimili Y zaidi ya hapa. 230 00:13:51,460 --> 00:13:53,740 Hiyo ambapo ule unaokuja kutoka. 231 00:13:53,740 --> 00:13:58,010 Tuna thamani database, ambayo ina maana kwamba kuna baadhi ya database fulani 232 00:13:58,010 --> 00:14:01,610 kuwa data hii ni wanaoishi katika, na tunataka kupata data kwamba hasa 233 00:14:01,610 --> 00:14:04,950 kinyume na mtoto data majina, kwa mfano. 234 00:14:04,950 --> 00:14:08,320 Basi tuna thamani hii, vikundi 235 00:14:08,320 --> 00:14:12,090 ambayo ni kusema kwamba tunataka kutafuta kwa mwaka kama kinyume na 236 00:14:12,090 --> 00:14:16,030 nyingine yoyote X mhimili thamani. 237 00:14:16,030 --> 00:14:19,040 Basi tuna mbinu, ambayo baadhi APIs kufanya mambo mbalimbali. 238 00:14:19,040 --> 00:14:22,360 Kwa maneno mengine, hii inaweza pia API kurudi aina nyingine ya data, 239 00:14:22,360 --> 00:14:27,740 lakini katika kesi hii, tunataka kuwa ramani ya maadili mhimili X na maadili Y mhimili. 240 00:14:27,740 --> 00:14:30,730 Hiyo ni nini anayekuambia ni kufanya huko, 241 00:14:30,730 --> 00:14:35,020 na tuna mipaka tafuta hii safu, ambayo ina maadili 2. 242 00:14:35,020 --> 00:14:40,720 moja ya kwanza ni kile sisi kuona hapa, ambayo ni aina ya maadili 243 00:14:40,720 --> 00:14:43,020 zilizomo ndani ya sanduku kwamba kwanza kidogo kwa juu. 244 00:14:43,020 --> 00:14:47,570 >> Kwa maneno mengine, tunataka kuangalia neno kwa ajili ya vita, na tunataka kwa chujio ni 245 00:14:47,570 --> 00:14:51,920 na maandiko ya Kiingereza katika fasihi ya Marekani. 246 00:14:51,920 --> 00:14:54,590 Tuna nchi hii, ambayo ni Marekani. 247 00:14:54,590 --> 00:14:59,130 Tuna lugha, ambayo ni lugha ya Kiingereza, hivyo tuna aina ya sehemu hizi tofauti 248 00:14:59,130 --> 00:15:02,690 kuwa ni wote kuwaambia API nini hasa tunataka. 249 00:15:02,690 --> 00:15:04,940 Hatujui nini data kwamba sisi kupata nyuma ni bado, 250 00:15:04,940 --> 00:15:10,970 lakini tunajua kwamba data ni kwenda kuchukua fomu fulani. 251 00:15:10,970 --> 00:15:13,650 Mfano huu ni aina ya upande ngumu, 252 00:15:13,650 --> 00:15:16,180 na wewe ingekuwa si lazima kutumia API hii tata, 253 00:15:16,180 --> 00:15:20,600 lakini hii ni kuonyesha wewe mbalimbali na nguvu ya kile APIs wanaweza kufanya. 254 00:15:20,600 --> 00:15:24,980 Kwa maneno mengine, kwa kutumia mfumo rahisi swala sisi kimsingi kuwa sanduku pembejeo 255 00:15:24,980 --> 00:15:29,490 na wachache selectors nyingine katika maeneo mbalimbali. 256 00:15:29,490 --> 00:15:32,010 >> Hebu zoom nyuma nje hapa. 257 00:15:32,010 --> 00:15:37,720 Tuna sanduku pembejeo na uchaguzi wachache tofauti metadata, 258 00:15:37,720 --> 00:15:40,610 na tuna Y mhimili na uchaguzi X mhimili. 259 00:15:40,610 --> 00:15:42,830 Sisi si kweli kuwa mashamba ya kwamba wengi, 260 00:15:42,830 --> 00:15:46,210 na tunaweza kuona kwa urahisi sana sisi ni uwezo wa swala aina fulani ya API 261 00:15:46,210 --> 00:15:48,510 na kupata data nyuma na kisha kuiweka katika chati hii, 262 00:15:48,510 --> 00:15:52,080 ambayo ni kisha kwenda kuonyesha ni katika njia muhimu. 263 00:15:52,080 --> 00:15:54,970 Kuangalia mfano mwingine kwamba inaweza kuwa kidogo zaidi ya ukoo na nyie 264 00:15:54,970 --> 00:15:56,510 tunakwenda kurejea kwa kuungana. 265 00:15:56,510 --> 00:15:59,440 API Facebook inaitwa Graph Facebook, 266 00:15:59,440 --> 00:16:04,390 na kimsingi kile kwamba maana ni Facebook anaona yenyewe kama database huu mkubwa 267 00:16:04,390 --> 00:16:08,000 ya kura ya sehemu mbalimbali kwamba wote wana uhusiano fulani kwa kila mmoja. 268 00:16:08,000 --> 00:16:11,070 Kwa maneno mengine, mimi nina mtumiaji kwenye Facebook, hivyo nina profile, 269 00:16:11,070 --> 00:16:14,310 na mimi pia kuwa na marafiki fulani, na kila mmoja wao ana profile, 270 00:16:14,310 --> 00:16:17,580 na kila mmoja wa rafiki yangu ana ukuta, ambayo ina maoni tofauti juu yake, 271 00:16:17,580 --> 00:16:20,800 na kila mmoja wa wale ana maoni likes na wote wa aina ya kitu. 272 00:16:20,800 --> 00:16:23,100 >> Kuna kura ya sehemu mbalimbali kwa Facebook. 273 00:16:23,100 --> 00:16:26,670 Ni API hugely tata, na kuna tani unaweza kufanya na hayo, 274 00:16:26,670 --> 00:16:28,450 lakini ni kweli pretty rahisi kutumia. 275 00:16:28,450 --> 00:16:33,680 Mimi naenda kuanza nje kwa kwenda graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 ambayo ni akaunti yangu ya kipekee jina, na akaunti yako jina ama kuwa 277 00:16:38,430 --> 00:16:43,710 baadhi ya aina ya neno kama umechagua, au ni ili tu kuwa string wa idadi. 278 00:16:43,710 --> 00:16:46,360 Nini sisi kupata nyuma ni pretty msingi habari. 279 00:16:46,360 --> 00:16:50,460 Tunaona kwamba nina jina la kwanza, ambayo ni Billy, jina la mwisho, ambayo ni Janitsch. 280 00:16:50,460 --> 00:16:53,370 Kuna kipekee Facebook ID niliyo nayo. 281 00:16:53,370 --> 00:16:57,920 Unaweza kuona kwamba mimi nina kiume na kwamba nina lugha yangu ya kuweka 282 00:16:57,920 --> 00:17:01,290 kwa Waingereza ya Kiingereza. 283 00:17:01,290 --> 00:17:03,490 Kwa maneno mengine, sisi ni kuona msingi sana habari hapa. 284 00:17:03,490 --> 00:17:08,670 Ni si sana, lakini haina kutupa wazo la nini huko. 285 00:17:08,670 --> 00:17:10,849 >> Tunaweza kufanya kitu kimoja kwa Daudi Malan, kwa mfano. 286 00:17:10,849 --> 00:17:13,599 Nadhani jina lake ni dmalan. 287 00:17:13,599 --> 00:17:16,369 Tunaona Daudi Malan ana ID kipekee. 288 00:17:16,369 --> 00:17:19,300 Yeye ana jina, jina la kwanza, kati jina, jina la mwisho. 289 00:17:19,300 --> 00:17:24,210 Tunaona pia kwamba yeye ni wa kiume na ina lugha yake kuweka Marekani Kiingereza. 290 00:17:24,210 --> 00:17:26,869 Kwa maneno mengine, sisi ni kuona pretty msingi habari hapa. 291 00:17:26,869 --> 00:17:28,860 Sasa, nini kitatokea kama sisi kujaribu kuangalia nje kitu kingine? 292 00:17:28,860 --> 00:17:33,060 Hebu sema mimi nina nia ya kile Daudi Malan ina walipenda juu ya kuungana. 293 00:17:33,060 --> 00:17:36,860 Naweza kufanya / anapenda. Sasa tumekuwa kukimbia katika tatizo. 294 00:17:36,860 --> 00:17:39,280 Sisi tumepewa baadhi ya aina ya makosa kwamba anasema ishara upatikanaji 295 00:17:39,280 --> 00:17:41,660 anahitajika kuomba rasilimali hii. 296 00:17:41,660 --> 00:17:44,730 Lakini kama wewe kufikiri juu yake, kwamba kwa kweli inafanya hisia kwa sababu itakuwa ni weird 297 00:17:44,730 --> 00:17:47,830 kama unaweza kupata kila sehemu moja ya database Facebook 298 00:17:47,830 --> 00:17:50,170 tu kutoka kwa baadhi ya aina ya API rahisi, sawa? 299 00:17:50,170 --> 00:17:56,040 Kwa maneno mengine, labda taarifa yako hayawezi kupatikana kwa mtu yeyote ambaye anataka. 300 00:17:56,040 --> 00:17:58,330 >> Kosa hili ni just nini maana ya. 301 00:17:58,330 --> 00:18:03,630 APIs baadhi ya kuhitaji ruhusa fulani ili kupata data zao. 302 00:18:03,630 --> 00:18:06,940 Na hata zaidi ya juu APIs, kama Facebook moja, 303 00:18:06,940 --> 00:18:09,840 itahitaji idhini fulani kufanya mambo fulani. 304 00:18:09,840 --> 00:18:12,650 Mimi naona hii taarifa za msingi kuhusu Daudi Malan. 305 00:18:12,650 --> 00:18:15,950 Mimi naona kwamba yeye ni wa kiume na kwamba anaishi nchini Marekani, 306 00:18:15,950 --> 00:18:19,270 lakini siwezi kuona kitu zamani hizo. 307 00:18:19,270 --> 00:18:23,050 Ili kupata karibu hii kwa sasa, Facebook ina zana hii nzuri 308 00:18:23,050 --> 00:18:27,690 ambayo ni graph API Explorer, na wazo la kwamba ni unaweza aina ya 309 00:18:27,690 --> 00:18:31,880 kufanya juu ya ruhusa kwa ajili ya wewe mwenyewe kwa kuzingatia akaunti yako mwenyewe 310 00:18:31,880 --> 00:18:35,680 na kisha kuona mambo ambayo hasa akaunti yako unaweza kuona. 311 00:18:35,680 --> 00:18:45,120 Kwa mfano, kama mimi kufanya graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Whoops, mimi nadhani kuwa kwa revalidate ishara wangu hapa. 313 00:18:53,510 --> 00:18:55,950 Sawa. 314 00:18:55,950 --> 00:19:01,740 Kama mimi kufanya hivyo tena, kubwa, na sasa naona kwamba mimi kupata hii kitu nyuma 315 00:19:01,740 --> 00:19:06,300 ambayo inasema kwamba mimi kama noodles bwawa, ambayo ni katika Michezo ya jamii na Toys. 316 00:19:06,300 --> 00:19:08,620 Mimi kama walruses, ambayo ni katika wanyama jamii. 317 00:19:08,620 --> 00:19:10,180 Hizi ni Facebook yangu halisi anapenda. 318 00:19:10,180 --> 00:19:13,280 Wao ni aina ya aibu. 319 00:19:13,280 --> 00:19:16,090 >> Lakini tunaweza kuona data hii yote ni alirudi JSON. 320 00:19:16,090 --> 00:19:18,160 Ni pretty someka. 321 00:19:18,160 --> 00:19:20,970 Kwa maneno mengine, tuna hii ramani ya data kwa baadhi ya aina ya safu, 322 00:19:20,970 --> 00:19:25,220 na kila kipengele cha safu hii ni hashmap ambayo ramani 323 00:19:25,220 --> 00:19:28,530 jina ya kama na jamii ya kama. 324 00:19:28,530 --> 00:19:31,240 Kila kama ana ID kipekee. 325 00:19:31,240 --> 00:19:34,510 Kuna kila aina ya mambo tofauti ya data kwamba tunaweza kupata, 326 00:19:34,510 --> 00:19:37,980 na kama wewe ni nia ya kutumia API Facebook kwa ajili ya mradi CS50 mwisho 327 00:19:37,980 --> 00:19:40,720 au kwa ajili ya jambo kama hilo ni kweli kabisa doable. 328 00:19:40,720 --> 00:19:44,260 Kimsingi jinsi ya kupata kuzunguka kitu uthibitishaji ni Facebook 329 00:19:44,260 --> 00:19:48,030 anatumia mfumo uitwao OAuth, au Uthibitishaji Open, 330 00:19:48,030 --> 00:19:52,870 na mimi sitaki kupata ndani yake kwa sababu sasa OAuth au aina tofauti 331 00:19:52,870 --> 00:19:56,060 ya uthibitishaji huelekea kutofautiana mengi kati ya APIs mbalimbali, 332 00:19:56,060 --> 00:19:58,320 ili niweze kutumia muda mrefu kwenda juu ya kila mmoja, 333 00:19:58,320 --> 00:20:01,170 lakini wao ni kweli pretty binafsi maelezo. 334 00:20:01,170 --> 00:20:04,050 >> Kama Google Facebook API ni sana someka. 335 00:20:04,050 --> 00:20:06,670 Kuna spec nzima. 336 00:20:06,670 --> 00:20:10,210 Kwa mfano, hii ni nyaraka kwa ajili ya API Facebook, 337 00:20:10,210 --> 00:20:14,170 na unaweza kuona mimi niko kwenye ukurasa mtumiaji, hivyo naweza kujifunza wote kuhusu aina mbalimbali ya mambo 338 00:20:14,170 --> 00:20:17,170 ambayo inapatikana kwa kupata data mbali kama 339 00:20:17,170 --> 00:20:21,550 na pia ruhusa tofauti kwamba mimi haja ili kuzipata. 340 00:20:21,550 --> 00:20:25,470 Kama tulivyoona, hatuna haja ya ruhusa ya kupata jina au jinsia, 341 00:20:25,470 --> 00:20:29,380 lakini zaidi kwamba sisi tunahitaji ruhusa kwa mambo mengi. 342 00:20:29,380 --> 00:20:33,040 Hii ukurasa, au tuseme, tovuti hii pia kukuambia jinsi ya kupata 343 00:20:33,040 --> 00:20:35,640 ishara kuwa na uwezo wa kuthibitisha mwenyewe. 344 00:20:35,640 --> 00:20:39,290 Wengi uthibitishaji mifumo kutumia aina fulani ya ishara 345 00:20:39,290 --> 00:20:42,880 ambapo unaweza kupata thamani hii ya kipekee, ambayo ni string kweli kwa muda mrefu na random, 346 00:20:42,880 --> 00:20:46,240 na njia ambazo zinaweza kuhusisha ombi kwamba wewe ni kufanya na wewe. 347 00:20:46,240 --> 00:20:50,560 Kwa maneno mengine, wao wanajua kwamba wewe si kufanya kitu chochote tuhuma na data zao. 348 00:20:50,560 --> 00:20:53,340 Wao kujua hasa ni nini wewe ni kupata. 349 00:20:53,340 --> 00:20:56,180 Wao pia kujua kuwa una ruhusa ya kuona kwamba habari. 350 00:20:56,180 --> 00:20:59,110 >> Kama umefanya programu Facebook na programu yako ina watumiaji fulani, 351 00:20:59,110 --> 00:21:03,380 na wale watumiaji na kuruhusiwa kwamba programu kufikia baadhi ya maeneo ya profile zao, 352 00:21:03,380 --> 00:21:07,790 ndipo kila API muhimu au ishara kwamba App kwamba ni kwa kutumia 353 00:21:07,790 --> 00:21:11,090 itakuwa na uwezo wa kupata data kwa watumiaji hao. 354 00:21:11,090 --> 00:21:13,780 Hii inaweza kuwa inasikika ngumu, lakini si mbaya sana, 355 00:21:13,780 --> 00:21:16,810 na kama unataka kutumia Facebook Napenda sana kupendekeza kwamba 356 00:21:16,810 --> 00:21:18,990 kufikiria kucheza karibu na API yao. 357 00:21:18,990 --> 00:21:21,610 Ni baridi sana, na unaweza kufanya mambo mengi tofauti na hayo. 358 00:21:21,610 --> 00:21:24,880 Kama mtumiaji misaada wewe ruhusa hizi unaweza hata kwenda nyuma API 359 00:21:24,880 --> 00:21:28,820 na kusema nataka kweli post ukuta huu wa mtumiaji, au nataka kuwa nao baada ya picha, 360 00:21:28,820 --> 00:21:32,390 na kwamba ni kwa nini juu ya habari kulisha yako utasikia wakati mwingine kupata mambo wale annoying 361 00:21:32,390 --> 00:21:37,840 akisema rafiki yako ina watched hii video juu ya baadhi ya aina ya tovuti weird au kitu kama hicho. 362 00:21:37,840 --> 00:21:43,120 Hiyo ni kwa sababu programu kwamba amepewa upatikanaji post juu ya ukuta kwamba mtu. 363 00:21:43,120 --> 00:21:48,350 wazo la jumla, API Facebook ni pretty ngumu lakini pia muhimu kweli kweli. 364 00:21:48,350 --> 00:21:53,220 Dhahiri thamani ya kuangalia nje kama wewe ni bado kuangalia kwa ajili ya mradi wa mwisho. 365 00:21:53,220 --> 00:21:57,930 >> Mwingine Suite ya APIs kwamba mimi nina kwenda juu ni CS50 APIs. 366 00:21:57,930 --> 00:22:00,070 Hebu zoom katika hapa. 367 00:22:00,070 --> 00:22:03,390 CS50 ina kweli kuweka pamoja mfululizo mzima wa APIs 368 00:22:03,390 --> 00:22:07,080 kwamba unaweza kutumia kwa ajili ya mradi wa mwisho au tu kwa ajili ya kitu chochote kwamba wewe ni maamuzi. 369 00:22:07,080 --> 00:22:12,830 Na wao ni zaidi ya Harvard kuhusiana, na wao kutofautiana kutoka menu HUDS, 370 00:22:12,830 --> 00:22:17,780 kwa mfano, hii Harvard Matukio API, ambayo basi wewe kupata orodha ya 371 00:22:17,780 --> 00:22:21,290 matukio tofauti ambayo ni kwenda katika Harvard na kwamba aina ya kitu. 372 00:22:21,290 --> 00:22:24,510 Na hivyo tunaweza bonyeza yoyote moja ya haya na kupata spec kwa ajili yake, 373 00:22:24,510 --> 00:22:28,090 ambayo wewe utakuwa na uwezo wa kupata kwa API yoyote, na wazo ni 374 00:22:28,090 --> 00:22:33,920 inakuwezesha kujua, hasa yale ya kuomba kutoka API na jinsi ya ombi hilo. 375 00:22:33,920 --> 00:22:37,370 Kwa maneno mengine, kama nataka matukio yote yanayotokea kesho 376 00:22:37,370 --> 00:22:42,550 basi mimi nimepata wazi kuwapa kwamba tarehe hiyo mimi nataka katika muundo fulani, 377 00:22:42,550 --> 00:22:46,030 A na B, itakuwa kuniambia nini hasa ni kwenda kutoa nyuma yangu. 378 00:22:46,030 --> 00:22:48,590 Ni kusema nitakacho kurudi wewe hii kitu JSON, 379 00:22:48,590 --> 00:22:50,960 au kama unaweza kuona, kuna format tofauti. 380 00:22:50,960 --> 00:22:54,050 >> Unaweza pia kurudi data kama CSV, kwa mfano. 381 00:22:54,050 --> 00:22:57,620 Lakini wewe kujua hasa jinsi data kwamba ni kwenda kuangalia wakati wewe kupata nyuma 382 00:22:57,620 --> 00:23:00,610 hivyo unaweza kutarajia kufanya mambo fulani kwa hayo. 383 00:23:00,610 --> 00:23:07,240 Tunaweza kitabu chini na kuona, kwa mfano, kama tunataka swala API 384 00:23:07,240 --> 00:23:11,500 kupata kalenda, basi tunaweza kutumia hii URL fulani 385 00:23:11,500 --> 00:23:16,480 na kuwapa vigezo fulani ambayo itakuwa ni ya data kwamba tunataka hasa. 386 00:23:16,480 --> 00:23:19,540 Na kadhalika, kama tunataka data nyuma katika muundo fulani, 387 00:23:19,540 --> 00:23:23,790 basi tunaweza kuuliza ni wa pato data katika CSV, 388 00:23:23,790 --> 00:23:27,700 na kwamba tu mwingine parameter kwamba sisi ni kupita kwa API. 389 00:23:27,700 --> 00:23:29,210 Kura ya mambo ya baridi kwa kufanya huko. 390 00:23:29,210 --> 00:23:32,550 Napenda dhahiri kupendekeza kuangalia nje APIs CS50. 391 00:23:32,550 --> 00:23:36,000 >> Mimi nina kwenda kuangalia API hii Chakula Harvard hasa kwa kidogo. 392 00:23:36,000 --> 00:23:39,870 Jambo moja Nimekuwa kwa kweli ni iliyoundwa hii Harvard Noms tovuti, 393 00:23:39,870 --> 00:23:44,930 ambayo inatumia CS50 Chakula API retrieve menu HUDS kwa siku. 394 00:23:44,930 --> 00:23:50,400 Na kwa watu shule za ugani, HUDS ni huduma dining katika Harvard. 395 00:23:50,400 --> 00:23:55,130 Nini kupata ni ukurasa huu ambayo ina yote ya milo kwa siku, hivyo tunaona ya chakula cha mchana. 396 00:23:55,130 --> 00:23:58,130 Tuna wachache makundi mbalimbali. Tuna maharage na kituo cha nafaka nzima. 397 00:23:58,130 --> 00:24:00,340 Tuna brown mchele kituo. 398 00:24:00,340 --> 00:24:03,360 Tunaweza kuona kwa brunch tuna vitu hivi chakula wachache. 399 00:24:03,360 --> 00:24:07,030 Kama sisi bonyeza juu yao, kisha sisi kupata taarifa lishe. 400 00:24:07,030 --> 00:24:12,240 Unaweza kuona hii ni habari ya lishe kwa Grapefruit, katika kesi wakashangaa. 401 00:24:12,240 --> 00:24:14,870 Na hivyo tena, tunakwenda rika ndani ya nyuma mwisho hapa kidogo 402 00:24:14,870 --> 00:24:18,530 na kuona nini hasa hii ni kufanya kupata data hii. 403 00:24:18,530 --> 00:24:21,710 Na zinageuka si kweli kuwa ngumu sana wakati wote. 404 00:24:21,710 --> 00:24:28,720 Faili hii inaonekana messy kidogo, lakini kukumbuka kwamba hii ni utunzaji tovuti nzima, 405 00:24:28,720 --> 00:24:34,130 na kama mimi kitabu chini tunaona mabadiliko data kazi huu. 406 00:24:34,130 --> 00:24:36,630 >> Sasa, tu kuwa wazi, hii imeandikwa katika CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 ambayo ni lugha ambayo pengine si kuonekana mbele. 408 00:24:39,570 --> 00:24:44,810 Lakini ni pretty someka, hivyo mimi itabidi kutembea kwa njia hiyo kama ndiyo pseudocode. 409 00:24:44,810 --> 00:24:49,080 Lugha tarehe ni kazi ambayo kwenda kuchukua katika thamani ya tarehe hii, 410 00:24:49,080 --> 00:24:51,740 na ni pia kwenda kuchukua katika kwanza, ambayo sisi hawajali kama mengi. 411 00:24:51,740 --> 00:24:54,110 Lakini jambo muhimu ni kwamba ina hii tarehe, 412 00:24:54,110 --> 00:25:00,080 na tarehe hiyo ni siku kwamba tunataka kuomba yote ya vitu ya chakula kwa. 413 00:25:00,080 --> 00:25:04,030 Na kisha unaweza kuona tuna kidogo ya syntax hapa, 414 00:25:04,030 --> 00:25:09,000 ambayo ni ya kimsingi kuchanganua kwamba tarehe katika format someka. 415 00:25:09,000 --> 00:25:11,920 Kwa maneno mengine, API inahitaji tarehe katika format fulani. 416 00:25:11,920 --> 00:25:17,390 Huwezi tu kusema Novemba 16, 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Itakuwa si kujua nini cha kufanya na kwamba. Ni anataka tarehe katika muundo maalum. 418 00:25:20,320 --> 00:25:23,230 Wote sisi ni kufanya hapa ni kuwapa hasa kwamba format, 419 00:25:23,230 --> 00:25:26,520 ambayo ni thamani ya mwaka halafu hyphen, thamani mwezi, 420 00:25:26,520 --> 00:25:29,420 mwingine hyphen na thamani tarehe. 421 00:25:29,420 --> 00:25:34,910 Na sisi pia kusema tunataka data kuwa pato katika JSON. 422 00:25:34,910 --> 00:25:37,560 >> Sasa sisi ni kufanya ombi hili AJAX, na kama nilivyoeleza awali, 423 00:25:37,560 --> 00:25:41,680 jQuery ina hii super manufaa AJAX kazi ambayo wote unahitaji kufanya ni bayana 424 00:25:41,680 --> 00:25:45,780 vigezo chache hapa chini, na nitakupa nyuma hasa unataka nini. 425 00:25:45,780 --> 00:25:50,490 Sisi ni kuwaambia kwamba URL sisi unataka kwenda ni hii CS50 Chakula API, 426 00:25:50,490 --> 00:25:52,270 ambayo sisi got kutoka spec. 427 00:25:52,270 --> 00:25:56,730 Sisi tunasema kwamba tunataka data katika JSON na kwamba 428 00:25:56,730 --> 00:25:59,490 tunakwenda kuwapa data hii ambayo tumekuwa hufafanuliwa hapa juu. 429 00:25:59,490 --> 00:26:02,670 Hii ni siku tunataka vitu ya chakula kwa. 430 00:26:02,670 --> 00:26:07,790 Na kisha wote sisi kufanya ni kufafanua baadhi ya aina ya kazi na mafanikio, 431 00:26:07,790 --> 00:26:11,980 ambayo kimsingi ni kile kinachotokea wakati API anarudi data hizo. 432 00:26:11,980 --> 00:26:15,490 Kwa maneno mengine, tumekuwa vifurushi up yote ya vigezo kwamba tunataka, 433 00:26:15,490 --> 00:26:20,530 ambayo katika kesi hii ni siku ya kwamba sisi unataka hiyo na ukweli kwamba tunataka kuwa katika JSON, 434 00:26:20,530 --> 00:26:23,840 na sisi alimtuma ni mbali na API, hivyo sasa API ni kusema, sawa, 435 00:26:23,840 --> 00:26:26,350 hapa ni data zako, I got it nyuma kwa ajili yenu. 436 00:26:26,350 --> 00:26:29,930 Tuna kazi ya mafanikio, ambayo ina maana kutokana na kwamba API 437 00:26:29,930 --> 00:26:32,230 mafanikio anarudi baadhi ya data, tunafanya nini kwa hayo? 438 00:26:32,230 --> 00:26:35,980 >> Na zinageuka kuwa wote sisi kufanya ni wito huu menu update kazi 439 00:26:35,980 --> 00:26:42,680 na chochote API amerejea, ili tuweze kutafuta kwamba 440 00:26:42,680 --> 00:26:47,970 na kuona kwamba wote sisi ni kufanya ni kutumia rundo la syntax mpya hapa 441 00:26:47,970 --> 00:26:52,220 update ya HTML na kuingiza data hii mpya. 442 00:26:52,220 --> 00:26:56,580 Nini hii inaruhusu ni sisi kuwa haya mishale upande aidha, na tunaweza bonyeza, 443 00:26:56,580 --> 00:27:01,060 na sasa sisi tunataka data kwa siku ya pili na tena kwa siku ya pili, 444 00:27:01,060 --> 00:27:04,820 na kila wakati ni uppdatering kwamba thamani ya tarehe na querying API, 445 00:27:04,820 --> 00:27:07,510 kupata nyuma baadhi ya data na kuweka katika tovuti. 446 00:27:07,510 --> 00:27:10,590 Tena, unaweza kuona, super, super manufaa. 447 00:27:10,590 --> 00:27:14,410 Programu yalinipeleka saa chache hack pamoja, 448 00:27:14,410 --> 00:27:20,140 na mimi kuwa na kidogo zaidi uzoefu, ni wazi, lakini wako CS50 mwisho wa mradi 449 00:27:20,140 --> 00:27:22,870 inaweza kuangalia kitu sana kama hii. 450 00:27:22,870 --> 00:27:29,540 >> APIs ni super nguvu kwa kiasi cha juhudi kwamba wao kuchukua. 451 00:27:29,540 --> 00:27:32,800 Jambo la mwisho mimi nina kwenda juu ni chache zaidi APIs kwa mapana. 452 00:27:32,800 --> 00:27:35,480 Mimi si kupata mbali ndani yao mbali kama nini kufanya hasa, 453 00:27:35,480 --> 00:27:38,740 lakini mimi nitakupa wazo la nini huko nje. 454 00:27:38,740 --> 00:27:42,700 2 muhimu kweli kweli ndio, kama wewe ni nia ya uchambuzi au taswira 455 00:27:42,700 --> 00:27:45,960 au kitu kama hicho, ni Freebase na Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-labda wewe wote kujua-ni free online elezo, 457 00:27:49,800 --> 00:27:53,230 na ni kweli ina API, hivyo kama unataka, kwa mfano, 458 00:27:53,230 --> 00:27:56,250 kupata yote ya maandiko na makala kwa ajili ya pweza 459 00:27:56,250 --> 00:27:58,030 unaweza kwa urahisi sana kufanya hivyo. 460 00:27:58,030 --> 00:28:02,300 Tu kusema hey, Wikipedia API, Ningependa data akarudi kama hii, 461 00:28:02,300 --> 00:28:07,010 na ningependa katika format hii, na makala Ningependa ni pweza, 462 00:28:07,010 --> 00:28:09,820 na haraka sana nitakupa nyuma kwamba habari. 463 00:28:09,820 --> 00:28:12,230 Hiyo inaweza kuwa kweli muhimu sana kama unataka kufanya baadhi ya aina ya tovuti 464 00:28:12,230 --> 00:28:16,200 kwamba mtazamaji bora kwa Wikipedia au kitu kama hicho. 465 00:28:16,200 --> 00:28:21,350 >> Freebase ni aina ya sawa, ingawa ni vigumu kidogo mbali kama API. 466 00:28:21,350 --> 00:28:24,390 Freebase ni kama Wikipedia katika kwamba ni elezo online 467 00:28:24,390 --> 00:28:29,050 ambayo ina kura na kura ya data tofauti kuhusu kila aina ya mada mbalimbali, 468 00:28:29,050 --> 00:28:33,150 lakini ni kuhifadhiwa katika database kimahusiano, ambayo ni tofauti kidogo kutoka Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia ina makala yake na makala wanaohusishwa na makala nyingine, 470 00:28:36,410 --> 00:28:38,860 lakini kwa sehemu kubwa, kama unataka data kwa pweza, 471 00:28:38,860 --> 00:28:41,990 wewe kwenda makala pweza, kupata data kwamba, na wewe kuwa na rundo la Nakala 472 00:28:41,990 --> 00:28:43,830 kuhusu pweza, hivyo kwamba ni kubwa. 473 00:28:43,830 --> 00:28:46,870 Freebase kazi kwa namna kidogo ngumu zaidi kwa kuwa 474 00:28:46,870 --> 00:28:48,930 kila kitu ni kuhusiana na mtu mwingine. 475 00:28:48,930 --> 00:28:52,620 Kwa maneno mengine, kama sisi ni kwa ajili ya kutafuta pweza 476 00:28:52,620 --> 00:28:54,940 basi ina rundo la makundi yanayohusiana na hayo. 477 00:28:54,940 --> 00:28:57,920 >> Kwa mfano, ni mnyama, ni maisha ya chini ya maji, 478 00:28:57,920 --> 00:28:59,710 ina baadhi ya joto la mwili. 479 00:28:59,710 --> 00:29:01,210 Mimi sijui. 480 00:29:01,210 --> 00:29:04,230 Na wote wa makundi hayo ni viungo kwa maeneo mengine ambapo unaweza kwenda 481 00:29:04,230 --> 00:29:06,640 kuona mambo kwa jamii hiyo. 482 00:29:06,640 --> 00:29:13,450 Kwa maneno mengine, pweza data kuweka ingekuwa yana kiungo data kuweka kwa wanyama wote, 483 00:29:13,450 --> 00:29:16,790 na kwamba itakuwa basi mimi hoja kuzunguka katika database kweli haraka. 484 00:29:16,790 --> 00:29:21,740 Hii inaweza kuwa muhimu sana kama wewe kufanya kitu kama kulinganisha. 485 00:29:21,740 --> 00:29:24,490 Kwa maneno mengine, kutokana na kitu fulani, unataka kuona 486 00:29:24,490 --> 00:29:27,890 kile kingine ni kuhusiana na kuona kile kingine ni si kuhusiana na. 487 00:29:27,890 --> 00:29:30,700 Kwamba aina ya kitu. Itakuwa muhimu katika idadi ya njia. 488 00:29:30,700 --> 00:29:34,250 Kama wewe ni kuangalia kwa zaidi ya changamoto na kuwa na uwezo wa kufanya baadhi ya mambo magumu zaidi 489 00:29:34,250 --> 00:29:38,740 Napenda kufikiria kuchukua kuangalia API Freebase. 490 00:29:38,740 --> 00:29:44,670 Lakini kwa kiasi kikubwa, Wikipedia ni mahali rahisi sana kwenda mbali kama kupata habari. 491 00:29:44,670 --> 00:29:48,340 Sehemu nyingine kwamba mimi itabidi kuangalia ni Last.fm, na mimi nina kweli kwenda kwenda kwenye tovuti ya 492 00:29:48,340 --> 00:29:53,800 katika kesi baadhi ya watu wasiokuwa na uzoefu, lakini kimsingi ni Last.fm muziki 493 00:29:53,800 --> 00:29:57,220 ladha na mapendekezo tovuti. 494 00:29:57,220 --> 00:29:59,000 Unaweza kufanya akaunti. 495 00:29:59,000 --> 00:30:04,250 Unaweza kuanza kuweka muziki kutoka muziki mchezaji yako 496 00:30:04,250 --> 00:30:08,020 na tovuti, na kimsingi itaanza kutoa mapendekezo muziki 497 00:30:08,020 --> 00:30:10,030 msingi juu ya nini kusikiliza. 498 00:30:10,030 --> 00:30:14,270 >> Kwa mfano, kama wewe kwenda profile yako ukurasa-hii ni yangu- 499 00:30:14,270 --> 00:30:18,180 unaweza kuona wewe kuwa na orodha ya hivi karibuni kusikiliza nyimbo. 500 00:30:18,180 --> 00:30:22,550 Unaweza kuona wasanii wa jumla favorite, wote wa aina ya kitu, 501 00:30:22,550 --> 00:30:25,280 na tena, kuna API kubwa nyuma Last.fm, 502 00:30:25,280 --> 00:30:29,360  na unaweza kutumia kufanya kura na kura ya mambo kweli cool. 503 00:30:29,360 --> 00:30:38,870 Kwa mfano, nitakwenda kwa ukurasa rafiki ambaye ana hii Last.fm Vyombo vya tovuti. 504 00:30:38,870 --> 00:30:42,380 Hii ni kweli mwingine jukwaa kwamba kujengwa juu ya API Last.fm, 505 00:30:42,380 --> 00:30:45,420 na haina idadi ya mambo pretty kuvutia. 506 00:30:45,420 --> 00:30:50,260 Kama mimi kuingia na user jina langu, kwa mfano, 507 00:30:50,260 --> 00:30:53,110 Naweza kuomba ni kuzalisha wingu tag, kwa mfano, 508 00:30:53,110 --> 00:30:56,480 na kile ambacho kinaenda kufanya ni nipe nyuma sura ya 509 00:30:56,480 --> 00:30:59,850 muziki yote tofauti na aina ya kitu kwamba mimi kama kusikiliza. 510 00:30:59,850 --> 00:31:01,410 Jinsi ni kufanya hili? 511 00:31:01,410 --> 00:31:05,670 Sana kimsingi ni kusema kwa API Last.fm hapa mtumiaji huyu. 512 00:31:05,670 --> 00:31:10,710 Ningependa kujua genre ya wimbo kila kwamba wameweza milele kusikilizwa, 513 00:31:10,710 --> 00:31:15,130 na unaweza kufanya hivyo kwa kufanya pretty rahisi AJAX wito kwa API Last.fm. 514 00:31:15,130 --> 00:31:18,990 Utapata nyuma orodha kubwa, basi ni wazi na baadhi ya mambo mengine ni kuwa kufanyika 515 00:31:18,990 --> 00:31:22,280 kugeuka kuwa katika wingu neno, lakini unaweza kuona kwa ujumla 516 00:31:22,280 --> 00:31:25,850 ni rahisi sana kupata na rahisi sana kutumia. 517 00:31:25,850 --> 00:31:30,750 Kweli nice kwa idadi ya mambo. 518 00:31:30,750 --> 00:31:35,940 >> Nadhani hiyo ni juu ya yote mimi itabidi kusema kwa ujumla. 519 00:31:35,940 --> 00:31:39,040 Jambo la mwisho mimi itabidi kutaja kuhusu APIs kwa ujumla ni kwamba 520 00:31:39,040 --> 00:31:41,840 utasikia wakati mwingine kukimbia katika kitu kinachoitwa kiwango cha kikwazo, 521 00:31:41,840 --> 00:31:44,940 na wazo la kiwango cha kikwazo ni wewe hawataki vibaya APIs. 522 00:31:44,940 --> 00:31:48,130 Kwa maneno mengine, ni kweli nice kwamba mengi ya tovuti hizi kuwa na APIs 523 00:31:48,130 --> 00:31:51,070 kuwa unaweza kwenda na matumizi kwa ajili ya bure. 524 00:31:51,070 --> 00:31:54,460 Hata hivyo, kama wewe ni kufanya mamilioni au mabilioni ya maombi kwa siku, 525 00:31:54,460 --> 00:31:57,610 kwa mfano, kama wewe ni kukwama katika kitanzi usio hiyo infinitely querying 526 00:31:57,610 --> 00:32:00,680 aina fulani ya API na kupata nyuma kiasi kubwa ya data, 527 00:32:00,680 --> 00:32:04,570 wazi kwamba si nzuri, hivyo nini mengi ya APIs kufanya ni kuwa na kiwango hiki kikwazo kipengele 528 00:32:04,570 --> 00:32:09,970 kwamba anasema unaweza tu kutoa maombi ya 1000 kwa siku kwa kila anwani ya IP au kitu kama hicho. 529 00:32:09,970 --> 00:32:12,540 Na kama wewe ni kufanya mengi ya kupima na aina ya kitu, 530 00:32:12,540 --> 00:32:14,890 utasikia wakati mwingine kukimbia katika kwamba, ghafla itakuwa imefungwa wewe mbali 531 00:32:14,890 --> 00:32:18,280 na kusema hapana, mimi si kutoa data yoyote zaidi. 532 00:32:18,280 --> 00:32:20,000 >> Nini unataka kufanya ni kucheza na sheria. 533 00:32:20,000 --> 00:32:22,950 Wewe unataka kuhakikisha kwamba kusoma spec API makini. 534 00:32:22,950 --> 00:32:26,330 Kama ana sheria fulani masharti hayo, kama unaweza tu kufanya maswali X kwa siku 535 00:32:26,330 --> 00:32:30,000 au unaweza tu kupata sehemu ya database idadi fulani ya nyakati 536 00:32:30,000 --> 00:32:32,900 au kitu kama kwamba unataka kuhakikisha fimbo na kwamba. 537 00:32:32,900 --> 00:32:38,360 Muda mrefu kama wewe kucheza ndani ya sheria hizo pengine utasikia kuwa na wakati mzuri kutumia APIs. 538 00:32:38,360 --> 00:32:42,030 Takeaway yako kwa ujumla ni APIs ni kweli, kweli manufaa. 539 00:32:42,030 --> 00:32:45,610 >> Kuna API kwa karibu huduma yoyote kubwa mtandao huko nje. 540 00:32:45,610 --> 00:32:50,700 Pretty sana sehemu yoyote ya Google Vyombo Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Kalenda ya Google, mambo yote hayo na APIs. 542 00:32:54,390 --> 00:32:58,280 Unaweza kutumia yao kwa data wote kupata kutoka server na kutuma data kwa seva. 543 00:32:58,280 --> 00:33:00,870 Kwa maneno mengine, kama alitaka kufanya App kalenda ambayo inaweza update 544 00:33:00,870 --> 00:33:04,190 mtu wa Kalenda ya Google, kuna API kwa ajili hiyo. 545 00:33:04,190 --> 00:33:07,810 Kama unataka kufanya kitu ambacho kinaendelea kukuambia ambapo 546 00:33:07,810 --> 00:33:12,530 eneo la anuani fulani ni unaweza kutumia Google Maps API kwa ajili hiyo. 547 00:33:12,530 --> 00:33:15,860 APIs ni fantastically muhimu, na wao uko kila mahali. 548 00:33:15,860 --> 00:33:18,700 Kama wewe ni nia ya aina fulani ya wazo, 549 00:33:18,700 --> 00:33:22,170 kuna pengine API kuhusiana kwamba unaweza kutumia ili kupata mengi ya data 550 00:33:22,170 --> 00:33:25,060 haraka sana na sana tu. 551 00:33:25,060 --> 00:33:28,140 >> Kama bado uko kuangalia kwa ajili ya mradi au kama unataka tu kucheza karibu 552 00:33:28,140 --> 00:33:31,820 na kitu kwa ujumla, APIs ni dhahiri thamani ya kufanya. 553 00:33:31,820 --> 00:33:37,200 Shukrani, na mimi nina furaha na kujibu maswali yoyote kwamba guys wanaweza kuwa. 554 00:33:37,200 --> 00:33:44,900 Sawa, shukrani sana. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]