1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Семинар] [А програмерите Вовед во API-јата] 2 00:00:02,480 --> 00:00:04,059 [Били Janitsch] [Универзитетот Харвард] [Томи MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Ова е CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Здраво, сите, јас сум Били, а денес јас одам да се зборува за API-јата, 5 00:00:12,100 --> 00:00:15,220 или апликација програмски интерфејс, 6 00:00:15,220 --> 00:00:20,040 конкретно во контекст на CS50 конечниот проекти и тој вид на работа. 7 00:00:20,040 --> 00:00:22,490 Во принцип што е API? 8 00:00:22,490 --> 00:00:25,530 Во многу поширока смисла, тоа е вид на средината на човекот кој им овозможува на 2 парчиња 9 00:00:25,530 --> 00:00:28,610 на софтвер за да комуницираат едни со други. 10 00:00:28,610 --> 00:00:32,530 Тоа е еден вид на многу широка дефиниција и не е толку важно за она што го барате. 11 00:00:32,530 --> 00:00:35,450 Што ние навистина сакаме е некој вид на корисни средина 12 00:00:35,450 --> 00:00:40,570 за да комуницира со некој вид на база на податоци некаде. 13 00:00:40,570 --> 00:00:43,310 >> Еве една шема, и во основа идејата е дека 14 00:00:43,310 --> 00:00:46,790 ние сме некоја апликација, и ние сакаме да се добијат податоци од базата на податоци, 15 00:00:46,790 --> 00:00:49,570 но ние не сакаме да се пребарува базата на податоци директно. 16 00:00:49,570 --> 00:00:52,710 Наместо тоа ние сакаме да одиме преку овој вид на средината човек, API. 17 00:00:52,710 --> 00:00:55,440 Идејата зад тоа е броеви 2 и 3 на табелата 18 00:00:55,440 --> 00:00:57,750 се двете случува да биде многу комплициран и неуредна. 19 00:00:57,750 --> 00:00:59,960 Со други зборови, кога API е доведување во прашање на базата на податоци, 20 00:00:59,960 --> 00:01:03,300 тоа веројатно ќе биде со користење на SQL маси и сите тој вид на работи, 21 00:01:03,300 --> 00:01:05,489 и ние научивме нешто повеќе за тоа во CS50, но генерално, 22 00:01:05,489 --> 00:01:07,590 сте забележале дека тоа е малку болка. 23 00:01:07,590 --> 00:01:10,590 Станува многу, многу комплицирана и неуредна, особено кога сте правење 24 00:01:10,590 --> 00:01:12,530 сложени пребарувања и тој вид на работа. 25 00:01:12,530 --> 00:01:15,960 >> Што ние навистина сакаме е некој вид на корисни и едноставен начин 26 00:01:15,960 --> 00:01:19,780 да се добие дека податоците, а тоа е идејата зад броеви 1 и 4 на табелата. 27 00:01:19,780 --> 00:01:23,600 Со други зборови, ние сакаме навистина едноставен начин да се каже на API што треба да добие за нас 28 00:01:23,600 --> 00:01:27,760 и навистина едноставен начин да се добие дека податоците назад. 29 00:01:27,760 --> 00:01:33,020 Постои еден главен начин на кој тие податоци е обично испратени и примени, 30 00:01:33,020 --> 00:01:36,490 која е JSON, или да го вклучите Javascript Цел Нотација. 31 00:01:36,490 --> 00:01:40,370 Тоа може да се разликуваат малку колку што е како ќе испрати барање до API. 32 00:01:40,370 --> 00:01:43,210 Со други зборови, ако сакате некои одредени количини на податоци, 33 00:01:43,210 --> 00:01:46,670 како ќе му кажете на API за да се добие дека податоците може да се разликуваат малку. 34 00:01:46,670 --> 00:01:49,210 Обично тоа се прави со некој вид на мрежа барање. 35 00:01:49,210 --> 00:01:53,130 Со други зборови, пристап до некој вид на URL, кој се случува да се каже на API 36 00:01:53,130 --> 00:01:56,190 токму она што го сакате, но податоците се скоро секогаш вратени, 37 00:01:56,190 --> 00:01:59,530 со други зборови, број 4 во JSON. 38 00:01:59,530 --> 00:02:01,030 >> Што е JSON точно? 39 00:02:01,030 --> 00:02:03,030 Како што реков, JavaScript Цел Нотација. 40 00:02:03,030 --> 00:02:07,090 Тоа е основа на универзален стандард за пренесување и примање на податоци. 41 00:02:07,090 --> 00:02:11,410 Идејата е дека имате овие 3 категории на нештата. 42 00:02:11,410 --> 00:02:13,540 Имате низи, hashmaps и примитивците. 43 00:02:13,540 --> 00:02:16,580 Низи и hashmaps сте погледна малку во CS50, 44 00:02:16,580 --> 00:02:19,870 но вие вид на добивано многу строга смисла на она што се. 45 00:02:19,870 --> 00:02:22,780 Со други зборови, со низи знаете дека тие се тип врзани, 46 00:02:22,780 --> 00:02:26,560 па имате само еден вид на тип кој оди во текот на целата низа. 47 00:02:26,560 --> 00:02:29,310 JSON е многу поблага со тој вид на работа. 48 00:02:29,310 --> 00:02:33,590 Во суштина идејата е да се изгради овој објект, 49 00:02:33,590 --> 00:02:36,270 кои можат да бидат составени од било кој од овие 3 работи 50 00:02:36,270 --> 00:02:39,470 и може да биде составен од повеќе оние од нив, и тие може да се вгнездени. 51 00:02:39,470 --> 00:02:42,110 >> Еве вид на пример на JSON, 52 00:02:42,110 --> 00:02:47,910 која е овие кадрави загради тука претставуваат вашиот HashMap, 53 00:02:47,910 --> 00:02:51,400 и HashMap е во основа на мапирање од некој вид на клучните 54 00:02:51,400 --> 00:02:53,340 на некој вид на вредност. 55 00:02:53,340 --> 00:02:56,440 Ќе видите тука што имаме имоти клуч, 56 00:02:56,440 --> 00:02:59,600 и тоа е мапирање врз низа, што е целата оваа работа. 57 00:02:59,600 --> 00:03:04,120 Можеме да видиме уште еден елемент на HashMap, што е овој клуч isAwesome, 58 00:03:04,120 --> 00:03:07,370 која мапи на примитивни вредност на вистина, со други зборови, рационален број. 59 00:03:07,370 --> 00:03:09,420 Примитивците може да биде жици. Тие можат да бидат цели броеви. 60 00:03:09,420 --> 00:03:11,960 Тие можат да бидат bools, такво нешто. 61 00:03:11,960 --> 00:03:18,410 И ќе видите содржината на оваа низа која својства поени да има 2 жици во него, 62 00:03:18,410 --> 00:03:20,050 само-слични и прекрасно. 63 00:03:20,050 --> 00:03:27,410 Тоа се 2 својства на JSON, и гледаме дека JSON е неверојатна. 64 00:03:27,410 --> 00:03:30,060 Да се ​​погледне во тоа малку повнимателно, ќе одам да се изгради 65 00:03:30,060 --> 00:03:32,870 посложени пример на JSON тука. 66 00:03:32,870 --> 00:03:37,000 >> Да почнеме со низа, на пример, само празна низа. 67 00:03:37,000 --> 00:03:39,180 Но, тоа е вид на досадни, па ние ќе го пополнат малку, 68 00:03:39,180 --> 00:03:43,420 и како што реков, низи во JSON се тип врзани, 69 00:03:43,420 --> 00:03:46,400 така и ние би можеле да имаат низа тука, што е здраво, 70 00:03:46,400 --> 00:03:49,330 и тоа е уште еден елемент на таа низа. 71 00:03:49,330 --> 00:03:53,450 И, исто така, би можеле да додадете hashmapping тука, кои нема да имаат неколку мапирање. 72 00:03:53,450 --> 00:04:00,470 Тоа се случува да имаат мапирање од името на стринг Били. 73 00:04:00,470 --> 00:04:04,590 Имаме мапирање од името Били, и имаме направено мапирање на 74 00:04:04,590 --> 00:04:10,860 омилена боја на сина боја. 75 00:04:10,860 --> 00:04:12,700 Тоа е во основа добар пример на JSON. 76 00:04:12,700 --> 00:04:18,160 Тој вид на впушта во-Whoops, треба запирка таму-сите на различните делови од неа. 77 00:04:18,160 --> 00:04:21,140 Повторно, тоа не е тип обврзана на сите, па можете да имате било каков вид на видови 78 00:04:21,140 --> 00:04:24,710 внатре нешто што сакате, а идејата е тоа е само-слични. 79 00:04:24,710 --> 00:04:28,830 Со други зборови, ова право тука е објект JSON, како што е целата оваа работа, 80 00:04:28,830 --> 00:04:33,200 како што е само ова, па ќе може да има примитивни да биде предмет, 81 00:04:33,200 --> 00:04:35,680 низа да биде предмет или HashMap да биде предмет. 82 00:04:35,680 --> 00:04:40,270 >> Како што можете да вид на се види, JSON е навистина, навистина корисни по тоа што е толку разновиден. 83 00:04:40,270 --> 00:04:45,860 Можете да имате било какви можни податоци што може да се замисли се чуваат во JSON. 84 00:04:45,860 --> 00:04:47,900 Што го прави навистина убаво јазик да се користи со API- 85 00:04:47,900 --> 00:04:50,770 бидејќи тоа доста значи дека без разлика што податоците што сакате 86 00:04:50,770 --> 00:04:54,270 таму ќе биде на некој начин да го добие назад во JSON. 87 00:04:54,270 --> 00:04:58,600 Пред неколку својства кои го прават JSON особено добро за овој вид на работа. 88 00:04:58,600 --> 00:05:02,270 Како што можете да видите, во споредба со многу нешта што сте биле работат со нив, во CS50 89 00:05:02,270 --> 00:05:06,040 тоа е релативно многу лесен за читање и исто така многу лесно да се напише. 90 00:05:06,040 --> 00:05:09,700 Можете да го алинеја надвор ако сакате, како што го правев во тој пример, 91 00:05:09,700 --> 00:05:12,990 која ти дава убаво, убава верзија која можете да видите навистина добро. 92 00:05:12,990 --> 00:05:17,150 Но, згора на тоа, тоа е исто така лесно да читаат и пишуваат за компјутер. 93 00:05:17,150 --> 00:05:19,870 Со други зборови, тоа е лесно да се интерпретира и лесно да се кодираат, 94 00:05:19,870 --> 00:05:23,820 што значи дека тоа е прилично брзо колку што се читање на податоци е загрижен, 95 00:05:23,820 --> 00:05:26,460 и JSON може да бидат генерирани навистина брзо. 96 00:05:26,460 --> 00:05:30,300 >> Тоа е исто така многу лесно да пристапите до различни делови на JSON и тој вид на работа. 97 00:05:30,300 --> 00:05:33,320 Тоа е убаво, и освен тоа, фактот дека тоа е само-слични, 98 00:05:33,320 --> 00:05:36,090 со други зборови, фактот дека може да има JSON во JSON во JSON 99 00:05:36,090 --> 00:05:40,040 е навистина убаво за складирање на податоци. 100 00:05:40,040 --> 00:05:45,490 Друг дел што е генерално навистина корисни во работата со API-јата е jQuery. 101 00:05:45,490 --> 00:05:49,290 Што сте научиле малку на JavaScript, која е убав начин 102 00:05:49,290 --> 00:05:53,710 да манипулира со HTML и CSS во веб-страница. 103 00:05:53,710 --> 00:05:57,190 Но, тоа може да се вид на биде болка да се код во обичен JavaScript, 104 00:05:57,190 --> 00:05:59,810 во голема мера поради JavaScript е навистина опширниот јазик. 105 00:05:59,810 --> 00:06:03,020 Ќе мора да научат многу синтаксата, и само да се направи многу едноставни нешта 106 00:06:03,020 --> 00:06:07,590 тоа трае многу на кодот, па jQuery е библиотека за JavaScript. 107 00:06:07,590 --> 00:06:09,800 Со други зборови, тоа е да го вклучите Javascript фајл кој може да се вчита 108 00:06:09,800 --> 00:06:12,730 а потоа користи jQuery функции да направите некои работи. 109 00:06:12,730 --> 00:06:15,670 И jQuery основа го прави твојот живот во целина многу полесно. 110 00:06:15,670 --> 00:06:20,390 Се поедноставува што ќе преземе стотици линии во JavaScript сведува на неколку линии во jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Тоа е особено корисно ако сте користење на API-јата, бидејќи генерално 112 00:06:24,430 --> 00:06:27,600 како ќе се пристапува API-јата е со изработка на AJAX барања, 113 00:06:27,600 --> 00:06:30,130 и јас верувам дека Давид е споменато во предавање кое AJAX барања 114 00:06:30,130 --> 00:06:33,120 обично кога сте правење на мрежата барање на некој вид на серверот 115 00:06:33,120 --> 00:06:37,760 и добивање назад некој вид на податоци и ажурирање на страницата моментално. 116 00:06:37,760 --> 00:06:41,840 Додека во обичен го вклучите Javascript-дека ќе се луди броеви на линии 117 00:06:41,840 --> 00:06:44,620 да се провери сите заглавија и не сите тој вид на работи, 118 00:06:44,620 --> 00:06:46,810 jQuery има навистина едноставна функција наречена AJAX, 119 00:06:46,810 --> 00:06:51,760 и сите што треба да направите во AJAX е даде параметри кои сакате да им даде на API, 120 00:06:51,760 --> 00:06:56,830 локацијата на API и дополнителни вид на опции што сакате да го конфигурирате. 121 00:06:56,830 --> 00:07:02,480 Тоа е навистина, навистина убаво и многу корисно за овој вид на работа. 122 00:07:02,480 --> 00:07:06,970 Тоа е се што треба да започне да добива наши раце валкани во API-јата. 123 00:07:06,970 --> 00:07:10,220 >> Одам да се донесе до неколку примери и истражуваат нивните различни својства 124 00:07:10,220 --> 00:07:13,150 и зошто тие се корисни за различни видови на нештата. 125 00:07:13,150 --> 00:07:15,570 Првото нешто што всушност ќе ви покажам е нешто што јас работам на 126 00:07:15,570 --> 00:07:18,310 во мојата истражувачка лабораторија, која е Прегледувач Ngram, 127 00:07:18,310 --> 00:07:23,270 и во основа на идејата за Прегледувач Ngram е може да пребарувате за некој вид на збор 128 00:07:23,270 --> 00:07:28,840 или фраза и да видиме колку често тоа се појави во одреден сет на текст со текот на времето. 129 00:07:28,840 --> 00:07:33,160 Овој пример тука е оваа група на податоци на бебиња 130 00:07:33,160 --> 00:07:36,480 кои се родени во Њујорк помеѓу 1920 и 2000 година. 131 00:07:36,480 --> 00:07:40,090 Ние може да се бара, на пример, за името Џенифер, 132 00:07:40,090 --> 00:07:44,400 и гледаме дека пред 1960 година навистина не се користи толку многу, 133 00:07:44,400 --> 00:07:48,900 а потоа како да се влезе во подоцнежните години станува се користи се повеќе и повеќе. 134 00:07:48,900 --> 00:07:53,680 Ние, исто така може да го направи споредби, па ако ја споредиме Џенифер, на пример, Томас, 135 00:07:53,680 --> 00:07:56,520 можеме да видиме Томас е доста распространети низ историјата, 136 00:07:56,520 --> 00:07:58,780 додека Џенифер е една понова име. 137 00:07:58,780 --> 00:08:00,590 Ние можеме да правиме тој вид на работа. 138 00:08:00,590 --> 00:08:02,460 >> Како го прави ова барање работа? 139 00:08:02,460 --> 00:08:06,030 Во суштина, таа работи преку API. 140 00:08:06,030 --> 00:08:08,660 Со други зборови, ние имаме одредени параметри тука. 141 00:08:08,660 --> 00:08:11,360 Имаме параметри на она што ние всушност барате, 142 00:08:11,360 --> 00:08:13,720 кои се овие имиња, а потоа имаме неколку други својства, 143 00:08:13,720 --> 00:08:16,570 како оска Y и X оската. 144 00:08:16,570 --> 00:08:18,440 Можете да видите ние имаме неколку различни опции што се однесува до 145 00:08:18,440 --> 00:08:20,860 време резолуција за употреба и тој вид на работа. 146 00:08:20,860 --> 00:08:26,700 Имаме овие опции колку што е она што на податоци ние всушност сакаме од базата на податоци, 147 00:08:26,700 --> 00:08:29,400 и ние сакаме да се добие дека податоците назад во некои корисни начин. 148 00:08:29,400 --> 00:08:34,020 Вообичаено, ако ние се доведување во прашање на базата на податоци директно ќе сортирање на биде болка да се направи 149 00:08:34,020 --> 00:08:38,970 бидејќи се претпоставува дека овие податоци за бебе имиња живее во некоја база на податоци некаде, 150 00:08:38,970 --> 00:08:42,789 и тоа ќе биде навистина комплицирано да мора да го пребарува рачно 151 00:08:42,789 --> 00:08:45,830 и да одлучи токму она што податоци да се вратат. 152 00:08:45,830 --> 00:08:49,300 Со други зборови, ние само се грижат за Џенифер и Томас во овој случај, 153 00:08:49,300 --> 00:08:53,410 а ние само се грижат за на одредена оска и сите тој вид на работи. 154 00:08:53,410 --> 00:08:55,720 >> Како ние да се добие околу ова? 155 00:08:55,720 --> 00:09:01,200 Да копаат во овој API малку повеќе ќе ви покажам уште еден пример на оваа платформа 156 00:09:01,200 --> 00:09:04,490 кој се користи малку поинаков податоци. 157 00:09:04,490 --> 00:09:09,950 Овие податоци собата, наместо да биде бебе имиња, е всушност само целата 158 00:09:09,950 --> 00:09:12,460 печати објавување база на податоци на отворено библиотека, 159 00:09:12,460 --> 00:09:18,410 која е гигант извор на текстови објавени во текот на последните 100 или повеќе години. 160 00:09:18,410 --> 00:09:23,540 Идејата е имаме оваа compository на милиони и милиони на текст, 161 00:09:23,540 --> 00:09:27,420 која сега може да се бара за различни зборови и фрази внатре 162 00:09:27,420 --> 00:09:30,840 Еве еден пример дека варира малку поинаку од претходниот пример 163 00:09:30,840 --> 00:09:33,350 Јас ви покажа, што е имаме овие 3 пребарувања, 164 00:09:33,350 --> 00:09:36,290 војна, војна, и францускиот збор за војната, која е Гер. 165 00:09:36,290 --> 00:09:40,380 И ние сме во потрага во рок од 3 различни делови од вкупната база на податоци. 166 00:09:40,380 --> 00:09:45,080 Со други зборови, во оваа прва барањето ние сме само бараат во САД, 167 00:09:45,080 --> 00:09:51,150 во вториот само во Велика Британија, а третата само од дела објавени во Франција. 168 00:09:51,150 --> 00:09:53,120 Можеме да видиме некои интересни модели се појават. 169 00:09:53,120 --> 00:09:58,180 На пример, ние гледаме во право околу тука што- 170 00:09:58,180 --> 00:10:02,410 Упс, јас збркана оската малку, но може да се види правото во овој опсег тука 171 00:10:02,410 --> 00:10:05,730 околу Граѓанската војна има голем скок во американското издание 172 00:10:05,730 --> 00:10:08,340 но не е толку голем скок во другите две, и тоа е очигледно, бидејќи 173 00:10:08,340 --> 00:10:10,880 Граѓанската Војна во Америка се случува во тој момент. 174 00:10:10,880 --> 00:10:13,890 >> Можеме да видиме некои кул работи таму, 175 00:10:13,890 --> 00:10:17,070 но она што навистина се грижат за тоа како стигнавме овие податоци. 176 00:10:17,070 --> 00:10:21,320 Јас ќе ве однесе зад сцената во овој стан во малку. 177 00:10:21,320 --> 00:10:24,540 А уредни трик е ако си работат со сајт и вид на сакаат да знаат 178 00:10:24,540 --> 00:10:27,430 она што се случува зад сцената, можете да се отвори инвеститорот алатки. 179 00:10:27,430 --> 00:10:30,200 Одам да се користи алатки за развој Хром, и да се дојде до оние 180 00:10:30,200 --> 00:10:35,160 можете да направите контрола, смена, Ј, и дека ќе ве однесе на конзола го вклучите Javascript-. 181 00:10:35,160 --> 00:10:37,420 Постојат неколку јазичиња тука. 182 00:10:37,420 --> 00:10:39,680 Сите тие можат да бидат прилично корисни под различни околности, но јас се грижи за мрежата 183 00:10:39,680 --> 00:10:44,150 табот право сега, и јас всушност треба да се освежи да се добие таа работа. 184 00:10:44,150 --> 00:10:50,180 О, извинете. 185 00:10:50,180 --> 00:10:52,320 Таа сака да даде случаен пример. 186 00:10:52,320 --> 00:10:54,700 Океј, ние ќе го користите овој пример, наместо тогаш. 187 00:10:54,700 --> 00:11:01,330 >> Идејата е има овој API тука, 188 00:11:01,330 --> 00:11:05,330 и може да се види точно она што на API се враќа. 189 00:11:05,330 --> 00:11:10,220 Тоа е она што апликацијата е добивање назад од API ја испратил барање. 190 00:11:10,220 --> 00:11:13,680 Дозволете ми да зумирате малку, 191 00:11:13,680 --> 00:11:18,340 и ние во основа може да се види тоа е само серија на клучните вредност парови во JSON. 192 00:11:18,340 --> 00:11:23,220 Со други зборови, ние имаме оваа HashMap тука тоа е мапирање вредности. 193 00:11:23,220 --> 00:11:26,440 Со други зборови, тоа е мапирање години вредности. 194 00:11:26,440 --> 00:11:32,600 Во 1765 било збор што првично бараа се користи 90 пати 195 00:11:32,600 --> 00:11:35,810 од 1 милион, па ние сме добивање назад овој резултат. 196 00:11:35,810 --> 00:11:40,280 Тоа не е точно JSON бидејќи имаме оваа мала резултат насловот тука, 197 00:11:40,280 --> 00:11:45,630 но напомена дека целиот овој објект тука е само голема голема JSON дупка. 198 00:11:45,630 --> 00:11:51,070 Имаме низа тука кој содржи целата оваа елемент, 199 00:11:51,070 --> 00:11:55,590 и можете да видите дека целиот елемент завршува таму, а потоа имаме уште еден голем елемент 200 00:11:55,590 --> 00:11:59,430 што оди на целиот пат до крај, а тоа завршува тука. 201 00:11:59,430 --> 00:12:02,200 Ние имаме навистина голема низа со 2 објекти во него, 202 00:12:02,200 --> 00:12:04,630 и секоја од овие предмети е HashMap. 203 00:12:04,630 --> 00:12:07,340 Можете да видите во рамките на секоја од овие hashmaps имаме мапирање 204 00:12:07,340 --> 00:12:12,700 на овој индекс вредноста на 0 и вредност оваа вредност во друга HashMap, 205 00:12:12,700 --> 00:12:18,360 кој повторно е мапирање X оската вредности на Y оската вредности. 206 00:12:18,360 --> 00:12:20,970 >> Можете да видите JSON добива малку комплицирано, но во целост, 207 00:12:20,970 --> 00:12:24,190 тоа е всушност многу корисни, а тоа е многу лесно да пристапите во споредба со 208 00:12:24,190 --> 00:12:27,390 други форми на нотација. 209 00:12:27,390 --> 00:12:30,550 Што се однесува до она што ние всушност испраќање на податоци на API за да се добие, 210 00:12:30,550 --> 00:12:34,690 Одам да одат во задниот крај малку тука. 211 00:12:34,690 --> 00:12:39,850 Ова е голем вклучите Javascript-датотека која е обработка на сите на интеракции на веб стан, 212 00:12:39,850 --> 00:12:44,810 и така ние не се грижат за поголемиот дел од ова, но ние не се грижи за некои од нив. 213 00:12:44,810 --> 00:12:47,410 На пример, ние се грижиме за оваа buildQuery функција, 214 00:12:47,410 --> 00:12:50,670 и идејата на оваа функција е во основа тоа е во потрага околу страната, 215 00:12:50,670 --> 00:12:53,750 пронајдат она што корисникот сака да се пребарува, со други зборови, 216 00:12:53,750 --> 00:12:57,090 проверка на оние кутии, каде што сум влез на нивните услови за пребарување, 217 00:12:57,090 --> 00:13:01,380 проверка на различни Y и X оската вредности кои тие го избрале и сите тој вид на работа, 218 00:13:01,380 --> 00:13:06,650 и тоа ќе плукаат ова пребарување вредност, за што јас тогаш може да испрати исклучување на API. 219 00:13:06,650 --> 00:13:09,180 >> Ова изгледа комплицирано, и тоа е прилично комплицирано 220 00:13:09,180 --> 00:13:18,090 но она што јас ќе одам да направите во Всушност, јас сум веќе го прават тоа, кој е пра- 221 00:13:18,090 --> 00:13:21,640 е тоа што јас ќе одам да добиете конзола да се печати точно дека барањето вредност 222 00:13:21,640 --> 00:13:28,110 дека тоа е испраќање на исклучување на API. 223 00:13:28,110 --> 00:13:30,870 Тоа е всушност токму тука. За жал, тоа излези на многу работи. 224 00:13:30,870 --> 00:13:33,690 Но, тоа е она што ние се грижиме за, овој објект, токму тука. 225 00:13:33,690 --> 00:13:35,300 Ова е барањето објект. 226 00:13:35,300 --> 00:13:40,670 Со други зборови, ова е токму она што веб апликација е испраќање на API-то, 227 00:13:40,670 --> 00:13:45,730 и така ајде да погледнеме внатре малку, и можеме да видиме ние имаме неколку вредности тука. 228 00:13:45,730 --> 00:13:48,710 Гледаме дека ја имаат оваа брои тип, што е појава на милион зборови, 229 00:13:48,710 --> 00:13:51,460 кој е токму она што го избрале во Y оската овде. 230 00:13:51,460 --> 00:13:53,740 Тоа е каде што доаѓа од. 231 00:13:53,740 --> 00:13:58,010 Имаме база на податоци вредност, што значи дека има некои одредени база на податоци 232 00:13:58,010 --> 00:14:01,610 дека овие податоци се живее во, и ние сакаме да пристапите дека податоците специјално 233 00:14:01,610 --> 00:14:04,950 што е спротивно на бебе имиња на податоци, на пример. 234 00:14:04,950 --> 00:14:08,320 Тогаш имаме ова групи вредност, 235 00:14:08,320 --> 00:14:12,090 која е велејќи дека ние сакаме да пребарувате по година, за разлика од 236 00:14:12,090 --> 00:14:16,030 било која друга X оската вредност. 237 00:14:16,030 --> 00:14:19,040 Потоа имаме метод, кој некои API-јата ќе направи повеќе нешта. 238 00:14:19,040 --> 00:14:22,360 Со други зборови, овој API, исто така, можат да се вратат други видови на податоци, 239 00:14:22,360 --> 00:14:27,740 но во овој случај, ние сакаме тоа мапирање на X оската вредности на Y оската вредности. 240 00:14:27,740 --> 00:14:30,730 Тоа е она што го кажувам да се направи таму, 241 00:14:30,730 --> 00:14:35,020 и ние имаме ова пребарување граници низа, која содржи 2 вредности. 242 00:14:35,020 --> 00:14:40,720 Првиот е она што го гледаме тука, што е сите вредности 243 00:14:40,720 --> 00:14:43,020 содржани во рамките на таа прва мала кутија на врвот. 244 00:14:43,020 --> 00:14:47,570 >> Со други зборови, ние сакаме да се погледне за зборот битка, и ние сакаме да го филтрирате 245 00:14:47,570 --> 00:14:51,920 од Македонски текстови во американската литература. 246 00:14:51,920 --> 00:14:54,590 Имаме оваа земја, која е САД. 247 00:14:54,590 --> 00:14:59,130 Имаме јазик, кој е на англиски, па ние имаме сите овие различни делови 248 00:14:59,130 --> 00:15:02,690 кои се сите кажува API токму она што го сакате. 249 00:15:02,690 --> 00:15:04,940 Ние не знаеме што податоците што ги добиваме назад е уште, 250 00:15:04,940 --> 00:15:10,970 но ние знаеме дека податоците се случува да се земе одредена форма. 251 00:15:10,970 --> 00:15:13,650 Овој пример е вид на на комплицирани страна, 252 00:15:13,650 --> 00:15:16,180 а вие не мора да биде со користење на API овој комплекс, 253 00:15:16,180 --> 00:15:20,600 но ова е да ви го покаже опсег и моќ на она што API-јата може да направи. 254 00:15:20,600 --> 00:15:24,980 Со други зборови, со користење на релативно едноставен пребарување систем ние во основа имаат влез кутија 255 00:15:24,980 --> 00:15:29,490 со неколку други селектори во различни места. 256 00:15:29,490 --> 00:15:32,010 >> Дозволете ми да зумирате назад од тука. 257 00:15:32,010 --> 00:15:37,720 Имаме влез кутија со неколку различни метаподатоци селекции, 258 00:15:37,720 --> 00:15:40,610 и ние имаме Y оска и X оската селекции. 259 00:15:40,610 --> 00:15:42,830 Ние всушност не дека имаат многу области, 260 00:15:42,830 --> 00:15:46,210 и можеме да видиме многу лесно сме во можност да се пребарува некој вид на API 261 00:15:46,210 --> 00:15:48,510 и да добијат податоци назад и тогаш стави ја во оваа табела, 262 00:15:48,510 --> 00:15:52,080 кој потоа ќе го прикаже во корисен начин. 263 00:15:52,080 --> 00:15:54,970 Да се ​​погледне во друг пример тоа може да биде малку повеќе запознаени за вас момци 264 00:15:54,970 --> 00:15:56,510 ние ќе се свртиме кон Фејсбук. 265 00:15:56,510 --> 00:15:59,440 API Фејсбук се нарекува График Фејсбук, 266 00:15:59,440 --> 00:16:04,390 и во основа она што тоа значи е Фејсбук се гледа себеси како овој масивен база на податоци 267 00:16:04,390 --> 00:16:08,000 на многу различни делови кои сите имаат одредени односи едни со други. 268 00:16:08,000 --> 00:16:11,070 Со други зборови, јас сум корисник на Фејсбук, па имам профил, 269 00:16:11,070 --> 00:16:14,310 и јас исто така имаат одредени пријатели, и секој од нив има профил, 270 00:16:14,310 --> 00:16:17,580 и секој од моите пријатели има ѕид, кој има различни коментари за него, 271 00:16:17,580 --> 00:16:20,800 и секоја од овие коментари има сака и сите тој вид на работа. 272 00:16:20,800 --> 00:16:23,100 >> Има многу различни делови на Facebook. 273 00:16:23,100 --> 00:16:26,670 Тоа е многу комплексна API, и има тони можете да направите со неа, 274 00:16:26,670 --> 00:16:28,450 но тоа е всушност прилично едноставен за употреба. 275 00:16:28,450 --> 00:16:33,680 Одам да се започне со одење на graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 кој е мојот единствен сметка име, и името на вашето конто или ќе биде 277 00:16:38,430 --> 00:16:43,710 некој вид на зборот ако сте го избрале, или тоа само може да се низа на броеви. 278 00:16:43,710 --> 00:16:46,360 Она што го добиваме назад е прилично основни информации. 279 00:16:46,360 --> 00:16:50,460 Гледаме дека имам име, што е Били, последно име, кое е Janitsch. 280 00:16:50,460 --> 00:16:53,370 Има уникатен Фејсбук проект кој го имам. 281 00:16:53,370 --> 00:16:57,920 Можете да видите дека јас сум машко и дека имам јазик поставување 282 00:16:57,920 --> 00:17:01,290 на британско англиски. 283 00:17:01,290 --> 00:17:03,490 Со други зборови, ние сме сведоци многу основни информации тука. 284 00:17:03,490 --> 00:17:08,670 Тоа не е премногу, но тоа не ни даде идеја за она што е таму. 285 00:17:08,670 --> 00:17:10,849 >> Ние можеме да го прават истото на Дејвид Malan, на пример. 286 00:17:10,849 --> 00:17:13,599 Мислам дека неговото име е dmalan. 287 00:17:13,599 --> 00:17:16,369 Можеме да видиме Дејвид Malan има единствен број. 288 00:17:16,369 --> 00:17:19,300 Тој има име, презиме, средно име и презиме. 289 00:17:19,300 --> 00:17:24,210 Ние, исто така се види дека тој е машко и има неговиот јазик сет на американскиот англиски јазик. 290 00:17:24,210 --> 00:17:26,869 Со други зборови, ние сме сведоци прилично основни информации тука. 291 00:17:26,869 --> 00:17:28,860 Сега, она што се случува ако се обидеме да проверите нешто друго? 292 00:17:28,860 --> 00:17:33,060 Да речеме јас сум заинтересиран за она што Дејвид Malan има допадна на Фејсбук. 293 00:17:33,060 --> 00:17:36,860 Можам да направам / допаѓаат. Сега сме наиде на проблем. 294 00:17:36,860 --> 00:17:39,280 Имаме некој вид на грешка која се вели токен за пристап 295 00:17:39,280 --> 00:17:41,660 е потребно да се бара на овој ресурс. 296 00:17:41,660 --> 00:17:44,730 Но ако мислите дека за тоа, дека всушност има смисла, бидејќи тоа би било чудно 297 00:17:44,730 --> 00:17:47,830 ако можете да пристапите секој дел од базата на податоци на Фејсбук 298 00:17:47,830 --> 00:17:50,170 само од некој вид на едноставна API, нели? 299 00:17:50,170 --> 00:17:56,040 Со други зборови, се претпоставува дека вашите информации не може да се пристапи од страна на секој кој тоа го сака. 300 00:17:56,040 --> 00:17:58,330 >> Оваа грешка е токму она што тоа значи. 301 00:17:58,330 --> 00:18:03,630 Некои API-јата бара одредени дозволи, со цел да имаат пристап до своите податоци. 302 00:18:03,630 --> 00:18:06,940 Па дури и повеќе напредна API-јата, како Фејсбук еден, 303 00:18:06,940 --> 00:18:09,840 ќе бара одредени дозволи за да направите некои работи. 304 00:18:09,840 --> 00:18:12,650 Јас може да се види оваа основни информации за Дејвид Malan. 305 00:18:12,650 --> 00:18:15,950 Јас може да се види дека тој е машко и дека живее во САД, 306 00:18:15,950 --> 00:18:19,270 но јас навистина не може да се види нешто минато. 307 00:18:19,270 --> 00:18:23,050 Да се ​​добие околу ова за сега, Фејсбук има оваа прекрасна алатка 308 00:18:23,050 --> 00:18:27,690 која е графиконот API истражувач, и идејата за тоа е може да се вид 309 00:18:27,690 --> 00:18:31,880 сочинуваат дозволи за себе врз основа на вашата сопствена сметка 310 00:18:31,880 --> 00:18:35,680 а потоа ги видите работите што конкретно вашата сметка може да видите. 311 00:18:35,680 --> 00:18:45,120 На пример, ако го направам graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Whoops, претпоставувам дека треба да revalidate мојот знак тука. 313 00:18:53,510 --> 00:18:55,950 Во ред. 314 00:18:55,950 --> 00:19:01,740 Ако јас го правам тоа повторно, одлично, сега гледам дека сум добие овој објект назад 315 00:19:01,740 --> 00:19:06,300 кој вели дека сакам базен тестенини, кои се во категоријата Игри и Играчки. 316 00:19:06,300 --> 00:19:08,620 Ми се допаѓа моржови, кои се во категоријата на животните. 317 00:19:08,620 --> 00:19:10,180 Овие се моите вистински Фејсбук сака. 318 00:19:10,180 --> 00:19:13,280 Тие се вид на збунувачки. 319 00:19:13,280 --> 00:19:16,090 >> Но, можеме да видиме овие податоци се сите врати во JSON. 320 00:19:16,090 --> 00:19:18,160 Тоа е прилично читлива. 321 00:19:18,160 --> 00:19:20,970 Со други зборови, ние имаме ова мапирање на податоци на некој вид на низа, 322 00:19:20,970 --> 00:19:25,220 и секој елемент на оваа низа е HashMap која мапи 323 00:19:25,220 --> 00:19:28,530 името на како и категоријата на како. 324 00:19:28,530 --> 00:19:31,240 Секоја како има единствен број. 325 00:19:31,240 --> 00:19:34,510 Постојат сите видови на различни нешта на податоци што може да се добие, 326 00:19:34,510 --> 00:19:37,980 и ако сте заинтересирани за користење на Фејсбук API за CS50 финалниот проект 327 00:19:37,980 --> 00:19:40,720 или за нешто слично тоа е всушност сосема можно. 328 00:19:40,720 --> 00:19:44,260 Основа како ќе го добиете целиот проверка работа е Фејсбук 329 00:19:44,260 --> 00:19:48,030 користи систем наречен OAuth, или отворено автентикација, 330 00:19:48,030 --> 00:19:52,870 и јас не сакам да навлегувам во тоа сега, бидејќи OAuth или друг вид 331 00:19:52,870 --> 00:19:56,060 на автентикација има тенденција да се разликуваат многу помеѓу различни API-јата, 332 00:19:56,060 --> 00:19:58,320 па можев да поминуваат долго време случува во текот секој еден, 333 00:19:58,320 --> 00:20:01,170 но тие се всушност прилично очигледен. 334 00:20:01,170 --> 00:20:04,050 >> Ако на Google Фејсбук API е многу читлив. 335 00:20:04,050 --> 00:20:06,670 Има цела спецификации. 336 00:20:06,670 --> 00:20:10,210 На пример, ова е документација за Фејсбук API-то, 337 00:20:10,210 --> 00:20:14,170 и можете да видите јас сум на корисникот страница, за да можам да дознаете за различните видови на нештата 338 00:20:14,170 --> 00:20:17,170 кои се на располагање за да се добие колку што е податоци 339 00:20:17,170 --> 00:20:21,550 а исто така и различни дозволи што ми треба со цел да им пристапите. 340 00:20:21,550 --> 00:20:25,470 Како што видовме, ние не треба дозволи за да пристапите на името или пол, 341 00:20:25,470 --> 00:20:29,380 но надвор од тоа што е потребно дозволи за повеќето работи. 342 00:20:29,380 --> 00:20:33,040 Оваа страница, или подобро кажано, оваа веб страна, исто така, ќе ви кажам како да се добие 343 00:20:33,040 --> 00:20:35,640 знак да бидете во можност да се идентификувате. 344 00:20:35,640 --> 00:20:39,290 Повеќето автентикација системи користат некој вид на токен 345 00:20:39,290 --> 00:20:42,880 каде што ќе добиете оваа уникатна вредност, што е навистина долга и случаен стринг, 346 00:20:42,880 --> 00:20:46,240 и на тој начин тие можат да се дружат барање дека сте прави со вас. 347 00:20:46,240 --> 00:20:50,560 Со други зборови, тие знаат дека не правиш нешто сомнително со нивните податоци. 348 00:20:50,560 --> 00:20:53,340 Тие знаат точно она што го добивате. 349 00:20:53,340 --> 00:20:56,180 Тие исто така знаат дека имате дозвола да ја видите таа информација. 350 00:20:56,180 --> 00:20:59,110 >> Ако сте направиле стан Фејсбук и вашиот стан има одредени корисници, 351 00:20:59,110 --> 00:21:03,380 и оние корисници имаат дозволено дека стан за пристап до одредени делови од нивниот профил, 352 00:21:03,380 --> 00:21:07,790 тогаш што API клуч или знак дека тоа стан е со користење 353 00:21:07,790 --> 00:21:11,090 ќе бидете во можност да пристапите до податоците за оние корисници. 354 00:21:11,090 --> 00:21:13,780 Ова би можело да звучи комплицирано, но тоа не е премногу лошо, 355 00:21:13,780 --> 00:21:16,810 и ако сакате да го користите Фејсбук Јас високо ќе Ви препорачуваме да 356 00:21:16,810 --> 00:21:18,990 разгледа поигрува со нивните API. 357 00:21:18,990 --> 00:21:21,610 Тоа е многу кул, и може да се направи многу различни нешта со неа. 358 00:21:21,610 --> 00:21:24,880 Ако корисникот не ви дава овие дозволи можете дури и да се врати кон API 359 00:21:24,880 --> 00:21:28,820 и да каже сакам да всушност ја објавите на ѕидот на овој корисник, или сакам да му ги поставите слика, 360 00:21:28,820 --> 00:21:32,390 и тоа е причината зошто на вашиот вести извор можете понекогаш ќе добијат оние досадни работи 361 00:21:32,390 --> 00:21:37,840 велејќи дека вашиот пријател го гледал ова видео на некој вид на чуден сајт или нешто слично. 362 00:21:37,840 --> 00:21:43,120 Тоа е затоа што стан има добиено пристап да ја објавите на ѕидот на тоа лице. 363 00:21:43,120 --> 00:21:48,350 Идејата генерално, Фејсбук API е прилично комплицирано, но, исто така, навистина корисни. 364 00:21:48,350 --> 00:21:53,220 Дефинитивно вреди одјавувањето ако сте сеуште во потрага по финалниот проект. 365 00:21:53,220 --> 00:21:57,930 >> Друг пакет на API-јата дека ќе одам да одам повеќе е CS50 API-јата. 366 00:21:57,930 --> 00:22:00,070 Дозволете ми да зумирате тука. 367 00:22:00,070 --> 00:22:03,390 CS50, всушност, се стави заедно со цела серија на API-јата 368 00:22:03,390 --> 00:22:07,080 кои можете да ги користите за финалниот проект или само за нешто што сте одлуки. 369 00:22:07,080 --> 00:22:12,830 И тие се најчесто Харвард поврзани, и тие се разликуваат од менито HUDS, 370 00:22:12,830 --> 00:22:17,780 на пример, за овој Харвард Настани API, што ќе ви овозможи да пристапите до листата на 371 00:22:17,780 --> 00:22:21,290 различни настани што се случуваат во Харвард и тој вид на работа. 372 00:22:21,290 --> 00:22:24,510 И така ние може да кликнете на некој од овие и да добијат спецификации за него, 373 00:22:24,510 --> 00:22:28,090 кои ќе бидат во можност да се најде за секој API, и идејата е 374 00:22:28,090 --> 00:22:33,920 тоа ви овозможува да знаете, А, што конкретно да побара од API и како да го побараат тоа. 375 00:22:33,920 --> 00:22:37,370 Со други зборови, ако сакам сите настани кои се случуваат утре 376 00:22:37,370 --> 00:22:42,550 тогаш имам да очигледно го даде тој датум што сакам во одреден формат, 377 00:22:42,550 --> 00:22:46,030 и Б, тој ќе ми каже што точно се случува да им даде назад кон мене. 378 00:22:46,030 --> 00:22:48,590 Тоа ќе кажам јас одам да ви вратат овој објект JSON, 379 00:22:48,590 --> 00:22:50,960 или како што можете да видите, постојат различни формати. 380 00:22:50,960 --> 00:22:54,050 >> Вие исто така може да се врати на податоци како CSV, на пример. 381 00:22:54,050 --> 00:22:57,620 Но, знаете како точно дека податоците ќе изгледа кога ќе го добие назад 382 00:22:57,620 --> 00:23:00,610 па можете да очекувате за да направите некои работи со него. 383 00:23:00,610 --> 00:23:07,240 Ние можеме да дојдете долу и види, на пример, ако сакаме да се пребарува на API 384 00:23:07,240 --> 00:23:11,500 да се добие календар, тогаш можеме да ја користите оваа одредена URL 385 00:23:11,500 --> 00:23:16,480 и го даде одредени параметри кои ќе бидат на податоците што сакате точно. 386 00:23:16,480 --> 00:23:19,540 И, исто така, ако сакаме на податоци назад во одреден формат, 387 00:23:19,540 --> 00:23:23,790 тогаш можеме да го прашам за излез на податоци во CSV, 388 00:23:23,790 --> 00:23:27,700 и тоа е само уште еден параметар кој ние сме поминува кон API. 389 00:23:27,700 --> 00:23:29,210 Многу кул нешта да се направи таму. 390 00:23:29,210 --> 00:23:32,550 Јас дефинитивно би препорачуваме одјавувањето на CS50 API-јата. 391 00:23:32,550 --> 00:23:36,000 >> Одам да се погледне на овој Храна Харвард API особено за малку. 392 00:23:36,000 --> 00:23:39,870 Едно нешто што сум всушност дизајнирани е ова Харвард Noms веб-сајт, 393 00:23:39,870 --> 00:23:44,930 кој се користи CS50 Храна API за да се потсетите на HUDS менито за тој ден. 394 00:23:44,930 --> 00:23:50,400 И за продолжување училиште луѓе, HUDS е јадење услуга на Харвард. 395 00:23:50,400 --> 00:23:55,130 Што добивате е оваа страница која ги содржи сите на храна за тој ден, па ќе видиме ручек. 396 00:23:55,130 --> 00:23:58,130 Имаме неколку различни категории. Имаме грав и житарките станица. 397 00:23:58,130 --> 00:24:00,340 Имаме кафеав ориз станица. 398 00:24:00,340 --> 00:24:03,360 Можеме да видиме за бранч имаме овие неколку прехранбени продукти. 399 00:24:03,360 --> 00:24:07,030 Ако ние кликнете на нив, тогаш ќе го добиеме исхрана информации. 400 00:24:07,030 --> 00:24:12,240 Гледаш ова е исхрана информации за грејпфрут, во случај да се прашувате. 401 00:24:12,240 --> 00:24:14,870 И па уште еднаш, ние ќе воспостави во задниот крај тука малку 402 00:24:14,870 --> 00:24:18,530 и да видиме што точно ова се прави за да се добие оваа податоци. 403 00:24:18,530 --> 00:24:21,710 И испоставува да не, всушност ќе биде многу сложен на сите. 404 00:24:21,710 --> 00:24:28,720 Оваа датотека изгледа малку неуредна, но имајте на ум дека ова е справување со целиот веб-сајт, 405 00:24:28,720 --> 00:24:34,130 и ако се движите надолу ќе видите оваа промена на податоци функција. 406 00:24:34,130 --> 00:24:36,630 >> Сега, само да биде јасно, ова е напишано во CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 што е јазик кој најверојатно не сте виделе порано. 408 00:24:39,570 --> 00:24:44,810 Но тоа е прилично читлива, па ќе одиме низ него како да е pseudocode. 409 00:24:44,810 --> 00:24:49,080 Промени датум е функција која се случува да се земе во овој датум вредност, 410 00:24:49,080 --> 00:24:51,740 и тоа е, исто така, ќе се земе во првата, која што не се грижат за колку. 411 00:24:51,740 --> 00:24:54,110 Но, најважно е тоа што има овој датум, 412 00:24:54,110 --> 00:25:00,080 и тој датум е денот што сакаме да побара сите прехранбени продукти за. 413 00:25:00,080 --> 00:25:04,030 И тогаш ќе видите имаме малку синтакса тука, 414 00:25:04,030 --> 00:25:09,000 кој во основа е парсирање тој датум во читлив формат. 415 00:25:09,000 --> 00:25:11,920 Со други зборови, API бара датум во одреден формат. 416 00:25:11,920 --> 00:25:17,390 Вие не може само да се каже 16 Ноември 2012 година. 417 00:25:17,390 --> 00:25:20,320 Тоа не ќе знаат што да прават со тоа. Таа сака датумот во одредена формат. 418 00:25:20,320 --> 00:25:23,230 Сите ние сме прави тука е давајќи токму тоа формат, 419 00:25:23,230 --> 00:25:26,520 која е една година вредност, а потоа цртичка, еден месец вредност, 420 00:25:26,520 --> 00:25:29,420 друг цртичка и датумот вредност. 421 00:25:29,420 --> 00:25:34,910 И ние исто така велат дека сакаме на податоци да бидат излез во JSON. 422 00:25:34,910 --> 00:25:37,560 >> Сега правиме ова барање AJAX, и како што споменав порано, 423 00:25:37,560 --> 00:25:41,680 jQuery има оваа супер корисни AJAX функција која сите што треба да направите е да одредите 424 00:25:41,680 --> 00:25:45,780 неколку параметри долу тука, и тоа ќе ви даде назад токму она што го сакате. 425 00:25:45,780 --> 00:25:50,490 Ние сме го кажувам дека URL сакаме да оди е ова CS50 Храна API-то, 426 00:25:50,490 --> 00:25:52,270 која ја добивме од спец. 427 00:25:52,270 --> 00:25:56,730 Велиме дека ние сакаме на податоците во JSON и дека 428 00:25:56,730 --> 00:25:59,490 ние ќе го даде овој податок кој го дефинира тука. 429 00:25:59,490 --> 00:26:02,670 Ова е ден ние сакаме храна ставки за. 430 00:26:02,670 --> 00:26:07,790 А потоа сите ние треба да направите е да се дефинираат некои вид на успех функција, 431 00:26:07,790 --> 00:26:11,980 која е во основа она што се случува кога на API се враќа на податоците. 432 00:26:11,980 --> 00:26:15,490 Со други зборови, ние сме спакувани до сите параметри што го сакаме, 433 00:26:15,490 --> 00:26:20,530 кој во овој случај е денот што го сакаат и фактот дека ние го сакаме тоа во JSON, 434 00:26:20,530 --> 00:26:23,840 и ние го испрати надвор кон API, па сега API е велејќи дека, во ред, 435 00:26:23,840 --> 00:26:26,350 тука се вашите податоци, јас го зедов тоа назад за вас. 436 00:26:26,350 --> 00:26:29,930 Имаме успех функција, што значи со оглед дека на API 437 00:26:29,930 --> 00:26:32,230 успешно се враќа некои податоци, што ќе правиме со него? 438 00:26:32,230 --> 00:26:35,980 >> И излегува дека сите го правиме е да се јавиш оваа надградба мени функција 439 00:26:35,980 --> 00:26:42,680 со што на API се врати, така што може да пребарувате за кои 440 00:26:42,680 --> 00:26:47,970 и да видиме дека сите ние сме прави е со помош на куп нови синтакса тука 441 00:26:47,970 --> 00:26:52,220 за ажурирање на HTML и вметнете нови податоци. 442 00:26:52,220 --> 00:26:56,580 Што ова им овозможува на е што имаат овие стрелки на двете страни, и можеме да кликнете, 443 00:26:56,580 --> 00:27:01,060 а сега ние сме во потрага по податоци за следниот ден и повторно за следниот ден, 444 00:27:01,060 --> 00:27:04,820 и секој пат кога тоа е ажурирање на тој датум вредност и доведување во прашање на API-то, 445 00:27:04,820 --> 00:27:07,510 добивање на врати некои податоци, и тоа ставање во сајт. 446 00:27:07,510 --> 00:27:10,590 Повторно, можете да видите, супер, супер корисни. 447 00:27:10,590 --> 00:27:14,410 Овој стан ми требаше неколку часа да се пробие заедно, 448 00:27:14,410 --> 00:27:20,140 и имам малку повеќе искуство, очигледно, но вашиот CS50 финалниот проект 449 00:27:20,140 --> 00:27:22,870 може да изгледа нешто многу се допаѓа ова. 450 00:27:22,870 --> 00:27:29,540 >> API-јата се супер моќен за износот на напор што ги преземаат. 451 00:27:29,540 --> 00:27:32,800 Последното нешто јас ќе одам да одам повеќе е уште неколку API-јата во голема мерка. 452 00:27:32,800 --> 00:27:35,480 Јас нема да добие колку во нив колку што е она што го прават посебно, 453 00:27:35,480 --> 00:27:38,740 но јас ќе ви даде идеја за она што е таму. 454 00:27:38,740 --> 00:27:42,700 2 навистина полезни, ако сте заинтересирани за анализа на податоци или визуелизација 455 00:27:42,700 --> 00:27:45,960 или нешто слично, се Freebase и Википедија. 456 00:27:45,960 --> 00:27:49,800 Википедија веројатно сите знаете, е бесплатен онлајн енциклопедија, 457 00:27:49,800 --> 00:27:53,230 а тоа всушност има API-то, па ако сакате, на пример, 458 00:27:53,230 --> 00:27:56,250 ги добиете сите од текстови и статии за октопод 459 00:27:56,250 --> 00:27:58,030 можете многу лесно да го направите тоа. 460 00:27:58,030 --> 00:28:02,300 Само велат еј, Википедија API, би сакал на податоци се врати како овој, 461 00:28:02,300 --> 00:28:07,010 и јас би го сакале во овој формат, а напис јас би сакал е октопод, 462 00:28:07,010 --> 00:28:09,820 и многу брзо ќе ти го врати таа информација. 463 00:28:09,820 --> 00:28:12,230 Тоа може да биде навистина корисно ако сакате да се направи некој вид на сајт 464 00:28:12,230 --> 00:28:16,200 тоа е подобро прегледувач за Википедија или нешто слично. 465 00:28:16,200 --> 00:28:21,350 >> Freebase е вид на слични, иако тоа е малку потешко колку што API. 466 00:28:21,350 --> 00:28:24,390 Freebase е како Википедија со тоа што е онлајн енциклопедија 467 00:28:24,390 --> 00:28:29,050 која содржи многу, многу различни податоци за сите видови на различни теми, 468 00:28:29,050 --> 00:28:33,150 но тоа е се чуваат во релациона база на податоци, која е малку различен од Википедија. 469 00:28:33,150 --> 00:28:36,410 Википедија има статии и статии поврзани со други артикли, 470 00:28:36,410 --> 00:28:38,860 но во најголем дел, ако сакате податоците за октопод, 471 00:28:38,860 --> 00:28:41,990 одите на октопод член, се дека податоците, и имаш еден куп на текст 472 00:28:41,990 --> 00:28:43,830 за октоподи, па тоа е одлично. 473 00:28:43,830 --> 00:28:46,870 Freebase работи во малку покомплициран начин во таа 474 00:28:46,870 --> 00:28:48,930 сè што е поврзано со еден на друг. 475 00:28:48,930 --> 00:28:52,620 Со други зборови, ако ние сме во потрага по октопод 476 00:28:52,620 --> 00:28:54,940 тогаш тоа има еден куп на категории поврзани со неа. 477 00:28:54,940 --> 00:28:57,920 >> На пример, тоа е животно, таа живее под вода, 478 00:28:57,920 --> 00:28:59,710 тоа има одреден температурата на телото. 479 00:28:59,710 --> 00:29:01,210 Не знам. 480 00:29:01,210 --> 00:29:04,230 И сите овие категории се линкови до други места каде што може да оди 481 00:29:04,230 --> 00:29:06,640 да ги гледам работите со истата категорија. 482 00:29:06,640 --> 00:29:13,450 Со други зборови, октопод податоци ќе содржи линк до податоци за сите животни, 483 00:29:13,450 --> 00:29:16,790 и дека ќе ми дозволи да се движите низ базата на податоци навистина брзо. 484 00:29:16,790 --> 00:29:21,740 Ова може да биде многу корисно ако правиш нешто како споредби. 485 00:29:21,740 --> 00:29:24,490 Со други зборови, со оглед на одредена работа, сакате да го видите 486 00:29:24,490 --> 00:29:27,890 што друго тоа е поврзано со и да видиме што друго не е поврзана со. 487 00:29:27,890 --> 00:29:30,700 Тој вид на работа. Тоа може да биде корисно во голем број на начини. 488 00:29:30,700 --> 00:29:34,250 Ако сте во потрага за повеќе од предизвик и да биде во можност да направи некои повеќе сложени работи 489 00:29:34,250 --> 00:29:38,740 Јас ќе ја разгледа преземање на ум на Freebase API. 490 00:29:38,740 --> 00:29:44,670 Но во голема мера, Википедија е многу едноставна место да одиме толку далеку како добивање информации. 491 00:29:44,670 --> 00:29:48,340 Друго место дека ќе се погледне е Last.fm, а јас сум всушност ќе отидете на сајтот 492 00:29:48,340 --> 00:29:53,800 во случај некои луѓе не се запознаени, но Last.fm е всушност музика 493 00:29:53,800 --> 00:29:57,220 вкусови и препораки веб-сајт. 494 00:29:57,220 --> 00:29:59,000 Можете да направите сметка. 495 00:29:59,000 --> 00:30:04,250 Можете да почнете да испратите музика од вашиот музички плеер 496 00:30:04,250 --> 00:30:08,020 на веб страната, и во основа ќе почне кои ви даваат музика препораки 497 00:30:08,020 --> 00:30:10,030 врз основа на она што го слушате. 498 00:30:10,030 --> 00:30:14,270 >> На пример, ако одите на вашиот профил-ова е мое- 499 00:30:14,270 --> 00:30:18,180 можете да видите дека имаат листа на неодамна слушав песни. 500 00:30:18,180 --> 00:30:22,550 Можете да ја видите вкупната омилени уметници, сите тој вид на работа, 501 00:30:22,550 --> 00:30:25,280 и повторно, постои голема API зад Last.fm, 502 00:30:25,280 --> 00:30:29,360  и можете да го користите да се направи многу, многу навистина кул работи. 503 00:30:29,360 --> 00:30:38,870 На пример, јас ќе оди на страница на некој пријател кој ја има оваа Last.fm Алатки веб-сајт. 504 00:30:38,870 --> 00:30:42,380 Ова е всушност уште една платформа која е изградена на Last.fm API-то, 505 00:30:42,380 --> 00:30:45,420 и тоа го прави голем број на прилично интересни работи. 506 00:30:45,420 --> 00:30:50,260 Ако јас се логирате со моето корисничко име, на пример, 507 00:30:50,260 --> 00:30:53,110 Можам да го замолите да генерира таг облак, на пример, 508 00:30:53,110 --> 00:30:56,480 и она што се случува да направите е да ми даде назад слика на 509 00:30:56,480 --> 00:30:59,850 сите различни жанрови и тој вид на работа што ми се допаѓа да се слуша. 510 00:30:59,850 --> 00:31:01,410 Како се прави тоа? 511 00:31:01,410 --> 00:31:05,670 Многу основа тоа кажува на Last.fm API тука е овој корисник. 512 00:31:05,670 --> 00:31:10,710 Јас би сакал да знам на жанрот на секоја песна што некогаш сте слушале, 513 00:31:10,710 --> 00:31:15,130 и можете да го направите тоа со правење на прилично едноставна AJAX повик до Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Ќе се вратам голема листа, а потоа очигледно некои други работи се врши 515 00:31:18,990 --> 00:31:22,280 да ја претвори во еден збор облак, но може да се види целокупната 516 00:31:22,280 --> 00:31:25,850 тоа е многу лесно да пристапите и многу лесен за употреба. 517 00:31:25,850 --> 00:31:30,750 Навистина убаво за голем број на нештата. 518 00:31:30,750 --> 00:31:35,940 >> Мислам дека тоа е за сите ќе кажам целина. 519 00:31:35,940 --> 00:31:39,040 Едно последно нешто јас ќе се спомене за интероперабилност во целина е дека 520 00:31:39,040 --> 00:31:41,840 можете понекогаш ќе работи во нешто што се нарекува стапка ограничување, 521 00:31:41,840 --> 00:31:44,940 и идејата за стапка ограничување е дека не сакаат да ја злоупотребат API-јата. 522 00:31:44,940 --> 00:31:48,130 Со други зборови, тоа е навистина убаво тоа што многу од овие веб-сајтови имаат API-јата 523 00:31:48,130 --> 00:31:51,070 дека можете да отидете и да го користите бесплатно. 524 00:31:51,070 --> 00:31:54,460 Сепак, ако сте прави милиони или милијарди барањата на ден, 525 00:31:54,460 --> 00:31:57,610 На пример, ако сте заглавени во бесконечна јамка што е бескрајно доведување во прашање 526 00:31:57,610 --> 00:32:00,680 некој вид на API и добивање назад на големи количини на податоци, 527 00:32:00,680 --> 00:32:04,570 очигледно тоа не е добро, така што голем број на API-јата направите е да ја имаат оваа стапка ограничување функција 528 00:32:04,570 --> 00:32:09,970 кој се вели дека само може да направи 1.000 барања дневно IP адреса или нешто слично. 529 00:32:09,970 --> 00:32:12,540 И ако правиш многу на тестирање и тој вид на работа, 530 00:32:12,540 --> 00:32:14,890 можете понекогаш ќе работи во тоа, и одеднаш ќе ти исклучи 531 00:32:14,890 --> 00:32:18,280 и да каже не, јас не сум ви даваат повеќе податоци. 532 00:32:18,280 --> 00:32:20,000 >> Што сакате да направите е да играат според правилата. 533 00:32:20,000 --> 00:32:22,950 Вие сакате да бидете сигурни дека ќе го прочитате API спецификации внимателно. 534 00:32:22,950 --> 00:32:26,330 Ако има одредени правила прикачени на него, како што само може да се направи Х пребарувања дневно 535 00:32:26,330 --> 00:32:30,000 или можете да пристапите дел од базата на податоци на одреден број на пати 536 00:32:30,000 --> 00:32:32,900 или нешто слично што сакате да бидете сигурни дека ќе се држи до тоа. 537 00:32:32,900 --> 00:32:38,360 Додека играте во рамките на тие правила најверојатно ќе има навистина убаво време со користење API-јата. 538 00:32:38,360 --> 00:32:42,030 Твојот комплетна готова брза е API-јата се, навистина, навистина корисни. 539 00:32:42,030 --> 00:32:45,610 >> Има еден API за речиси секој голем веб сервис таму. 540 00:32:45,610 --> 00:32:50,700 Доста било дел од Google Алатки Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Calendar, сите оние нешта имаат API-јата. 542 00:32:54,390 --> 00:32:58,280 Можете да ги користите за да двете се добијат податоци од серверот и испрати податоци до серверот. 543 00:32:58,280 --> 00:33:00,870 Со други зборови, ако си сакал да се направи календар стан, што може да го ажурира 544 00:33:00,870 --> 00:33:04,190 Google Календар некој, таму е API за тоа. 545 00:33:04,190 --> 00:33:07,810 Ако сакате да направите нешто што нема да ти кажам каде 546 00:33:07,810 --> 00:33:12,530 локацијата на одреден адреса е можете да го користите Google Maps API за тоа. 547 00:33:12,530 --> 00:33:15,860 API-јата се неверојатно корисни, и тие се насекаде. 548 00:33:15,860 --> 00:33:18,700 Ако сте заинтересирани во некој вид на идеја, 549 00:33:18,700 --> 00:33:22,170 таму е веројатно поврзани со API, што можете да го користите да се добие многу на податоци 550 00:33:22,170 --> 00:33:25,060 многу брзо и многу едноставно. 551 00:33:25,060 --> 00:33:28,140 >> Ако сте се уште во потрага по проект или ако сакате само да се позанимавам 552 00:33:28,140 --> 00:33:31,820 со нешто воопшто, API-јата се дефинитивно вреди да се прави. 553 00:33:31,820 --> 00:33:37,200 Благодарам, и јас сум среќен да одговори на сите прашања кои вие момци можат да имаат. 554 00:33:37,200 --> 00:33:44,900 Добро, фала многу. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]