1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminar] [API A Programmer-in Giriş] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Harvard Universiteti] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Bu CS50 edir.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Salam, hər kəs, mən Billy oldum və mən bu gün, API söhbət etmək gedirəm 5 00:00:12,100 --> 00:00:15,220 və ya proqram proqramlaşdırma interfeys, 6 00:00:15,220 --> 00:00:20,040 xüsusi CS50 son layihələr kontekstində şey ki, sort edir. 7 00:00:20,040 --> 00:00:22,490 Ümumiyyətlə hansı bir API? 8 00:00:22,490 --> 00:00:25,530 Çox geniş baxımından, bu, 2 ədəd imkan verir ki, bir orta insan növ var 9 00:00:25,530 --> 00:00:28,610 proqram bir-biri ilə ünsiyyət. 10 00:00:28,610 --> 00:00:32,530 Bu çox geniş müəyyən bir növ və biz aradığınız nə üçün müvafiq deyil. 11 00:00:32,530 --> 00:00:35,450 Biz həqiqətən istəyirik faydalı orta torpaq bəzi növ 12 00:00:35,450 --> 00:00:40,570 haradasa bazası bir növ ünsiyyət. 13 00:00:40,570 --> 00:00:43,310 >> Burada bir chart, və əsasən fikir 14 00:00:43,310 --> 00:00:46,790 biz ərizə və biz bir verilənlər bazası məlumat almaq istəyirəm 15 00:00:46,790 --> 00:00:49,570 lakin biz birbaşa verilənlər bazası sorğu istəmirəm. 16 00:00:49,570 --> 00:00:52,710 Əvəzində biz orta insan, API bu cür ilə getmək istəyirəm. 17 00:00:52,710 --> 00:00:55,440 Ki, arxasında ideyası chart ədəd 2 və 3 18 00:00:55,440 --> 00:00:57,750 həm çox çətin və messy olacaq. 19 00:00:57,750 --> 00:00:59,960 Başqa sözlə, API bazası querying zaman, 20 00:00:59,960 --> 00:01:03,300 yəqin ki, SQL masalar və stuff ki, növ bütün istifadə edəcək 21 00:01:03,300 --> 00:01:05,489 və biz, ümumi CS50 bu barədə bir az öyrəndim, lakin sonra 22 00:01:05,489 --> 00:01:07,590 Bir ağrı bir az var fark etdik. 23 00:01:07,590 --> 00:01:10,590 Siz edirik xüsusilə zaman ki, çox, çox mürəkkəb və messy alır 24 00:01:10,590 --> 00:01:12,530 kompleks sorğu və şey ki, sort. 25 00:01:12,530 --> 00:01:15,960 >> Biz həqiqətən istəyirik faydalı və sadə yolla bir növ edir 26 00:01:15,960 --> 00:01:19,780 ki, məlumat almaq və chart haqqında ədəd 1 və 4 arxasında fikir üçün. 27 00:01:19,780 --> 00:01:23,600 Başqa sözlə, bizim üçün nə üçün API demək həqiqətən sadə şəkildə istədiyiniz 28 00:01:23,600 --> 00:01:27,760 və geri ki, məlumat almaq üçün həqiqətən sadə yolu. 29 00:01:27,760 --> 00:01:33,020 Məlumatlar adətən göndərilən və qəbul edir ki, əsas yol var 30 00:01:33,020 --> 00:01:36,490 JSON və ya JavaScript Obyekt Notation olan. 31 00:01:36,490 --> 00:01:40,370 Bu qədər siz API üçün sorğu göndərmək necə bir az fərqli ola bilər. 32 00:01:40,370 --> 00:01:43,210 Başqa sözlə, siz data bəzi müəyyən istəyirsinizsə, 33 00:01:43,210 --> 00:01:46,670 necə ki, data bir az fərqli ola bilər almaq üçün API demək. 34 00:01:46,670 --> 00:01:49,210 Adətən şəbəkə tələbi bir növ edilməsi daxildir. 35 00:01:49,210 --> 00:01:53,130 Başqa sözlə, URL bir növ daxil API demək olacaq ki, 36 00:01:53,130 --> 00:01:56,190 istədiyiniz, amma data demək olar ki, həmişə geri göndərilir dəqiq nə 37 00:01:56,190 --> 00:01:59,530 başqa sözlə, JSON sayı 4. 38 00:01:59,530 --> 00:02:01,030 >> JSON nə dəqiq deyil? 39 00:02:01,030 --> 00:02:03,030 Mən JavaScript Obyekt Notation etdi. 40 00:02:03,030 --> 00:02:07,090 Bu əsasən data ötürücü və qəbul üçün universal standart var. 41 00:02:07,090 --> 00:02:11,410 Ideyası şeyi bu 3 kateqoriyalar var. 42 00:02:11,410 --> 00:02:13,540 Siz diziler, hashmaps və primitives var. 43 00:02:13,540 --> 00:02:16,580 Siz CS50 bir az baxdı sonra Diziler və hashmaps, 44 00:02:16,580 --> 00:02:19,870 lakin növ onlar nə çox ciddi mənada kazanılmış etdik. 45 00:02:19,870 --> 00:02:22,780 Başqa sözlə, diziler ilə, onlar bound yazın olduğunuz bilirik ki, 46 00:02:22,780 --> 00:02:26,560 belə ki, yalnız bütün array ərzində gedir növü bir növ var. 47 00:02:26,560 --> 00:02:29,310 JSON şey ki, sort ilə daha çox yumşaq edir. 48 00:02:29,310 --> 00:02:33,590 Əsasən fikir, bu obyekt tikintisi edir 49 00:02:33,590 --> 00:02:36,270 Bu 3 şeyi heç ibarət ola bilər 50 00:02:36,270 --> 00:02:39,470 və onlara çox olanlar ibarət ola bilər və onlar iç içə bilər. 51 00:02:39,470 --> 00:02:42,110 >> JSON bir nümunə İşdə sort 52 00:02:42,110 --> 00:02:47,910 ki, burada bu buruq Mötərizədə sizin hashmap təmsil edir 53 00:02:47,910 --> 00:02:51,400 və hashmap əsasən əsas bir növ bir harita edir 54 00:02:51,400 --> 00:02:53,340 dəyər bir növ edir. 55 00:02:53,340 --> 00:02:56,440 Siz, biz xassələri əsas var ki, burada görürsünüz 56 00:02:56,440 --> 00:02:59,600 və bir sıra üzərində təsvir edir, bu bütün şey. 57 00:02:59,600 --> 00:03:04,120 Biz bu əsas isAwesome olan hashmap bir element, bax 58 00:03:04,120 --> 00:03:07,370 başqa sözlə gerçək bir ibtidai dəyəri xəritələr, bir boolean. 59 00:03:07,370 --> 00:03:09,420 Primitives strings ola bilər. Onlar integers ola bilər. 60 00:03:09,420 --> 00:03:11,960 Onlar belə bir şey bools ola bilər. 61 00:03:11,960 --> 00:03:18,410 Və siz, xassələri xal bu 2 strings var ki, bu serialın məzmunu bax 62 00:03:18,410 --> 00:03:20,050 öz-özünə oxşar və gözəl. 63 00:03:20,050 --> 00:03:27,410 Bu JSON 2 xassələri və biz JSON zəhmli görürük. 64 00:03:27,410 --> 00:03:30,060 Ki, baxmaq üçün bir az daha yaxından mən tikintisi gedirəm 65 00:03:30,060 --> 00:03:32,870 burada JSON daha kompleks nümunəsidir. 66 00:03:32,870 --> 00:03:37,000 >> Nin, məsələn, bir sıra yalnız bir boş sıra başlamaq edək. 67 00:03:37,000 --> 00:03:39,180 Lakin qazma növ, buna görə biz, bir az onu doldurmaq olacaq 68 00:03:39,180 --> 00:03:43,420 Dediyim kimi, JSON-ci diziler, bound yazın olunur 69 00:03:43,420 --> 00:03:46,400 biz də, hi ki, burada bir simli ola bilər 70 00:03:46,400 --> 00:03:49,330 və ki, serialın bir element var. 71 00:03:49,330 --> 00:03:53,450 Və beləcə, bir neçə mappings var gedir ki, burada bir hashmapping əlavə edə bilər. 72 00:03:53,450 --> 00:04:00,470 Bu adı simli Billy bir mapping etmək olacaq. 73 00:04:00,470 --> 00:04:04,590 Biz adı Billy bir mapping var və biz bir harita var 74 00:04:04,590 --> 00:04:10,860 mavi üçün sevimli rəngi. 75 00:04:10,860 --> 00:04:12,700 Bu əsasən JSON yaxşı bir misal var. 76 00:04:12,700 --> 00:04:18,160 Bu cür içinə-whoops, bu, müxtəlif hissələrinin orada bütün bir vergül ehtiyac olur. 77 00:04:18,160 --> 00:04:21,140 Yenə, bu, bütün bağlı yazın deyil, belə ki, hər hansı növ ola bilər 78 00:04:21,140 --> 00:04:24,710 bir şey içərisində istədiyiniz və ideya o özünü oxşar edir. 79 00:04:24,710 --> 00:04:28,830 Başqa sözlə, burada bu hüququ bu bütün şey kimi, bir JSON obyekt, 80 00:04:28,830 --> 00:04:33,200 bu kimi, belə ki, bir ibtidai obyekti ola ola bilər 81 00:04:33,200 --> 00:04:35,680 bir sıra obyekt və ya bir hashmap obyekti ola bilər. 82 00:04:35,680 --> 00:04:40,270 >> Gördüyünüz növ kimi, JSON belə çox var ki, həqiqətən, həqiqətən faydalıdır. 83 00:04:40,270 --> 00:04:45,860 Siz JSON saxlanılır təsəvvür edə bilər ki, hər hansı mümkün data ola bilər. 84 00:04:45,860 --> 00:04:47,900 Bu API istifadə etmək üçün, həqiqətən, gözəl dil edir ki, 85 00:04:47,900 --> 00:04:50,770 olduqca çox olursa, istədiyiniz nə data o deməkdir ki, çünki 86 00:04:50,770 --> 00:04:54,270 JSON onu geri almaq üçün bir yol var olacaq. 87 00:04:54,270 --> 00:04:58,600 Şey bu cür JSON xüsusilə yaxşı ki, bir neçə xüsusiyyətləri. 88 00:04:58,600 --> 00:05:02,270 Gördüyünüz kimi, CS50 ilə iş etdik ki, çox şey müqayisədə 89 00:05:02,270 --> 00:05:06,040 bu da yazmaq çox asan oxumaq və nisbətən çox asandır. 90 00:05:06,040 --> 00:05:09,700 Əgər siz edirəm ki, nümunə edirdi kimi Siz, onu indent bilər 91 00:05:09,700 --> 00:05:12,990 siz həqiqətən də görmək olar ki, bir gözəl, yaraşıqlı version verir. 92 00:05:12,990 --> 00:05:17,150 Ancaq bundan başqa, bir kompüter üçün oxumaq və yazmaq üçün də asandır. 93 00:05:17,150 --> 00:05:19,870 Başqa sözlə, bu, kodlamak üçün analiz etmək üçün asan və asan 94 00:05:19,870 --> 00:05:23,820 ki, bu qədər narahat data oxu kimi olduqca sürətli deməkdir ki, 95 00:05:23,820 --> 00:05:26,460 və JSON həqiqətən tez generated bilər. 96 00:05:26,460 --> 00:05:30,300 >> Müxtəlif JSON hissələri və şey ki, sort daxil olmaq üçün də çox asandır. 97 00:05:30,300 --> 00:05:33,320 Bu gözəl, və bundan başqa, o, özünü oxşar ki, 98 00:05:33,320 --> 00:05:36,090 başqa sözlə, siz JSON ərzində JSON ərzində JSON ola bilər ki, 99 00:05:36,090 --> 00:05:40,040 data saxlanılması üçün həqiqətən gözəldir. 100 00:05:40,040 --> 00:05:45,490 API ilə iş ümumiyyətlə həqiqətən faydalı olduğunu bir hissəsi jQuery edir. 101 00:05:45,490 --> 00:05:49,290 Siz JavaScript bir az öyrəndim, bir gözəl yolu 102 00:05:49,290 --> 00:05:53,710 bir web ərzində HTML və CSS manipulyasiya. 103 00:05:53,710 --> 00:05:57,190 Lakin bu cür düz JavaScript kodu bir ağrı ola bilər 104 00:05:57,190 --> 00:05:59,810 JavaScript həqiqətən verbose dil əsasən, çünki. 105 00:05:59,810 --> 00:06:03,020 Siz sintaksis bir çox öyrənmək üçün, və yalnız çox sadə şeyə 106 00:06:03,020 --> 00:06:07,590 bu kodu alır, belə ki, jQuery JavaScript üçün kitabxana edir. 107 00:06:07,590 --> 00:06:09,800 Başqa sözlə, bu yük edə bilər ki, bir JavaScript faylı var 108 00:06:09,800 --> 00:06:12,730 və sonra müəyyən şeyə jQuery funksiyaları istifadə edin. 109 00:06:12,730 --> 00:06:15,670 Və jQuery əsasən həyat bütövlükdə çox asan edir. 110 00:06:15,670 --> 00:06:20,390 Bu jQuery bir neçə xətləri JavaScript xətləri yüzlərlə yazmaq nə asanlaşdırır. 111 00:06:20,390 --> 00:06:24,430 >> Çünki adətən API kullanıyorsanız, xüsusilə faydalıdır 112 00:06:24,430 --> 00:06:27,600 API'ler daxil olacaq necə, AJAX sorğu edilməsi ilə 113 00:06:27,600 --> 00:06:30,130 və mən David mühazirə qeyd etdi inanıram ki, AJAX sorğu 114 00:06:30,130 --> 00:06:33,120 siz server bir növ bir şəbəkə xahiş edirik zaman ümumiyyətlə 115 00:06:33,120 --> 00:06:37,760 və məlumat bir növ geri almaq və dərhal bir səhifə yenilənməsi. 116 00:06:37,760 --> 00:06:41,840 Düz JavaScript xətlərinin crazy nömrələri edəcək alaraq 117 00:06:41,840 --> 00:06:44,620 başlıqlarını bütün doğrulamak və stuff ki, növ bütün etmək, 118 00:06:44,620 --> 00:06:46,810 jQuery, AJAX adlı həqiqətən sadə funksiyası var 119 00:06:46,810 --> 00:06:51,760 və AJAX etmək bütün, siz API vermək istədiyiniz parametrləri vermək deyil 120 00:06:51,760 --> 00:06:56,830 API yeri və konfiqurasiya etmək istəyirəm ki, variantlardan heç bir əlavə sort. 121 00:06:56,830 --> 00:07:02,480 Bu şey bu cür həqiqətən, həqiqətən gözəl və çox yararlıdır. 122 00:07:02,480 --> 00:07:06,970 Yəni biz API bizim əlləri çirkin almaq başlamaq üçün lazım olan bütün var. 123 00:07:06,970 --> 00:07:10,220 >> Mən bir neçə nümunə yetişdirmək və onların müxtəlif xassələri tədqiq gedirəm 124 00:07:10,220 --> 00:07:13,150 və nə onlar müxtəlif şeylər üçün faydalı istəyirik. 125 00:07:13,150 --> 00:07:15,570 Mən, həqiqətən, sizə göstərmək lazımdır ilk şey mən çalışıram ki, bir şey 126 00:07:15,570 --> 00:07:18,310 mənim tədqiqat laboratoriyasında olan, bir Ngram Viewer edir 127 00:07:18,310 --> 00:07:23,270 və əsasən bir Ngram Viewer ideyası siz söz bir növ üçün axtarış edə bilərsiniz 128 00:07:23,270 --> 00:07:28,840 və ya söz və zamanla mətn müəyyən ortaya necə tez-tez görürük. 129 00:07:28,840 --> 00:07:33,160 Burada Bu, misal körpələrin Bu data sıra 130 00:07:33,160 --> 00:07:36,480 ki, 1920-ci və 2000-ci arasında Nyu-Yorkda doğulub. 131 00:07:36,480 --> 00:07:40,090 Biz, adı Jennifer üçün, misal üçün, axtarış edə bilərsiniz 132 00:07:40,090 --> 00:07:44,400 və biz, həqiqətən, bütün çox istifadə edilmişdir pre-1960-cı illərdə görmək 133 00:07:44,400 --> 00:07:48,900 və sonra biz onu daha çox istifadə olmaq oldu sonrakı illərdə nəzərə almaq kimi. 134 00:07:48,900 --> 00:07:53,680 Biz Jennifer müqayisə əgər biz də, misal üçün, belə, Tomas müqayisə edə bilərsiniz 135 00:07:53,680 --> 00:07:56,520 biz, Tomas tarix boyu olduqca geniş yayılmış olmuşdur bilərsiniz 136 00:07:56,520 --> 00:07:58,780 Jennifer isə daha yeni bir ad. 137 00:07:58,780 --> 00:08:00,590 Biz şey bu cür edə bilər. 138 00:08:00,590 --> 00:08:02,460 >> Bu necə tətbiq çalışır? 139 00:08:02,460 --> 00:08:06,030 Əsasən, bu API vasitəsilə işləyir. 140 00:08:06,030 --> 00:08:08,660 Yəni, biz burada müəyyən parametrləri var. 141 00:08:08,660 --> 00:08:11,360 Biz, həqiqətən, aradığınız nə parametrləri var 142 00:08:11,360 --> 00:08:13,720 , bu adları, və sonra bir neçə digər xüsusiyyətləri 143 00:08:13,720 --> 00:08:16,570 Y ox və X ox kimi. 144 00:08:16,570 --> 00:08:18,440 Siz uzaq kimi biz bir neçə müxtəlif variantları bilərsiniz 145 00:08:18,440 --> 00:08:20,860 vaxt istifadə qətnamə və şey ki, sort. 146 00:08:20,860 --> 00:08:26,700 Biz qədər biz əslində bazası istədiyiniz data kimi variantları var 147 00:08:26,700 --> 00:08:29,400 və biz geri faydalı şəkildə məlumat almaq istəyirəm. 148 00:08:29,400 --> 00:08:34,020 Biz bazasında querying, əgər bunu bir ağrı ola və adətən, birbaşa sort olacaq 149 00:08:34,020 --> 00:08:38,970 körpə adları haqqında ehtimalla bu məlumatlar, haradasa bir verilənlər bazası yaşayır çünki 150 00:08:38,970 --> 00:08:42,789 və həqiqətən özünüz sorğu etmək çətin olacaq 151 00:08:42,789 --> 00:08:45,830 və data qayıtmaq üçün nə dəqiq qərar. 152 00:08:45,830 --> 00:08:49,300 Başqa sözlə, biz yalnız bu halda Jennifer və Tomas qayğı 153 00:08:49,300 --> 00:08:53,410 və biz yalnız müəyyən bir ox və stuff ki, sort bütün qayğı. 154 00:08:53,410 --> 00:08:55,720 >> Biz bu ətrafında alıram? 155 00:08:55,720 --> 00:09:01,200 Bir az daha bu API qazmaq üçün Mən sizə bu platforma bir nümunə göstərmək lazımdır 156 00:09:01,200 --> 00:09:04,490 bir az fərqli data set istifadə edir. 157 00:09:04,490 --> 00:09:09,950 Bu data set yerinə körpə adları olan, yalnız faktiki olaraq bütün deyil 158 00:09:09,950 --> 00:09:12,460 Açıq Kitabxana dərc bazası çap 159 00:09:12,460 --> 00:09:18,410 olan son 100 və ya il ərzində nəşr mətnləri nəhəng bir mənbəyidir. 160 00:09:18,410 --> 00:09:23,540 Ideyası biz, milyonlarla və mətn milyonlarla bu compository var 161 00:09:23,540 --> 00:09:27,420 İndi da müxtəlif söz və söz üçün axtarış edə bilərsiniz 162 00:09:27,420 --> 00:09:30,840 Burada bir az fərqli əvvəlki Məsələn dəyişir misal var 163 00:09:30,840 --> 00:09:33,350 Ki, biz bu 3 axtarış sualınız olan siz göstərdi 164 00:09:33,350 --> 00:09:36,290 müharibə, müharibə və guerre olan müharibə üçün Fransız söz. 165 00:09:36,290 --> 00:09:40,380 Və biz ümumi məlumat bazasının 3 müxtəlif bölmələrdə axtarış edirik. 166 00:09:40,380 --> 00:09:45,080 Başqa sözlə, bu ilk sorğu biz yalnız ABŞ-da aradığınız 167 00:09:45,080 --> 00:09:51,150 yalnız Böyük Britaniyada ikinci, yalnız və yalnız Fransada nəşr işləri üçüncü. 168 00:09:51,150 --> 00:09:53,120 Biz bəzi maraqlı nümunələri ortaya baxın. 169 00:09:53,120 --> 00:09:58,180 Məsələn, sağ ətrafında burada olan- 170 00:09:58,180 --> 00:10:02,410 oops, mən ox bir az qədər messed, lakin burada doğru bu intervalında bilərsiniz 171 00:10:02,410 --> 00:10:05,730 Vətəndaş müharibəsi ətrafında Amerika sayında böyük sünbül var 172 00:10:05,730 --> 00:10:08,340 lakin belə bir böyük, digər iki sünbül və açıq-aydın, çünki 173 00:10:08,340 --> 00:10:10,880 Amerika Vətəndaş müharibəsi o nöqtədə baş edilib. 174 00:10:10,880 --> 00:10:13,890 >> Biz, bəzi cool stuff bilərsiniz 175 00:10:13,890 --> 00:10:17,070 lakin nə biz, həqiqətən, qayğı bu verileri var necə. 176 00:10:17,070 --> 00:10:21,320 Bir az bu app pərdə arxasında aparacağıq. 177 00:10:21,320 --> 00:10:24,540 A səliqəli oyun Saytda və növ çalışırıq əgər bilmək istəyirəm 178 00:10:24,540 --> 00:10:27,430 pərdə arxasında neler, siz geliştirici alətləri açmaq olar. 179 00:10:27,430 --> 00:10:30,200 Mən Chrome-nin Developer Tools istifadə gedirəm və bu almaq 180 00:10:30,200 --> 00:10:35,160 siz kontrol, shift, J, və JavaScript konsol götürür edə bilərsiniz. 181 00:10:35,160 --> 00:10:37,420 Burada bir neçə sekmeleri var. 182 00:10:37,420 --> 00:10:39,680 Onlar müxtəlif şərtlər altında olduqca faydalı ola bilər, ancaq şəbəkə qayğı 183 00:10:39,680 --> 00:10:44,150 nişanı indi, mən həqiqətən ki, iş almaq üçün yenilemek üçün var. 184 00:10:44,150 --> 00:10:50,180 Oh, sorry. 185 00:10:50,180 --> 00:10:52,320 Bu təsadüfi nümunə vermək bəyənir. 186 00:10:52,320 --> 00:10:54,700 OK, biz əvəzinə bu misal istifadə edəcəyik. 187 00:10:54,700 --> 00:11:01,330 >> Bu fikir, bu API burada var olduğunu 188 00:11:01,330 --> 00:11:05,330 və API qaytarılması dəqiq nə edə bilərsiniz. 189 00:11:05,330 --> 00:11:10,220 Bu proqram sorğu göndərib edən API nə geri almaq edilir. 190 00:11:10,220 --> 00:11:13,680 Mənə bir az zoom edək 191 00:11:13,680 --> 00:11:18,340 və biz əsasən yalnız JSON əsas dəyər cüt bir sıra var edə bilərsiniz. 192 00:11:18,340 --> 00:11:23,220 Başqa sözlə, biz dəyərlər Xəritəçəkmə ki, burada bu hashmap var. 193 00:11:23,220 --> 00:11:26,440 Başqa sözlə, bu dəyərlərə il Xəritəçəkmə edir. 194 00:11:26,440 --> 00:11:32,600 1765-ci ildə biz ilk axtarış nə sözü 90 dəfə istifadə olunur 195 00:11:32,600 --> 00:11:35,810 1 milyon həyata, belə ki, biz bu nəticə geri alırıq. 196 00:11:35,810 --> 00:11:40,280 Biz burada bu kiçik nəticə mövzu var, çünki, məhz JSON deyil 197 00:11:40,280 --> 00:11:45,630 burada bu bütün obyekt yalnız bir böyük böyük JSON damcı olduğunu lakin bildiriş. 198 00:11:45,630 --> 00:11:51,070 Biz bu bütün element olan burada bir sıra var 199 00:11:51,070 --> 00:11:55,590 və siz bütün element orada bitir görürəm ki, sonra biz böyük bir element yoxdur 200 00:11:55,590 --> 00:11:59,430 ki, sonuna bütün yol aşağı düşür və burada bitir. 201 00:11:59,430 --> 00:12:02,200 Biz, bu 2 obyektləri ilə həqiqətən böyük array var 202 00:12:02,200 --> 00:12:04,630 və həmin obyektlərin hər bir hashmap edir. 203 00:12:04,630 --> 00:12:07,340 Siz bir harita var o hashmaps hər biri bilərsiniz 204 00:12:07,340 --> 00:12:12,700 bu göstərici 0 dəyəri və başqa hashmap bu dəyər dəyərinin, 205 00:12:12,700 --> 00:12:18,360 yenidən Y ox dəyərlərə X ox dəyərləri əks olunur. 206 00:12:18,360 --> 00:12:20,970 >> Siz, JSON ümumi mürəkkəb bir az olur, lakin bilərsiniz 207 00:12:20,970 --> 00:12:24,190 həqiqətən çox faydalıdır və bu, nisbətən daxil olmaq üçün çox asandır 208 00:12:24,190 --> 00:12:27,390 notation digər müxtəlif formaları. 209 00:12:27,390 --> 00:12:30,550 Bizdə həqiqətən almaq üçün API data gönderiyorsanız nə kimi, 210 00:12:30,550 --> 00:12:34,690 Mən bir az burada geri sonuna getmək üçün gedirəm. 211 00:12:34,690 --> 00:12:39,850 Bu web app qarşılıqlı bütün idarə ki, böyük JavaScript fayl 212 00:12:39,850 --> 00:12:44,810 və biz bu ən barədə qayğı yoxdur, ancaq bəzi qayğı yoxdur. 213 00:12:44,810 --> 00:12:47,410 Məsələn, biz bu buildQuery funksiyası qayğı 214 00:12:47,410 --> 00:12:50,670 və bu funksiya ideyasının, bu səhifə ətrafında axtarır əsasən 215 00:12:50,670 --> 00:12:53,750 istifadəçi, başqa sözlə, sorğu istəyir nə həyata figuring, 216 00:12:53,750 --> 00:12:57,090 onlar giriş onların axtarış sözü var olduğu qutuları yoxlanılması, 217 00:12:57,090 --> 00:13:01,380 müxtəlif Y və onlar seçilmiş və şey ki, növ bütün etdik ki, X ox dəyərlər yoxlanılması, 218 00:13:01,380 --> 00:13:06,650 və mən sonra API off göndərə bilərsiniz bu sorğu dəyəri, tüpürmək olacaq. 219 00:13:06,650 --> 00:13:09,180 >> Bu mürəkkəb görünür və bu, olduqca mürəkkəbdir 220 00:13:09,180 --> 00:13:18,090 amma-in yoxdur ki, mən artıq bu yapýyorum gedirəm, nə böyük-dir 221 00:13:18,090 --> 00:13:21,640 Mən tam olaraq bu sorğu dəyər çap Konsol almaq üçün gidiyorum ki, 222 00:13:21,640 --> 00:13:28,110 bu API off göndərilməsi ki. 223 00:13:28,110 --> 00:13:30,870 Yəni burada həqiqətən var. Bağışlayın, bu, çox şey nəticələri. 224 00:13:30,870 --> 00:13:33,690 Ancaq bu burada, biz qayğı nə bu obyekt. 225 00:13:33,690 --> 00:13:35,300 Bu sorğu obyektidir. 226 00:13:35,300 --> 00:13:40,670 Başqa sözlə, bu, web proqram API göndərilməsi dəqiq nə 227 00:13:40,670 --> 00:13:45,730 və s-nin bir az daxili baxaq, və biz burada bir neçə dəyərləri var bax. 228 00:13:45,730 --> 00:13:48,710 Biz milyon sözlə hər hadisələr olan, bu sayı növü görmək 229 00:13:48,710 --> 00:13:51,460 olan biz burada Y oxu seçdiyiniz məhz budur. 230 00:13:51,460 --> 00:13:53,740 Ki, gələn var harada. 231 00:13:53,740 --> 00:13:58,010 Biz müəyyən məlumat bazası var deməkdir bazası dəyəri var 232 00:13:58,010 --> 00:14:01,610 Bu data yaşayan və biz xüsusi məlumatların daxil olmaq üçün istədiyiniz 233 00:14:01,610 --> 00:14:04,950 Məsələn üçün körpə adları data fərqli. 234 00:14:04,950 --> 00:14:08,320 Sonra bu qruplar dəyəri 235 00:14:08,320 --> 00:14:12,090 biz fərqli olaraq il axtarmaq istəyirsinizsə ki, hansı 236 00:14:12,090 --> 00:14:16,030 hər hansı digər X ox dəyər. 237 00:14:16,030 --> 00:14:19,040 Sonra bir metodu, bir API çox şeyi edəcək. 238 00:14:19,040 --> 00:14:22,360 Başqa sözlə, bu API, həmçinin digər növ məlumat, qayıda bilər 239 00:14:22,360 --> 00:14:27,740 lakin bu halda, biz Y ox dəyərlərə X ox dəyərlər ki, birdən istəyirəm. 240 00:14:27,740 --> 00:14:30,730 Yəni ki, nə bu danışanlardan nə 241 00:14:30,730 --> 00:14:35,020 və biz 2 dəyərləri olan bu axtarış məhdudiyyətlər sıra var. 242 00:14:35,020 --> 00:14:40,720 Birincisi biz burada görmək nə, hansı dəyərlərin bütün 243 00:14:40,720 --> 00:14:43,020 başında ilk kiçik qutu içində. 244 00:14:43,020 --> 00:14:47,570 >> Başqa sözlə, biz sözü döyüş üçün baxmaq istəyirəm, və biz bu filtrelemek istəyirsinizsə 245 00:14:47,570 --> 00:14:51,920 Amerika ədəbiyyatı ərzində ingilis mətnləri ilə. 246 00:14:51,920 --> 00:14:54,590 Biz USA olan bu ölkə var. 247 00:14:54,590 --> 00:14:59,130 Biz ingilis olan bir dil var, belə ki, biz bu müxtəlif yerlərində bütün 248 00:14:59,130 --> 00:15:02,690 bütün biz istəyirik nə API izah olunur. 249 00:15:02,690 --> 00:15:04,940 Biz geri almaq data hələ bilmirəm 250 00:15:04,940 --> 00:15:10,970 ancaq data müəyyən forma almaq üçün gedir ki, bilirik. 251 00:15:10,970 --> 00:15:13,650 Bu, məsələn, mürəkkəb tərəfində sort edir 252 00:15:13,650 --> 00:15:16,180 və siz mütləq bir API bu kompleks istifadə edilə bilməz 253 00:15:16,180 --> 00:15:20,600 lakin bu API'ler nə edə çeşidi və güc göstərməkdir. 254 00:15:20,600 --> 00:15:24,980 Yəni, nisbətən sadə sorğu sistemi istifadə edərək biz əsasən bir giriş qutusuna var 255 00:15:24,980 --> 00:15:29,490 müxtəlif yerlərdə bir neçə digər seçiciler ilə. 256 00:15:29,490 --> 00:15:32,010 >> Mənə burada geri kiçiltmək edək. 257 00:15:32,010 --> 00:15:37,720 Biz bir neçə müxtəlif metadata Marka ilə giriş qutusuna var 258 00:15:37,720 --> 00:15:40,610 və biz Y ox və X ox Marka var. 259 00:15:40,610 --> 00:15:42,830 Biz həqiqətən ki, bir çox sahələrdə yoxdur 260 00:15:42,830 --> 00:15:46,210 və biz API bir növ sorğu edirik çox asanlıqla görə bilərsiniz 261 00:15:46,210 --> 00:15:48,510 və geri məlumat almaq və bu chart onu qoymaq 262 00:15:48,510 --> 00:15:52,080 daha sonra bir faydalı şəkildə keçirmək üçün gedir. 263 00:15:52,080 --> 00:15:54,970 Uşaqlar üçün bir az daha yaxından tanış ola bilər ki, başqa bir misal baxmaq 264 00:15:54,970 --> 00:15:56,510 biz Facebook çevirmək olacaq. 265 00:15:56,510 --> 00:15:59,440 Facebook API, Facebook Qrafik adlanır 266 00:15:59,440 --> 00:16:04,390 və əsasən o deməkdir ki, nə Facebook bu veritabanını kimi görür ki, 267 00:16:04,390 --> 00:16:08,000 bütün bir-birinə müəyyən münasibətlər var ki, müxtəlif hissələri lot. 268 00:16:08,000 --> 00:16:11,070 Yəni, mən Facebook bir istifadəçi deyiləm, mən profil var 269 00:16:11,070 --> 00:16:14,310 və mən də müəyyən dostları var və onların hər bir profil var 270 00:16:14,310 --> 00:16:17,580 və dostlarım hər müxtəlif şərhlər olan divar var 271 00:16:17,580 --> 00:16:20,800 və bu şərhlər hər sevir və bir şey ki, sort bütün var. 272 00:16:20,800 --> 00:16:23,100 >> Facebook müxtəlif yerlərində çox var. 273 00:16:23,100 --> 00:16:26,670 Bu, bir natarazcasına kompleks API, və siz onu ilə edə bilərsiniz ton var 274 00:16:26,670 --> 00:16:28,450 lakin istifadə etmək əslində olduqca sadə. 275 00:16:28,450 --> 00:16:33,680 Mən graph.facebook.com / billyjanitsch gedərək həyata başlamaq gedirəm 276 00:16:33,680 --> 00:16:38,430 mənim unikal hesab adı və hesabı adı da olacaq 277 00:16:38,430 --> 00:16:43,710 söz bir növ siz seçdiyiniz halda, və ya yalnız ədəd bir simli ola bilər. 278 00:16:43,710 --> 00:16:46,360 Biz geri almaq olduqca əsas məlumat. 279 00:16:46,360 --> 00:16:50,460 Biz Billy, Janitsch bir adı, bir adı var ki, bax. 280 00:16:50,460 --> 00:16:53,370 Mən, bir Facebook ID var. 281 00:16:53,370 --> 00:16:57,920 Mən kişi deyiləm ki, mən dil qəbulu var bilər 282 00:16:57,920 --> 00:17:01,290 British İngilis dili. 283 00:17:01,290 --> 00:17:03,490 Yəni, biz burada çox əsas məlumat görüyorsunuz. 284 00:17:03,490 --> 00:17:08,670 Bu, çox deyil, lakin bu, bizim orada nə bir fikir vermək yoxdur. 285 00:17:08,670 --> 00:17:10,849 >> Biz məsələn, David Malan üçün eyni şey edə bilərsiniz. 286 00:17:10,849 --> 00:17:13,599 Mən onun adını dmalan olduğunu düşünürəm. 287 00:17:13,599 --> 00:17:16,369 Biz Davuda Malan unikal ID var bax. 288 00:17:16,369 --> 00:17:19,300 O, soyadı, adı, atasının adı, soyadı var. 289 00:17:19,300 --> 00:17:24,210 Biz də o kişi və ABŞ İngilis, onun dil dəsti var ki, bax. 290 00:17:24,210 --> 00:17:26,869 Yəni, biz burada olduqca əsas məlumat görüyorsunuz. 291 00:17:26,869 --> 00:17:28,860 Biz başqa bir şey kontrol cəhd əgər İndi, nə olar? 292 00:17:28,860 --> 00:17:33,060 Gəlin mən David Malan Facebook bəyəndim nə maraqlı deyiləm deyirlər. 293 00:17:33,060 --> 00:17:36,860 I / sevir edə bilərsiniz. İndi biz bir problem daxil etdik. 294 00:17:36,860 --> 00:17:39,280 Biz çıxış mö'cüzə deyir ki, səhv bir növ var 295 00:17:39,280 --> 00:17:41,660 Bu vəsaitin tələb etmək tələb olunur. 296 00:17:41,660 --> 00:17:44,730 Bu barədə düşünmək, bu qəribə olardı, çünki Lakin, əslində mənada edir 297 00:17:44,730 --> 00:17:47,830 Facebook verilənlər bazası hər bir hissəsi daxil ola bilər 298 00:17:47,830 --> 00:17:50,170 yalnız sadə API bir növ ki, sağ? 299 00:17:50,170 --> 00:17:56,040 Başqa sözlə, ehtimalla sizin məlumat istəyən hər kəs tərəfindən istifadə edilə bilməz. 300 00:17:56,040 --> 00:17:58,330 >> Bu səhv o deməkdir ki, nə dəqiq deyil. 301 00:17:58,330 --> 00:18:03,630 Bəzi API onların məlumat əldə etmək üçün müəyyən icazələrin tələb edir. 302 00:18:03,630 --> 00:18:06,940 Facebook kimi və daha çox inkişaf etmiş API, 303 00:18:06,940 --> 00:18:09,840 müəyyən icazələrin müəyyən şeyə tələb edəcək. 304 00:18:09,840 --> 00:18:12,650 Mən David Malan haqqında əsas məlumat görə bilərsiniz. 305 00:18:12,650 --> 00:18:15,950 Mən, o kişi ki, o, ABŞ-da yaşayan bilərsiniz 306 00:18:15,950 --> 00:18:19,270 amma həqiqətən keçmiş bir şey görmək mümkün deyil. 307 00:18:19,270 --> 00:18:23,050 İndi bu ətrafında almaq üçün, Facebook bu gözəl alət var 308 00:18:23,050 --> 00:18:27,690 olan graph API explorer, və ki, fikir sizin sort bilər 309 00:18:27,690 --> 00:18:31,880 öz haqq-hesab əsasında özünüz üçün icazələrin etmək 310 00:18:31,880 --> 00:18:35,680 və sonra xüsusi hesabı bilərsiniz şeyi bilərsiniz. 311 00:18:35,680 --> 00:18:45,120 Məsələn, əgər graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 whoops, mən burada mənim simge revalidate var danışarlar. 313 00:18:53,510 --> 00:18:55,950 Okay. 314 00:18:55,950 --> 00:19:01,740 Mən bunu varsa, indi mən geri bu obyekt almaq böyük görmək 315 00:19:01,740 --> 00:19:06,300 I kateqoriya Oyunlar və Oyuncaqlar olan hovuz əriştə, istəyirəm ki, deyir. 316 00:19:06,300 --> 00:19:08,620 Mən kateqoriya Animal olan walruses kimi. 317 00:19:08,620 --> 00:19:10,180 Bunlar mənim faktiki Facebook likes var. 318 00:19:10,180 --> 00:19:13,280 Onlar utancaq cür edirik. 319 00:19:13,280 --> 00:19:16,090 >> Amma biz bu data bütün JSON-ci ildə geri bilərsiniz. 320 00:19:16,090 --> 00:19:18,160 Bu olduqca oxunaqlı deyil. 321 00:19:18,160 --> 00:19:20,970 Başqa sözlə, biz, bir sıra bir növ məlumatların bu mapping var 322 00:19:20,970 --> 00:19:25,220 və bu serialın hər element eşler bir hashmap edir 323 00:19:25,220 --> 00:19:28,530 bir kimi adı və bir kimi kateqoriyası ilə. 324 00:19:28,530 --> 00:19:31,240 Hər kimi unikal ID var. 325 00:19:31,240 --> 00:19:34,510 Biz əldə edə bilərsiniz ki, məlumatların müxtəlif şeyi bütün növ var 326 00:19:34,510 --> 00:19:37,980 və bir CS50 yekun layihə üçün Facebook API istifadə ilgileniyorsanız 327 00:19:37,980 --> 00:19:40,720 və ya bir şey üçün həqiqətən çox doable ki kimi. 328 00:19:40,720 --> 00:19:44,260 Əsasən siz identifikasiyası şey ətrafında almaq necə Facebook edir 329 00:19:44,260 --> 00:19:48,030 bir OAuth adlı sistem, və ya Open Authentication istifadə edir 330 00:19:48,030 --> 00:19:52,870 və mən OAuth və ya müxtəlif tipli çünki indi onu almaq istəmirəm 331 00:19:52,870 --> 00:19:56,060 identifikasiyası və müxtəlif API arasında bir çox fərqli çalışır 332 00:19:56,060 --> 00:19:58,320 Mən hər bir üzərində gedən uzun vaxt sərf edə bilər 333 00:19:58,320 --> 00:20:01,170 lakin onlar həqiqətən olduqca özünü izahlı istəyirik. 334 00:20:01,170 --> 00:20:04,050 >> Google Facebook API Əgər çox oxunaqlı deyil. 335 00:20:04,050 --> 00:20:06,670 Bütün spec var. 336 00:20:06,670 --> 00:20:10,210 Məsələn, bu, Facebook API üçün sənədləşdirmə edir 337 00:20:10,210 --> 00:20:14,170 və mən User səhifə Ben bilərsiniz, belə ki, mən hər şeyi müxtəlif növləri haqqında məlumat əldə edə bilərsiniz 338 00:20:14,170 --> 00:20:17,170 qədər məlumat almaq üçün mövcud olan 339 00:20:17,170 --> 00:20:21,550 və həmçinin Mən onlara daxil olmaq üçün müxtəlif icazə lazımdır. 340 00:20:21,550 --> 00:20:25,470 Gördük ki, biz, adı və ya gender olmaq üçün icazələrin ehtiyac yoxdur 341 00:20:25,470 --> 00:20:29,380 lakin kənarda biz çox şey üçün icazələri lazımdır. 342 00:20:29,380 --> 00:20:33,040 Bu səhifə, daha doğrusu, bu veb də necə almaq sizə xəbər verəcəkdir 343 00:20:33,040 --> 00:20:35,640 özünüzü kimlik etmək üçün bir mö'cüzə. 344 00:20:35,640 --> 00:20:39,290 Ən autentifikasiya sisteminin simge bir növ istifadə 345 00:20:39,290 --> 00:20:42,880 Bu unikal dəyəri olan həqiqətən uzun və təsadüfi string ki, aldığı 346 00:20:42,880 --> 00:20:46,240 və bu yolla onlar sizinlə edirik ki, sorğu şərik bilər. 347 00:20:46,240 --> 00:20:50,560 Başqa sözlə, onlar öz məlumatları ilə şübhəli bir şey məşğul deyilik bilirik. 348 00:20:50,560 --> 00:20:53,340 Onlar əldə etdiyiniz dəqiq bilirik. 349 00:20:53,340 --> 00:20:56,180 Ayrıca məlumat keçirmək üçün icazə var. 350 00:20:56,180 --> 00:20:59,110 >> Etdiyiniz Əgər Facebook app və app müəyyən istifadəçisi var 351 00:20:59,110 --> 00:21:03,380 və bu istifadəçilər, app, onların profil müəyyən hissələri daxil etmək üçün imkan 352 00:21:03,380 --> 00:21:07,790 sonra nə API açarı və ya app istifadə ki mö'cüzə 353 00:21:07,790 --> 00:21:11,090 o istifadəçilər üçün məlumat əldə edə biləcəklər. 354 00:21:11,090 --> 00:21:13,780 Bu mürəkkəb səs bilər, lakin çox pis deyil 355 00:21:13,780 --> 00:21:16,810 Əgər Facebook istifadə etmək istəyirsinizsə, və yüksək gəlir ki, siz 356 00:21:16,810 --> 00:21:18,990 onların API ilə ətrafında oynayan hesab edir. 357 00:21:18,990 --> 00:21:21,610 Bu, çox sərin var, siz müxtəlif çox şey edə bilərsiniz. 358 00:21:21,610 --> 00:21:24,880 Istifadəçi bu icazələri verir Əgər belə API geri bilər 359 00:21:24,880 --> 00:21:28,820 və mən həqiqətən bu istifadəçi divar yazı istəyirəm, və ya mən onlara bir fotoşəkil göndərmək olsun ki, 360 00:21:28,820 --> 00:21:32,390 Sizin news feed sizi bəzən o annoying şeyi almaq lazımdır niyə və ki 361 00:21:32,390 --> 00:21:37,840 Dostuna qəribə site və ya kimi bir şey bir növ bu video seyr etmişdir etdi. 362 00:21:37,840 --> 00:21:43,120 Ki, app ki, şəxsin divar yazmaq üçün giriş verilmiş olmasıdır. 363 00:21:43,120 --> 00:21:48,350 Ideyası ümumilikdə Facebook API olduqca mürəkkəbdir, həm də həqiqətən faydalı. 364 00:21:48,350 --> 00:21:53,220 Əlbəttə siz hələ yekun layihə üçün arıyorsanız həyata yoxlanılması dəyər. 365 00:21:53,220 --> 00:21:57,930 >> Mən artıq getmək gedirəm ki, API bir suite CS50 API edir. 366 00:21:57,930 --> 00:22:00,070 Mənə burada zoom edək. 367 00:22:00,070 --> 00:22:03,390 CS50 həqiqətən API bir sıra birlikdə verilib 368 00:22:03,390 --> 00:22:07,080 bir yekun layihə üçün və ya sadəcə edirik ki, bir şey üçün istifadə edə bilərsiniz ki. 369 00:22:07,080 --> 00:22:12,830 Və onlar əsasən Harvard əlaqədar istəyirik, və onlar HUDS menyusundan fərqli 370 00:22:12,830 --> 00:22:17,780 Məsələn, bu Harvard Hadisələr API üçün, sizə bir siyahısına daxil imkan 371 00:22:17,780 --> 00:22:21,290 müxtəlif Harvard gedir ki, hadisələr və şeyi ki, sort. 372 00:22:21,290 --> 00:22:24,510 Və biz, bu hər hansı bir basın və bir spec əldə edə bilərsiniz 373 00:22:24,510 --> 00:22:28,090 Əgər hər hansı bir API tapa bilərsiniz və fikir olan 374 00:22:28,090 --> 00:22:33,920 siz bilirsiniz imkan verir, A, xüsusilə nə API tələb etmək və necə tələb etmək. 375 00:22:33,920 --> 00:22:37,370 Başqa sözlə, mən sabah olur ki, bütün hadisələr istəyirsinizsə 376 00:22:37,370 --> 00:22:42,550 sonra, açıq-aydın bir müəyyən formatda istəyirəm ki, tarix vermək var 377 00:22:42,550 --> 00:22:46,030 və B, onu mənə geri vermək olacaq dəqiq nə mənə olacaq. 378 00:22:46,030 --> 00:22:48,590 Mən bu JSON obyekt qayıtmaq üçün gedirəm deyəcəklər 379 00:22:48,590 --> 00:22:50,960 Gördüyünüz və ya kimi, müxtəlif formatları var. 380 00:22:50,960 --> 00:22:54,050 >> Siz də, misal üçün, bir CSV kimi məlumatlar ola bilər. 381 00:22:54,050 --> 00:22:57,620 Amma siz ki, data siz geri almaq zaman baxmaq niyyətindədir dəqiq necə 382 00:22:57,620 --> 00:23:00,610 belə ki, bu, müəyyən şeylər edə bilərsiniz. 383 00:23:00,610 --> 00:23:07,240 Biz API sorğu istəyirsinizsə Biz aşağı diyirləyin və misal üçün bax bilər 384 00:23:07,240 --> 00:23:11,500 təqvim almaq üçün, biz bu URL istifadə edə bilərsiniz 385 00:23:11,500 --> 00:23:16,480 və biz məhz istədiyiniz data olacaq müəyyən parametrləri verir. 386 00:23:16,480 --> 00:23:19,540 Və beləcə, biz geri müəyyən formatda data istəyirsinizsə, 387 00:23:19,540 --> 00:23:23,790 sonra biz bir CSV data çıxış üçün xahiş edə bilər 388 00:23:23,790 --> 00:23:27,700 və biz API keçən olduğunuz başqa bir parametr var. 389 00:23:27,700 --> 00:23:29,210 Orada nə sərin şeyi çox. 390 00:23:29,210 --> 00:23:32,550 Mən mütləq CS50 API həyata yoxlanılması məsləhətdir. 391 00:23:32,550 --> 00:23:36,000 >> Mən bir az xüsusilə bu Harvard Qida API baxmaq gedirəm. 392 00:23:36,000 --> 00:23:39,870 Mən, həqiqətən, tasarladık bir şey, bu Harvard Noms haqqinda 393 00:23:39,870 --> 00:23:44,930 olan gün üçün HUDS menyu almaq üçün CS50 Qida API istifadə edir. 394 00:23:44,930 --> 00:23:50,400 Və məsləhət məktəb insanlar üçün HUDS Harvard yemək xidmət edir. 395 00:23:50,400 --> 00:23:55,130 Nə almaq biz nahar bax gün üçün yemək bütün olan bu səhifə. 396 00:23:55,130 --> 00:23:58,130 Biz bir neçə müxtəlif kateqoriyalar var. Biz lobya və bütün taxıl stansiyası var. 397 00:23:58,130 --> 00:24:00,340 Biz qəhvəyi düyü stansiyası var. 398 00:24:00,340 --> 00:24:03,360 Biz bu neçə ərzaq məhsulları var batch üçün bilərsiniz. 399 00:24:03,360 --> 00:24:07,030 Biz onlara basın, onda biz qidalanma məlumat almaq. 400 00:24:07,030 --> 00:24:12,240 Siz merak edilmiş halda bu, qreypfrut üçün qidalanma məlumat bax. 401 00:24:12,240 --> 00:24:14,870 Və yenə də, biz burada bir az geri sonuna daxil PEER olacaq 402 00:24:14,870 --> 00:24:18,530 və bu məlumat almaq üçün bunu tam olaraq nə görmək. 403 00:24:18,530 --> 00:24:21,710 Və əslində bütün çox mürəkkəb ola çıxır. 404 00:24:21,710 --> 00:24:28,720 Bu fayl, bir az messy görünür, lakin bu bütün veb idarə olunur unutmayın 405 00:24:28,720 --> 00:24:34,130 və mən aşağı diyirləyin əgər biz bu dəyişikliyi data funksiyası görürük. 406 00:24:34,130 --> 00:24:36,630 >> İndi, aydın olmaq, bu, CoffeeScript yazılır 407 00:24:36,630 --> 00:24:39,570 yəqin ki, əvvəl görməmişik bir dil olan. 408 00:24:39,570 --> 00:24:44,810 Bu pseudocode sanki Lakin bu, olduqca oxunaqlı deyil, mən onun vasitəsilə gəzmək lazımdır. 409 00:24:44,810 --> 00:24:49,080 Change tarixi, bu tarixi dəyəri almaq niyyətində olan bir funksiyası 410 00:24:49,080 --> 00:24:51,740 və bu da biz çox qayğı olmayan bir ilk etmək olacaq. 411 00:24:51,740 --> 00:24:54,110 Amma əhəmiyyətli olan, bu tarix var ki, 412 00:24:54,110 --> 00:25:00,080 və tarix biz üçün ərzaq məhsullarının bütün tələb etmək istəyirəm ki, gün. 413 00:25:00,080 --> 00:25:04,030 Və sonra, biz burada sintaksis bir az var bax 414 00:25:04,030 --> 00:25:09,000 hansı əsasən oxunaqlı formata ki, tarixi təhlil edilir. 415 00:25:09,000 --> 00:25:11,920 Başqa sözlə, API müəyyən formatda tarix tələb edir. 416 00:25:11,920 --> 00:25:17,390 Siz yalnız Noyabr 16, 2012 AD deyə bilmərəm. 417 00:25:17,390 --> 00:25:20,320 Bu ilə nə deyil. Bu xüsusi formatda tarixi istəyir. 418 00:25:20,320 --> 00:25:23,230 Biz burada yapýyorsun bütün, tam ki, format o verir 419 00:25:23,230 --> 00:25:26,520 bir il dəyər və sonra bir tire, bir ay dəyər ki, 420 00:25:26,520 --> 00:25:29,420 başqa tire və tarixi dəyəri. 421 00:25:29,420 --> 00:25:34,910 Və biz də biz data JSON istehsal olmaq istəyirik deyirlər. 422 00:25:34,910 --> 00:25:37,560 >> İndi biz bu AJAX xahiş edirik, və bayaq qeyd etdiyim kimi 423 00:25:37,560 --> 00:25:41,680 jQuery siz bütün daxil olan bu super faydalı AJAX funksiyası var 424 00:25:41,680 --> 00:25:45,780 bir neçə burada parametrləri, və geri tam olaraq istədiyiniz nə verəcək. 425 00:25:45,780 --> 00:25:50,490 Biz buna getmək istədiyiniz URL CS50 Qida API ki, izah edirik 426 00:25:50,490 --> 00:25:52,270 olan biz spec əldə. 427 00:25:52,270 --> 00:25:56,730 Biz JSON və məlumatlar istəyirəm ki, 428 00:25:56,730 --> 00:25:59,490 biz biz burada müəyyən etdiyiniz Bu data vermək olacaq. 429 00:25:59,490 --> 00:26:02,670 Bu üçün ərzaq istədiyiniz gün. 430 00:26:02,670 --> 00:26:07,790 Və sonra biz bütün, uğurlar funksiyası bir növ müəyyən edir 431 00:26:07,790 --> 00:26:11,980 olan API məlumatlar qayıtdıqdan nə olur əsasən. 432 00:26:11,980 --> 00:26:15,490 Başqa sözlə, biz istəyirik ki, parametrlərin bütün up paketlenmiş sonra 433 00:26:15,490 --> 00:26:20,530 Bu halda, biz istəyirik ki, gün və biz JSON onu istəyirəm ki, bu da 434 00:26:20,530 --> 00:26:23,840 və biz indi API, tamam deyib, API üçün yola 435 00:26:23,840 --> 00:26:26,350 burada data, mən sizin üçün geri var edilir. 436 00:26:26,350 --> 00:26:29,930 Biz verilmiş deməkdir uğur funksiyası var ki, API 437 00:26:29,930 --> 00:26:32,230 uğurla bəzi data qaytarır, biz nə etməliyəm? 438 00:26:32,230 --> 00:26:35,980 >> Və biz bütün bu yeniləmə menyu funksiyası zəng ki, həyata çevirir 439 00:26:35,980 --> 00:26:42,680 API qayıdıb nə ilə, belə ki, axtarış edə bilərsiniz 440 00:26:42,680 --> 00:26:47,970 və biz edirik burada yeni sintaksis bir dəstə istifadə etdiyini görmək 441 00:26:47,970 --> 00:26:52,220 HTML yeniləmək və bu yeni data daxil. 442 00:26:52,220 --> 00:26:56,580 Bu imkan verir, biz hər tərəfdən bu oxlar var, biz basın 443 00:26:56,580 --> 00:27:01,060 və indi biz növbəti gün üçün data geçirdiğiniz və yenidən növbəti gün üçün, 444 00:27:01,060 --> 00:27:04,820 və hər zaman ki, tarixi dəyər yenilənməsi və API querying oldu 445 00:27:04,820 --> 00:27:07,510 Bəzi məlumatlara geri almaq və site onu qoymuşdur. 446 00:27:07,510 --> 00:27:10,590 Yine,, super, super faydalı görürük. 447 00:27:10,590 --> 00:27:14,410 Bu app birlikdə hack mənə bir neçə saat davam etdi 448 00:27:14,410 --> 00:27:20,140 və mən açıq-aydın bir az daha çox təcrübə, ancaq CS50 yekun layihə 449 00:27:20,140 --> 00:27:22,870 çox bu kimi bir şey baxa bilərsiniz. 450 00:27:22,870 --> 00:27:29,540 >> API onlar edirlər səy məbləği üçün güclü Super olunur. 451 00:27:29,540 --> 00:27:32,800 Mən artıq getmək gedirəm son şey geniş bir neçə API edir. 452 00:27:32,800 --> 00:27:35,480 Mən qədər onlar xüsusi nə kimi onlara daxil qədər almaq deyil 453 00:27:35,480 --> 00:27:38,740 amma siz orada nə bir fikir vermək lazımdır. 454 00:27:38,740 --> 00:27:42,700 2 həqiqətən faydalı olanlar, siz analiz və ya vizual ilgileniyorsanız 455 00:27:42,700 --> 00:27:45,960 və ya kimi bir şey varsa, Freebase və Wikipedia var. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-ehtimalla Bildiyiniz-bir pulsuz online ensiklopediya, 457 00:27:49,800 --> 00:27:53,230 və həqiqətən, misal üçün, istədiyiniz əgər, bir API var 458 00:27:53,230 --> 00:27:56,250 mətnləri bütün ahtapot üçün məqalələr almaq 459 00:27:56,250 --> 00:27:58,030 siz çox asanlıqla bunu edə bilər. 460 00:27:58,030 --> 00:28:02,300 Just hey ki, Wikipedia API, mən bu kimi geri data istərdim 461 00:28:02,300 --> 00:28:07,010 və mən bu formatda bu istərdim, mən istədiyiniz məqalə ahtapot edir 462 00:28:07,010 --> 00:28:09,820 və çox tez məlumat geri verəcək. 463 00:28:09,820 --> 00:28:12,230 Site bir növ etmək istəyirəm ki, əgər həqiqətən faydalı ola bilər 464 00:28:12,230 --> 00:28:16,200 ki, Vikipediya və ya kimi bir şey daha yaxşı görüntüleyici var. 465 00:28:16,200 --> 00:28:21,350 >> O qədər API kimi bir az çətindir, baxmayaraq Freebase, oxşar sortudur. 466 00:28:21,350 --> 00:28:24,390 Freebase bir online ensiklopediya var ki, Wikipedia kimi 467 00:28:24,390 --> 00:28:29,050 ki, çox və müxtəlif mövzular bütün növləri haqqında müxtəlif məlumatların çox şey 468 00:28:29,050 --> 00:28:33,150 lakin bu Wikipedia qədər fərqli olan bir relational verilənlər bazası, saxlanılan var. 469 00:28:33,150 --> 00:28:36,410 Vikipediya, digər məmulatlar bağlı öz məqalə və yazılar var 470 00:28:36,410 --> 00:28:38,860 lakin çox hissəsi üçün, əgər ahtapot üçün məlumat istəyirəm 471 00:28:38,860 --> 00:28:41,990 Siz ahtapot maddə getmək ki, məlumat almaq və siz mətn bir dəstə var 472 00:28:41,990 --> 00:28:43,830 octopuses haqqında, böyük ki, belə. 473 00:28:43,830 --> 00:28:46,870 Freebase ki, bir az daha mürəkkəb şəkildə işləyir 474 00:28:46,870 --> 00:28:48,930 hər şey bir-birinə bağlıdır. 475 00:28:48,930 --> 00:28:52,620 Yəni, əgər biz ahtapot aradığınız 476 00:28:52,620 --> 00:28:54,940 sonra Bugün kateqoriyalar bir dəstə var. 477 00:28:54,940 --> 00:28:57,920 >> Məsələn, bir heyvan, bu, sualtı yaşayır 478 00:28:57,920 --> 00:28:59,710 bir müəyyən bədən istiliyi var. 479 00:28:59,710 --> 00:29:01,210 Bilmirəm. 480 00:29:01,210 --> 00:29:04,230 Və bu kateqoriyaların bütün getmək bilər başqa yerlərə bağlantılar 481 00:29:04,230 --> 00:29:06,640 eyni kateqoriya ilə şeyi görmək. 482 00:29:06,640 --> 00:29:13,450 Digər sözlə, ilbizlər data dəsti, bütün heyvanlar üçün müəyyən məlumat üçün bir keçid ola bilər 483 00:29:13,450 --> 00:29:16,790 və mənə həqiqətən tez bazası ətrafında hərəkət imkan olardı. 484 00:29:16,790 --> 00:29:21,740 Siz müqayisə kimi bir şey edirik, bu çox faydalı ola bilər. 485 00:29:21,740 --> 00:29:24,490 Başqa sözlə, müəyyən bir şey verilmiş, siz görmək istəyirəm 486 00:29:24,490 --> 00:29:27,890 bununla bağlı və buna bağlı deyil nə oldu. Başqa nə 487 00:29:27,890 --> 00:29:30,700 Şey ki, sort. Bu yolla bir sıra faydalı ola bilər. 488 00:29:30,700 --> 00:29:34,250 Bir problem daha arıyorsanız və daha mürəkkəb şeyi etmək üçün əgər 489 00:29:34,250 --> 00:29:38,740 Mən Freebase API nəzər alaraq hesab edirəm. 490 00:29:38,740 --> 00:29:44,670 Amma əsasən Wikipedia qədər məlumat əldə kimi getmək üçün bir çox sadə bir yerdir. 491 00:29:44,670 --> 00:29:48,340 Mən baxmaq lazımdır ki, başqa bir yerdə Last.fm və mən həqiqətən site to gedirəm 492 00:29:48,340 --> 00:29:53,800 halda, bəzi insanlar tanış olmayan, lakin Last.fm əsasən bir musiqi 493 00:29:53,800 --> 00:29:57,220 zövqə və tövsiyələr haqqinda. 494 00:29:57,220 --> 00:29:59,000 Siz hesab edə bilər. 495 00:29:59,000 --> 00:30:04,250 Siz musiqi oyunçu yükleme musiqi başlaya bilərsiniz 496 00:30:04,250 --> 00:30:08,020 saytına və əsasən bu musiqi tövsiyələr verilməsi başlayacaq 497 00:30:08,020 --> 00:30:10,030 Sizə qulaq asmaq nə əsaslanır. 498 00:30:10,030 --> 00:30:14,270 >> Sizin profilinize gedin Məsələn, səhifə-bu mina deyil 499 00:30:14,270 --> 00:30:18,180 Siz son musiqi dinləyən bir siyahısı var edə bilərsiniz. 500 00:30:18,180 --> 00:30:22,550 Siz ümumi sevimli rəssamların şey ki, sort, bütün bilərsiniz 501 00:30:22,550 --> 00:30:25,280 və yenə Last.fm arxasında böyük bir API var 502 00:30:25,280 --> 00:30:29,360  və çox və həqiqətən sərin şeyi çox etmək üçün istifadə edə bilərsiniz. 503 00:30:29,360 --> 00:30:38,870 Məsələn, mən bu Last.fm Tools veb olan dostunuza səhifə gedəcəyəm. 504 00:30:38,870 --> 00:30:42,380 Bu, əslində Last.fm API inşa ki, bir platforma 505 00:30:42,380 --> 00:30:45,420 və bu, olduqca maraqlı şeylər bir sıra edir. 506 00:30:45,420 --> 00:30:50,260 Məsələn, mənim istifadəçi adı ilə daxil edin 507 00:30:50,260 --> 00:30:53,110 Mən, məsələn, bir tag cloud yaratmaq üçün xahiş edə bilər 508 00:30:53,110 --> 00:30:56,480 və nə ki, nə bir şəkil mənə geri vermək deyil 509 00:30:56,480 --> 00:30:59,850 bütün müxtəlif janrları, mən qulaq asmaq istəyirəm ki, bir şey ki, sort. 510 00:30:59,850 --> 00:31:01,410 Necə bunu edir? 511 00:31:01,410 --> 00:31:05,670 Çox əsasən o burada Last.fm API söyləyərək oldu bu istifadəçi var. 512 00:31:05,670 --> 00:31:10,710 Mən onlar qulaq etdik ki, hər mahnı janrının bilmək istərdim 513 00:31:10,710 --> 00:31:15,130 və Last.fm API üçün olduqca sadə AJAX zəng edərək bunu edə bilərsiniz. 514 00:31:15,130 --> 00:31:18,990 Siz açıq-aydın bir digər məhsulları aparılır sonra bir böyük siyahısını geri almaq və olacaq 515 00:31:18,990 --> 00:31:22,280 bir söz bulud çevrilsin, lakin ümumi bilərsiniz 516 00:31:22,280 --> 00:31:25,850 daxil olmaq üçün çox asan və istifadə üçün çox asandır. 517 00:31:25,850 --> 00:31:30,750 Şeyi bir sıra həqiqətən gözəl. 518 00:31:30,750 --> 00:31:35,940 >> Mən ümumi demək lazımdır haqqında bütün düşünürəm. 519 00:31:35,940 --> 00:31:39,040 Mən ümumi API haqqında qeyd edəcəyik son bir şey ki, 520 00:31:39,040 --> 00:31:41,840 siz, bəzən dərəcəsi məhdudlaşdıran deyilən bir şey daxil olacaq 521 00:31:41,840 --> 00:31:44,940 və dərəcəsi məhdudlaşdırılması ideyası API'ler sui istəmirəm. 522 00:31:44,940 --> 00:31:48,130 Başqa sözlə, bu web sites bir çox API ki, həqiqətən gözəl 523 00:31:48,130 --> 00:31:51,070 siz getmək və pulsuz istifadə edə bilərsiniz. 524 00:31:51,070 --> 00:31:54,460 Lakin, milyonlarla ya gündə sorğu milyardlarla edirik, əgər 525 00:31:54,460 --> 00:31:57,610 misal üçün, sonsuz querying ki, sonsuz loop yapışdırılmalıdır edirsinizsə 526 00:31:57,610 --> 00:32:00,680 bir API növ və məlumatların böyük məbləği geri almaq, 527 00:32:00,680 --> 00:32:04,570 aşkar yaxşı deyil, bu dərəcəsi xüsusiyyət məhdudlaşdıran var API bir çox nə belə 528 00:32:04,570 --> 00:32:09,970 ki, siz yalnız IP-ünvanı və ya kimi bir şey gündə 1000 sorğu edə bilər deyir. 529 00:32:09,970 --> 00:32:12,540 Və test bir çox və bir şey ki, sort edirik, əgər 530 00:32:12,540 --> 00:32:14,890 Siz bəzən ki, daxil olacaq, və birdən-birə bu bağlamaq olacaq 531 00:32:14,890 --> 00:32:18,280 və demək, mən sizi bir daha məlumat verən deyiləm. 532 00:32:18,280 --> 00:32:20,000 >> Nə istəyirəm qaydaları ilə oynamaq edir. 533 00:32:20,000 --> 00:32:22,950 Siz diqqətlə API spec oxumaq əmin etmək istəyirəm. 534 00:32:22,950 --> 00:32:26,330 Bu kimi əlavə müəyyən qaydaları vardır yalnız gündə X sorğu edə bilər 535 00:32:26,330 --> 00:32:30,000 və ya yalnız verilənlər bazası bir hissəsi dəfə müəyyən sayda əldə edə bilərsiniz 536 00:32:30,000 --> 00:32:32,900 və ya siz qalmaq əmin etmək istəyirəm ki, kimi bir şey. 537 00:32:32,900 --> 00:32:38,360 Kimi uzun o qaydaları ərzində oynamaq kimi yəqin API istifadə edərək, həqiqətən, gözəl vaxt lazımdır. 538 00:32:38,360 --> 00:32:42,030 Ümumi paket API, həqiqətən, həqiqətən faydalı edir. 539 00:32:42,030 --> 00:32:45,610 >> Bir API orada demək olar ki, hər böyük web xidmət üçün var. 540 00:32:45,610 --> 00:32:50,700 Google Tools Suite, Google Maps, Google Earth, və olduqca çox hər hansı bir hissəsi 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Calendar, o şeyi bütün API var. 542 00:32:54,390 --> 00:32:58,280 Siz server həm GET data onları istifadə və server məlumat göndərmək bilər. 543 00:32:58,280 --> 00:33:00,870 Bir təqvim app etmək istəyirdi əgər başqa sözlə, yeniləyə bilər ki, 544 00:33:00,870 --> 00:33:04,190 kimsə Google Calendar, üçün bir API var. 545 00:33:04,190 --> 00:33:07,810 Siz demək olacaq ki, bir şey etmək istəyirsinizsə 546 00:33:07,810 --> 00:33:12,530 müəyyən ünvanı yeri sizin üçün Google Maps API istifadə edə bilərsiniz. 547 00:33:12,530 --> 00:33:15,860 API fantastik faydalı, onlar hər yerdə edirik. 548 00:33:15,860 --> 00:33:18,700 Siz fikir bir növ istəyirsinizsə, 549 00:33:18,700 --> 00:33:22,170 siz bir çox veri almaq üçün istifadə edə bilərsiniz bir API ilə bağlı yəqin ki, var 550 00:33:22,170 --> 00:33:25,060 çox tez və çox sadəcə. 551 00:33:25,060 --> 00:33:28,140 >> Siz hələ bir layihənin və ya istəyirsinizsə, yalnız ətrafında oynamaq istəyirəm 552 00:33:28,140 --> 00:33:31,820 ümumi bir şey ilə API mütləq bunu layiqdir. 553 00:33:31,820 --> 00:33:37,200 Thanks, sizə uşaqlar ola bilər ki, hər hansı suallara cavab xoşbəxt deyiləm. 554 00:33:37,200 --> 00:33:44,900 OK, bir çox təşəkkür edir. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]