1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Семинар] [програмист Въведение в APIs] 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 >> Здравейте, всички, аз съм Били, и днес аз отивам да се говори за APIs, 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 В по-широк смисъл, това е вид на средата човек, който позволява две парчета 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 Object Notation. 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 Object Notation. 40 00:02:03,030 --> 00:02:07,090 Това е в основата на универсален стандарт за предаване и приемане на данни. 41 00:02:07,090 --> 00:02:11,410 Идеята е, че имате тези три категории неща. 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 , които могат да се състои от която и да е от тези три неща 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 Primitives може да бъде струни. Те могат да бъдат цели числа. 60 00:03:09,420 --> 00:03:11,960 Те могат да бъдат bools, нещо подобно. 61 00:03:11,960 --> 00:03:18,410 И вие виждате съдържанието на този масив имоти точки, за да има две струни в него, 62 00:03:18,410 --> 00:03:20,050 подобни и чудесно. 63 00:03:20,050 --> 00:03:27,410 Това са две свойства на 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 Вид стане в ОПА, трябва запетая там всички на различните части от него. 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 Това го прави един наистина хубав език да се използва приложния програмен интерфейс 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 Друга част, която като цяло е наистина полезно при работа с APIs е 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 Това е всичко, което трябва да започнете да се цапаме ръцете APIs. 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 на моята изследователска лаборатория, която е Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 и в общи линии идеята на Viewer 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 Ви показах, което е, ние имаме тези три заявки за търсене, 164 00:09:33,350 --> 00:09:36,290 война, война и френската дума за война, която е Guerre. 165 00:09:36,290 --> 00:09:40,380 И ние сме в рамките на три различни раздели на общата база данни. 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 Отивам да се използват инструменти за разработчици на Chrome, и да стигнем до тези 180 00:10:30,200 --> 00:10:35,160 можете да направите контрол, смяна, J, и това ще ви отведе до конзолата 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 Ние имаме наистина голям масив с два обектите в нея, 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 което отново е картиране ос х стойности до стойности ординатата. 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 Тогава ние имаме метод, който някои APIs ще направя няколко неща. 238 00:14:19,040 --> 00:14:22,360 С други думи, това API може да се върне и други видове данни, 239 00:14:22,360 --> 00:14:27,740 но в този случай, ние искаме картографиране на X ос стойности до стойности ординатата. 240 00:14:27,740 --> 00:14:30,730 Ето това се казва да правя там, 241 00:14:30,730 --> 00:14:35,020 и ние имаме това търсене граници масив, който съдържа две стойности. 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 но това е да покаже на обхвата и силата на какво могат да направят APIs. 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 отиваме да се обърнат към Facebook. 265 00:15:56,510 --> 00:15:59,440 API на Facebook се нарича Graph Facebook, 266 00:15:59,440 --> 00:16:04,390 и в общи линии това означава, че Facebook вижда себе си като тази масивна база данни 267 00:16:04,390 --> 00:16:08,000 на много различни части, които имат определени отношения един към друг. 268 00:16:08,000 --> 00:16:11,070 С други думи, аз съм потребител на Facebook, така че аз нямам профил, 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 Има уникален идентификатор, Facebook, които имам. 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 >> Ние можем да направим същото нещо с Дейвид Малан, например. 286 00:17:10,849 --> 00:17:13,599 Мисля, името му е dmalan. 287 00:17:13,599 --> 00:17:16,369 Виждаме, Дейвид Малан има уникален идентификатор. 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 Да кажа, че съм се интересуват от това, което Дейвид Малан хареса на Facebook. 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 ако можете да получите достъп до всяка една част от базата данни на Facebook 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 Някои APIs изискват определени разрешения, за да имат достъп до своите данни. 302 00:18:03,630 --> 00:18:06,940 И дори по-напреднали API, като Facebook, 303 00:18:06,940 --> 00:18:09,840 ще изисква определени разрешения да направя някои неща. 304 00:18:09,840 --> 00:18:12,650 Мога да видя тази основна информация за Дейвид Малан. 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 За да получите около това за сега, Facebook има този хубав инструмент 308 00:18:23,050 --> 00:18:27,690 което е графиката API Explorer, и идеята, че можете да сортирате 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 Опа, предполагам, че трябва да препотвърдите знак ми тук. 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 Това са действително ми харесва Facebook. 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 и ако сте заинтересувани от използването на Facebook API за CS50 окончателен проект 327 00:19:37,980 --> 00:19:40,720 или за нещо подобно, че това е всъщност доста изпълним. 328 00:19:40,720 --> 00:19:44,260 По принцип как можете да получите около истинността нещо е Facebook 329 00:19:44,260 --> 00:19:48,030 използва система, наречена OAuth или Open Authentication, 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 Facebook API е много четене. 335 00:20:04,050 --> 00:20:06,670 Има цял спекулация. 336 00:20:06,670 --> 00:20:10,210 Например, това е документацията за Facebook 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 >> Ако сте направили на Facebook приложения и приложението ви има определени потребители, 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 и ако искате да използвате Facebook бих силно препоръчвам, че 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 Идеята като цяло, Facebook API е доста сложно, но и наистина полезно. 364 00:21:48,350 --> 00:21:53,220 Определено си струва да пробвате, ако все пак търсите за окончателен проект. 365 00:21:53,220 --> 00:21:57,930 >> Друг набор от приложения, които аз ще отида CS50 APIs. 366 00:21:57,930 --> 00:22:00,070 Нека я увеличите тук. 367 00:22:00,070 --> 00:22:03,390 CS50 всъщност е сглобен цяла поредица от APIs 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 ви позволява да знаете, A, какво конкретно да поиска от 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 APIs. 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 >> APIs са супер мощен за размера на усилията, които те вземат. 451 00:27:29,540 --> 00:27:32,800 Последното нещо, което аз ще отида още няколко APIs като цяло. 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 Wikipedia-вероятно всички знаете е безплатна онлайн енциклопедия, 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 Просто кажи хей, Wikipedia 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 че е по-добре за преглед на Wikipedia или нещо подобно. 465 00:28:16,200 --> 00:28:21,350 >> Freebase е нещо подобно, въпреки че е малко по-трудно, тъй като доколкото API. 466 00:28:21,350 --> 00:28:24,390 Freebase е като Wikipedia, че това е онлайн енциклопедия 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 Но до голяма степен, Wikipedia е много проста място да отида, доколкото е получаване на информация. 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 Tools уебсайт. 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 Едно последно нещо, което ще спомена за APIs като цяло е, че 520 00:31:39,040 --> 00:31:41,840 понякога ще се сблъскате с нещо, наречено ограничаване на скоростта, 521 00:31:41,840 --> 00:31:44,940 и идеята за ограничаване на скоростта е, че не искат да злоупотребяват APIs. 522 00:31:44,940 --> 00:31:48,130 С други думи, това е много хубаво, че много от тези сайтове имат APIs 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 очевидно е, че не е добре, така че това, което много APIs направите, е да получите този функцията за ограничаване на скоростта 528 00:32:04,570 --> 00:32:09,970 която казва, че може да прави само 1000 заявки на ден на 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 Spec. 534 00:32:22,950 --> 00:32:26,330 Ако има някои правила, приложени към него, като теб само може да направи X заявки на ден 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 Докато играете в тези правила вероятно ще имате един наистина хубав път се използва APIs. 538 00:32:38,360 --> 00:32:42,030 Вашата цялостна храна за вкъщи APIs са наистина полезни. 539 00:32:42,030 --> 00:32:45,610 >> Има API за почти всеки голям уеб услуга там. 540 00:32:45,610 --> 00:32:50,700 Почти всяка част от Google Tools Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, всички тези неща са APIs. 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 APIs са фантастично полезно, и те са навсякъде. 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]