[Powered by Google Translate] [Семинар] [програмист Въведение в APIs] [Били Janitsch] [Харвардския университет] [Томи MacWilliam] [Това е CS50. [CS50.TV] Здравейте, всички, аз съм Били, и днес аз отивам да се говори за APIs, или интерфейси за приложно програмиране, по-специално в контекста на CS50 окончателните проекти и такива неща. Като цяло, това, което е API? В по-широк смисъл, това е вид на средата човек, който позволява две парчета на софтуер, за да комуникират един с друг. Това е един вид на много широка дефиниция и не е толкова от значение за това, което търсим в. Това, което наистина искаме, е някаква полезна средата земята да общуват с някаква база данни някъде. Ето диаграма, и в общи линии идеята е, че ние сме заявление, и ние искаме да се получават данни от база данни, но ние не искаме да сверки с базата данни директно. Вместо това искаме да мине през този вид на средата човек, API. Идеята зад това е номера 2 и 3 на графиката и двамата ще бъде много сложен и объркан. С други думи, когато API заявки на базата данни, това е най-вероятно ще се използва SQL таблици и всички такива неща, Научих малко за него през CS50, но като цяло, сте забелязали, че това е доста голяма болка. Той получава много, много сложен и объркан, особено когато сте сложни запитвания и неща от този сорт. Това, което наистина искаме, е някаква полезна и лесен начин за да получите тези данни, и това е идеята зад номера 1 и 4 на графиката. С други думи, ние искаме наистина прост начин да каже на API какво да получите за нас и наистина прост начин да се получи, че данните обратно. Има един основен начин, че тези данни обикновено се изпратени и получени, което е JSON, или JavaScript Object Notation. Това може да се различават малко, доколкото е как да изпрати искане до API. С други думи, ако искате някаква определена сума на данни, как да ви кажа API, за да получите, че данните могат да се различават малко. Обикновено тя включва някаква мрежа искане. С други думи, достъп до някаква URL, че ще каже на API точно това, което искате, но данните почти винаги се върнат, с други думи, номер 4 в JSON. Какво е JSON точно? Както казах, JavaScript Object Notation. Това е в основата на универсален стандарт за предаване и приемане на данни. Идеята е, че имате тези три категории неща. Имате масиви, hashmaps и примитиви. Масиви и hashmaps сте разглеждали малко в CS50, но сте придобили много тесния смисъл на това, което са. С други думи, с масиви вие знаете, че те въведете граница, така че има само един вид вид, който продължава през целия масив. JSON е много по-снизходителен към такива неща. Всъщност идеята е да се изгради този обект, , които могат да се състои от която и да е от тези три неща и може да се състои от няколко тези от тях, и те могат да бъдат вложени. Ето нещо като пример за JSON, което е, тези къдрави скоби тук представляват HashMap, и HashMap е основно картографиране от някакъв вид ключ някаква стойност. Ще видите, че ние имаме имоти ключ, и това е картографиране на масив, което е цялото това нещо. Виждаме друг елемент от HashMap, който е този ключов isAwesome карти примитивна стойност на истинската, с други думи, булеви. Primitives може да бъде струни. Те могат да бъдат цели числа. Те могат да бъдат bools, нещо подобно. И вие виждате съдържанието на този масив имоти точки, за да има две струни в него, подобни и чудесно. Това са две свойства на JSON, и ние виждаме JSON е страхотно. За да видите, че малко по-внимателно Отивам да се изгради по-сложен пример на JSON тук. Нека започнем с масив, например, само празен масив. Но това е нещо скучно, така че отиваме да го запълнят малко, и както казах, масиви в JSON въведете граница, така че ние също може да има низ, който е хай, и това е друг елемент от този масив. И също така, бихме могли да добавите hashmapping тук, който ще има няколко преобразувания. Ще има картографиране от името на низа Били. Ние имаме картографиране от името на Били, а ние имаме картографиране на любим цвят на син. Това е в основата на добър пример за JSON. Вид стане в ОПА, трябва запетая там всички на различните части от него. Отново, това не е типа обвързана изобщо, така че може да има какъвто и да е вид на видовете вътре всичко, което искате, и идеята е, че е самостоятелно подобен. С други думи, това тук е JSON обект, както е цялото това нещо, е само това, така че можете да имате един примитивен бъде обект, масив да бъде обект или HashMap да бъде обект. Както можете вид видите, JSON е наистина, наистина полезно това, че е толкова гъвкав. Можете да имате всички възможни данни, които можете да измислите, съхранявани в JSON. Това го прави един наистина хубав език да се използва приложния програмен интерфейс , тъй като до голяма степен означава, че без значение какво данните, които искате там ще бъде някакъв начин да го върна в JSON. Няколко свойства, които правят JSON особено добра за този вид на нещо. Както можете да видите, в сравнение с много неща, че сте работили в CS50 това е сравнително лесно да четат и също е много лесно да се напише. Можете да го тире, ако искате, като правех в този пример, която ви дава хубава, красива версия, която можете да видите наистина добре. Но освен това, това е също така лесно да четат и пишат за компютър. С други думи, това е лесно да се направи разбор и лесно да се кодират, което означава, че това е доста бързо четене на данни, и JSON може да се генерира много бързо. То също е много лесно за достъп до различни части на JSON и неща от този сорт. Това е хубаво, а освен това факта, че е самостоятелно подобен, с други думи, фактът, че можете да имате JSON в рамките на JSON в рамките на JSON е много хубаво за съхраняване на данни. Друга част, която като цяло е наистина полезно при работа с APIs е JQuery. Вие сте научили малко JavaScript, което е добър начин да манипулира HTML и CSS в рамките на една и съща електронна страница. Но той може да бъде до болка код в обикновен JavaScript, до голяма степен, защото JavaScript е наистина многословен език. Трябва да се научиш много синтаксис, и само за да направи много прости неща това отнема много на кода, така Jquery е JavaScript библиотека за. С други думи, това е един JavaScript файл, който можете да заредите и след това да използвате JQuery функции, за да направи някои неща. И Jquery основно прави живота ви много по-лесно. Тя опростява какво ще се стотици линии в JavaScript на няколко линии в Jquery. Това е особено полезно, ако използвате API, защото обикновено как ще да имат достъп до API, чрез AJAX заявки, и вярвам, че Дейвид е споменато в лекция, че исканията на AJAX обикновено, когато сте създаването на мрежа искане до някакъв сървър и се връща някаква на данни и актуализиране на страница мигновено. Като има предвид, че в обикновен JavaScript, че ще отнеме луди номера на линии за валидиране на заглавията и всички такива неща, Jquery е много проста функция, наречена AJAX, и всичко, което трябва да се направи в AJAX е да даде параметрите, които искате да дадете на API, местоположението на API и допълнителна вид на опциите, които искате да конфигурирате. Това е много, много хубаво и много полезно за този вид на нещо. Това е всичко, което трябва да започнете да се цапаме ръцете APIs. Отивам да доведе до няколко примера и да проучи различните им свойства и защо те са полезни за различни неща. Първото нещо, което ще ви покажа е нещо, което аз съм на работа на моята изследователска лаборатория, която е Viewer Ngram, и в общи линии идеята на Viewer Ngram е можете да търсите някакъв вид на думата или фраза и да видим колко често се появява в определен набор на текст с течение на времето. Този пример тук е този набор от данни на бебета , които са родени в Ню Йорк между 1920 и 2000. Можем да търсим, например, за името Дженифър, и виждаме, че на 1960-те той наистина не е била използвана чак толкова много, и след като вземем в по-късни години, това е все използва все повече и повече. Можем също така да сравнения, така че ако ние сравнение Дженифър, например, Томас, можем да видим Томас е доста широко разпространени в цялата история, като има предвид, че Дженифър е по-ново име. Ние можем да направим нещо подобно. Как това заявление работа? По принцип, тя работи чрез приложния програмен интерфейс (API). С други думи, ние имаме определени параметри. Ние имаме параметрите на това, което ние всъщност търсят, кои са тези имена, и след това имаме няколко други свойства, като оста Y и X ос. Можете да видите, имаме няколко различни опции по отношение на резолюция време, за да използвате, и че подобно нещо. Ние имаме тези възможности, доколкото е какви данни всъщност искат от базата данни, и ние искаме да се получи, че данните по някакъв полезен начин. Обикновено, ако бяхме заявки базата данни директно, че ще сортирате да бъде до болка , защото Вероятно това данни за бебе имена живее някъде, в някаква база данни и тя ще бъде наистина сложно трябва да го заявки ръчно и да реши точно какви данни да се върне. С други думи, ние само се грижи за Дженифър и Томас в този случай, и ние се интересувате само на определена ос и всички такива неща. Как да стигнем около това? Да копаят в този API малко повече аз ще ви покажа още един пример за тази платформа която използва малко по-различен набор от данни. Този набор от данни, вместо да бъде бебе имена, е всъщност цялата отпечатате публикуването на база данни на "Отворено библиотека което е огромен източник на текстове, публикувани през последните 100 години. Идеята е, че трябва този compository на милиони и милиони от текста, които сега можем да търси различни думи и фрази инча Ето един пример, който варира малко по-различно от предишния пример Ви показах, което е, ние имаме тези три заявки за търсене, война, война и френската дума за война, която е Guerre. И ние сме в рамките на три различни раздели на общата база данни. С други думи, в тази първа заявка ние сме само търсене в САЩ, във втория само в Обединеното кралство, а третият само от произведенията, публикувани във Франция. Ние виждаме появата на някои интересни модели. Например, ние виждаме някъде тук- Опа, аз се обърках оста малко, но можете да видите точно в този диапазон тук около Гражданската война има голям скок в американското издание но не е толкова голям скок в другите две, и това е очевидно, защото Американската гражданска война се случва в този момент. Ние можем да видим някои готини неща там, но това, което наистина се интересуват как сме стигнали тези данни. Аз ще ви отведе зад кулисите на това приложение в малко. Чист трик е, ако работите със сайта и вид на искат да знаят какво се случва зад кулисите, можете да отворите на инструменти за разработчици. Отивам да се използват инструменти за разработчици на Chrome, и да стигнем до тези можете да направите контрол, смяна, J, и това ще ви отведе до конзолата JavaScript. Има няколко раздели тук. Те могат да бъдат доста полезни при различни обстоятелства, но ме е грижа за мрежата раздела в момента, и аз действително е необходимо да обновите, за да получите тази работа. О, съжалявам. Тя обича да даде случаен пример. Добре, ние ще използваме този пример, вместо след това. Идеята е, че има API тук, и можете да видите точно това, което API се връща. Това е, което молбата е да се върна от API изпраща това искане. Нека я увеличите малко, и ние можем основно видите, че е просто поредица на ключови двойки стойност в JSON. С други думи, ние имаме това HashMap, че тук е картографиране стойности. С други думи, това е картографиране година до стойности. През 1765 дума, която първоначално търси се използва 90 пъти от 1 милион, така че ние сме се връща този резултат. Това не е точно JSON, тъй като ние имаме този малък горен резултат тук, но забележете, че цялата тази цел тук е просто едно голямо JSON петно. Имаме масив, който съдържа целия този елемент, и можете да видите, че целият елемент завършва там, и след това имаме друг голям елемент че отива по целия път до края, и че свършва тук. Ние имаме наистина голям масив с два обектите в нея, и всеки един от тези обекти е HashMap. Можете да видите в рамките на всяка от тези hashmaps имаме картографиране стойност на този индекс 0 и стойността на тази стойност в друга HashMap, което отново е картиране ос х стойности до стойности ординатата. Можете да видите, JSON стане малко по-сложно, но като цяло, всъщност е много полезно, и то е много лесно за достъп в сравнение с други различни форми на нотация. Що се отнася до това, което всъщност изпращане на данни на API, за да се получи, Отивам да отиде в задния край малко тук. Това е голям файл, JavaScript, това е работа на взаимодействието на уеб приложението, и затова не ми пука за повечето от това, но правим грижи за част от него. Например, ние се грижим за този buildQuery функция, и идеята на тази функция е основно се оглежда страницата разберете това, което потребителят иска да задава въпроси, с други думи, проверка на тези кутии, където те са техния принос термини за търсене, проверка на различна ос Y и X ценности, които сте избрали и всички такива неща, и това ще да изплюе тази заявка стойност, която може да изпрати на API. Това изглежда сложно, и е доста сложно но това, което аз отивам да правя в действителност, аз съм вече прави това, което е страхотно е, че аз отивам да получите на конзолата, за да отпечатате точно тази заявка стойност че това е изпращане на API. Това всъщност е точно тук. Съжаляваме, да подава много неща. Но това е, което ние се грижим за този обект тук. Това е заявка обект. С други думи, това е точно това, което уеб приложение, което изпраща на API, и така нека погледнем вътре малко, и ние имаме няколко стойности тук. Ние виждаме, че този брой тип, което е събитие един милион думи, което е точно това, което сте избрали по оста Y тук. Това е мястото, където това идва от. Имаме база данни стойност, което означава, че има някои данни , че тези данни се живее, и искаме достъп, че данни, специално за разлика от данните бебешки имена, например. Тогава ние имаме този групи стойност, която се казва, че ние искаме да се търси от години, за разлика от друга стойност X ос. Тогава ние имаме метод, който някои APIs ще направя няколко неща. С други думи, това API може да се върне и други видове данни, но в този случай, ние искаме картографиране на X ос стойности до стойности ординатата. Ето това се казва да правя там, и ние имаме това търсене граници масив, който съдържа две стойности. Първият от тях е това, което виждаме тук, което е всичко на стойностите съдържащи се в рамките на тази първа малка кутия в горната част. С други думи, ние искаме да се търси думата битка, и ние искаме да се филтрира с текстове, написани на английски език в рамките на американската литература. Ние имаме тази страна, която е САЩ. Ние имаме език, който е английски, така че имаме всички тези различни части , които са казва API точно това, което искаме. Ние не знаем какви са данните, които се върнем още но ние знаем, че данните ще отнеме една определена форма. Този пример е нещо от сложната страна, и вие не бихте задължително да се използвате API този комплекс, но това е да покаже на обхвата и силата на какво могат да направят APIs. С други думи, с помощта на сравнително проста заявка система, ние по същество имат поле за въвеждане с няколко други селектори на различни места. Нека я увеличите върна тук. Имаме полето за въвеждане с няколко различни селекции на метаданни, и ние имаме ос Y и X селекцията ос. Ние всъщност не са, че много области, и можем да видим много лесно, ние сме в състояние да се обръщате някакво API и да получите данни за минали периоди и след това я поставете в тази таблица, която след това ще го покаже в полезен начин. Да разгледаме друг пример, че може да бъде малко по-запознат с вас отиваме да се обърнат към Facebook. API на Facebook се нарича Graph Facebook, и в общи линии това означава, че Facebook вижда себе си като тази масивна база данни на много различни части, които имат определени отношения един към друг. С други думи, аз съм потребител на Facebook, така че аз нямам профил, и аз също имам някои приятели, и всеки от тях има профил, и всеки от моите приятели има стена, която има различни коментари върху него, и всяка от тези коментари има харесва и всички такива неща. Има много различни части на Facebook. Това е изключително сложна API, а има и тон, които можете да правите с него, но всъщност е доста лесен за използване. Отивам да започнете, като ще graph.facebook.com / billyjanitsch който ми е уникален името на акаунта и името на акаунта си или ще бъде някаква дума, ако сте го избрали, или тя може да бъде само низ от числа. Какво се върнем, е доста основна информация. Виждаме, че имам собствено име, което е Били, фамилно име, което е Janitsch. Има уникален идентификатор, Facebook, които имам. Можете да видите, че съм мъж и че аз имам настройката за езика британски английски. С други думи, ние виждаме много основна информация тук. Това не е твърде много, но това не ни дава представа за това, което е там. Ние можем да направим същото нещо с Дейвид Малан, например. Мисля, името му е dmalan. Виждаме, Дейвид Малан има уникален идентификатор. Той има име, собствено име, презиме, фамилия. Ние също така ще видите, че той е мъж и има неговия език, набор на американския английски. С други думи, ние не виждаме доста основна информация тук. Сега, това, което се случва, ако се опитваме да проверим нещо друго? Да кажа, че съм се интересуват от това, което Дейвид Малан хареса на Facebook. Мога да направя / харесва. Сега сме тичам в проблем. Имаме някаква грешка, която казва означение за достъп е длъжна да поиска този ресурс. Но ако си мислите за това, че всъщност има смисъл, защото това би било странно ако можете да получите достъп до всяка една част от базата данни на Facebook само от някакъв прост API, нали? С други думи, предполага се, че информацията не може да бъде достъпна за всеки, който го иска. Тази грешка е точно какво означава това. Някои APIs изискват определени разрешения, за да имат достъп до своите данни. И дори по-напреднали API, като Facebook, ще изисква определени разрешения да направя някои неща. Мога да видя тази основна информация за Дейвид Малан. Виждам, че той е мъж и че той живее в САЩ, но не мога наистина виждам нищо миналото. За да получите около това за сега, Facebook има този хубав инструмент което е графиката API Explorer, и идеята, че можете да сортирате разрешения за себе си, на базата на свой собствен акаунт и след това да видите неща, които конкретно ви сметка може да видите. Така например, ако го направя graph.facebook.com/billyjanitsch/likes- Опа, предполагам, че трябва да препотвърдите знак ми тук. Добре. Ако аз го направя отново, чудесно, сега виждам, че съм се този обект в която се казва, че ми харесва басейн юфка, които са в категорията Игри и играчки. Харесва ми моржове, които са в категорията на животните. Това са действително ми харесва Facebook. Те са вид неудобно. Но можем да видим всички тези данни се връща в JSON. Това е доста четене. С други думи, ние имаме това картографиране на данни за някаква масив, и всеки елемент от този масив е HashMap, който преобразува името на подобен и категорията на подобен. Всеки като има уникален идентификационен номер. Там са всички видове на различни неща на данните, които можем да вземем, и ако сте заинтересувани от използването на Facebook API за CS50 окончателен проект или за нещо подобно, че това е всъщност доста изпълним. По принцип как можете да получите около истинността нещо е Facebook използва система, наречена OAuth или Open Authentication, и аз не искам да отида в него сега, защото OAuth или различен тип за удостоверяване има тенденция да се различават много между различните програмни интерфейси (API), за да мога да прекарват много време над всеки един, но те са всъщност доста очевидно. Ако Google Facebook API е много четене. Има цял спекулация. Например, това е документацията за Facebook API, и можете да видите, че съм на потребителя страница, така че мога да науча всичко за различни неща , които са на разположение, за да получите, доколкото данни , а също и различни разрешения, които се нуждаят, за да имат достъп до тях. Както видяхме, ние не трябва разрешения за достъп до името или пола, но освен това ние трябва разрешения за повечето неща. Тази страница, или по-скоро, този сайт ще ви кажа как да се получи знак да бъде в състояние да удостоверявате самоличността си. Повечето системи за идентификация използват някакъв символичен , където можете да получите тази уникална стойност, която е наистина дълъг и произволен низ, и по този начин те могат да се сдружават искане да правим с вас. С други думи, те знаят, че ти няма да правиш нищо подозрително с техните данни. Те знаят точно какво сте се. Те също така знаят, че имате разрешение да видите тази информация. Ако сте направили на Facebook приложения и приложението ви има определени потребители, и тези потребители не са позволени, че приложението за достъп до някои части на техния профил, тогава каквото API ключ или знак, че този апартамент се използва ще бъде в състояние за достъп до данни за тези потребители. Това може да звучи сложно, но не е твърде лошо, и ако искате да използвате Facebook бих силно препоръчвам, че играя наоколо с техните API. Това е много готин, и с него можете да направите много различни неща. Ако потребителят ви дава тези разрешения, може дори да се върне на API и да кажа, че искате да публикувате на стената на този потребител, или искам да ги публикувате снимка, и затова си емисия новини понякога ще получите тези досадни неща че вашият приятел е гледал това видео на някакъв странен сайт или нещо подобно. Това е така, защото този апартамент е предоставен достъп да публикувате на стената на това лице. Идеята като цяло, Facebook API е доста сложно, но и наистина полезно. Определено си струва да пробвате, ако все пак търсите за окончателен проект. Друг набор от приложения, които аз ще отида CS50 APIs. Нека я увеличите тук. CS50 всъщност е сглобен цяла поредица от APIs , които можете да използвате за окончателен проект или просто за всичко, което правите. И те са най-вече Харвард свързани, и те се различават от менюто Huds, например, това Харвард събития API, което ще ви позволи достъп до списък с различни събития, които се случват в Харвард и неща от този сорт. И така можем да кликнете върху всяка една от тях и да получите спекулации за това, която ще бъде в състояние да намери за всеки API, и идеята е ви позволява да знаете, A, какво конкретно да поиска от API и как да го поискат. С други думи, ако искам всички събития, които се случват утре след това имам очевидно я дам, че датата, на която искам в определен формат, и Б, тя ще ми каже какво точно ще се върне за мен. Той ще кажа, че аз ще ви върне този обект JSON, или както можете да видите, има различни формати. Можете също така да върнете данните като CSV, например. Но знаете как точно, че данните ще изглежда, когато го върна така че можете да очаквате да направя някои неща с него. Ние можем да превъртите надолу и да видим, например, ако искаме да запитва API да получите календар, тогава можем да използваме този конкретен URL и да го дам на определени параметри, които ще бъдат данните, които искаме точно. И по същия начин, ако искаме данните в определен формат, тогава можем да го помоля да изведе данните в CSV, и това е просто друг параметър, че ние сме преминаване към приложния програмен интерфейс (API). Много готини неща за вършене там. Бих Определено препоръчвам проверка на CS50 APIs. Отивам да гледам в този API Харвард храните и по-специално за малко. Едно нещо, което съм всъщност е това Харвард Noms уебсайт, който използва CS50 API на храните, за да извлечете Huds меню за деня. Разширяване училище за хора, Huds е сервитьорско обслужване в Харвард. Това, което получавате, е тази страница, който съдържа всички на хранене за деня, така че ние виждаме обяд. Имаме няколко различни категории. Ние имаме боб и цялата станция зърно. Имаме кафяв ориз станция. Ние можем да видим за обяд имаме тези няколко хранителни продукти. Ако кликнете върху тях, а след това да получите информация за хранителната стойност. Виждате ли, това е информация за хранителната стойност грейпфрут, в случай, че се чудите. И така отново, отиваме да надникне в задния край тук малко и да видим какво точно се прави, за да получите тези данни. И се оказва, че всъщност не е много сложен. Този файл изглежда малко разхвърлян, но имайте предвид, че това е работа на целия сайт, и ако аз превъртете надолу виждаме данните от функцията за тази промяна. Сега, само за да бъде ясна, това е записано в CoffeeScript, който е на език, който най-вероятно не сте виждали преди. Но това е доста четене, така че ще минеш през нея като че ли е pseudocode. Смяна на дата е функция, която ще отнеме тази дата стойност, и тя също ще вземе в първия, който не ни интересува толкова много. Но важното е, че той има тази дата, и тази дата е деня, в който искаме да поиска всички хранителни продукти за. И тогава ще видим, че има малко на синтаксиса, която е основно разбор на тази дата в лесен за четене формат. С други думи, API изисква дата в определен формат. Не може просто да се каже 16-ти ноември, 2012-та година. Той няма да знам какво да правя с това. Той иска дата в определен формат. Всичко, което правим тук е точно този формат, което е една година стойност и след това тире, стойността на месец, друг тире и вальорът. И ние също да кажем, че искаме данните да бъдат изведени в JSON. Сега ние правим това искане AJAX, и както споменах по-рано, Jquery има този супер полезна функция на AJAX които всичко, което трябва да направите е да се посочва няколко параметъра тук, и тя ще ви даде точно това, което искате. Ние го казвам, че URL искаме да отиде, това е CS50 храните API, които имаме от спец.. Ние казваме, че искаме данните в JSON и че ние ще го даде тези данни, които сме определени тук. Това е денят, искаме хранителни продукти за. И тогава всичко, което трябва да направим, е да се определи някакъв успех функция, което е основно това, което се случва, когато API връща, че данните. С други думи, ние сме опаковани всички параметри, които искаме, което в този случай е денят, че го искаме и факта, че го искат в JSON, и го изпрати на API, така че сега API се казва, добре, тук данните си, аз го върнах за вас. Ние имаме успех функция, което означава, че даден API успешно се връща някои данни, какво ще правим с него? И се оказва, че всичко, което правим, е да извикате менюто тази функция актуализация с каквото се е върнал на API, така че можем да търсим, че и ще видите, че всичко, което правим е с помощта на куп нов синтаксис тук за актуализиране на HTML и поставете тези нови данни. Това позволява имаме тези стрелки от двете страни, и ние можем да кликнете и сега търсим данни за следващия ден и отново за следващия ден, и всеки път е актуализиране на тази дата, стойност и заявки на API, да се върна на някои данни и да я постави в сайта. Отново можете да видите, супер, супер полезно. Това приложение ми отне няколко часа, за да проникна заедно, и аз имам малко повече опит, очевидно, но си CS50 окончателния проект може да изглежда нещо много подобно. APIs са супер мощен за размера на усилията, които те вземат. Последното нещо, което аз ще отида още няколко APIs като цяло. Аз няма да получите, доколкото в тях, доколкото това, което правят специално, но аз ще ви дам представа за какво е там. 2 наистина полезни, ако сте заинтересовани в анализ на данни или визуализация или нещо подобно, са Freebase и Уикипедия. Wikipedia-вероятно всички знаете е безплатна онлайн енциклопедия, и тя действително има API, така че ако искате да, например, получите всички текстове и статии за октопод можете много лесно да го направя. Просто кажи хей, Wikipedia API, бих искал данните, върнати, тъй като това, и много ми харесва в този формат, и статия бих искал е октопод, и много бързо тя ще ви даде тази информация. Това може да бъде много полезно, ако искате да направите някакъв вид на сайта че е по-добре за преглед на Wikipedia или нещо подобно. Freebase е нещо подобно, въпреки че е малко по-трудно, тъй като доколкото API. Freebase е като Wikipedia, че това е онлайн енциклопедия , който съдържа много и много различни данни за всички видове на различни теми, но той се съхранява в релационна база данни, която е малко по-различен от Уикипедия. Уикипедия има своите статии и предмети, свързани с други изделия, но за по-голямата част, ако искате данните за октопод, отидете на октопод статия, че данните, а вие имате куп текст за октоподите, така че това е страхотно. Freebase работи в малко по-сложен начин, тъй всичко е свързано с един друг. С други думи, ако търсиш октопод то тя има няколко категории, свързани с него. Например, това е животно, тя живее под водата, има определена температура на тялото. Не знам. И всички тези категории са линкове към други места, където можете да отидете да виждаме нещата със същата категория. С други думи, октоподът набор от данни ще съдържа линк към данните, за всички животни, и това ми позволи да се движите в базата данни наистина бързо. Това може да бъде много полезно, ако правиш нещо като сравнения. С други думи, като се има предвид нещо определено, искате да видите какво друго е свързано с и да видим какво друго тя не е свързана с. Този вид на нещо. Той може да бъде полезен в редица начини. Ако търсите по-голямо предизвикателство и да бъде в състояние да се направят някои по-сложни неща Аз ще обсъди като погледнете в Freebase API. Но до голяма степен, Wikipedia е много проста място да отида, доколкото е получаване на информация. Друго място, което ще разгледаме е Last.fm, и аз съм всъщност ще отидете на сайта в случай че някои хора не са запознати, но Last.fm е в основата на музиката вкусове и препоръки уебсайт. Можете да направите сметка. Можете да започнете качването на музика от вашия музикален плейър в сайта, и в общи линии това ще започне да Ви музикални препоръки въз основа на това, което слушате. Например, ако отидете в профила си страница - това е моя можете да видите, имате списък Наскоро слушах песни. Можете да видите общите любимите си изпълнители, всички от този вид на нещо, и отново, има голяма API зад Last.fm,  и можете да го използвате, за да се направи много и много наистина готини неща. Например, аз ще отида в страница на свой приятел, който има тази Last.fm Tools уебсайт. Това всъщност е друга платформа, която е изградена на Last.fm API, и го прави няколко доста интересни неща. Ако вляза с потребителското си име, например, Мога да го помоля да генерира таг облак, например, и какво ще направи, е да ми даде образ на всички различни жанрове и неща от този род, че аз обичам да слушам. Как се прави това? Много основно казва Last.fm API ето този потребител. Бих искал да знам жанра на всяка песен, че някога сте слушали, и можете да направите това от доста проста AJAX призив към Last.fm API. Вие ще получите голям списък, и след това се прави очевидно някои други неща да го превърне в облак дума, но можете да видите цялостната това е много лесна за достъп и много лесен за използване. Много хубаво за няколко неща. Мисля, че това е всичко, което аз ще кажа като цяло. Едно последно нещо, което ще спомена за APIs като цяло е, че понякога ще се сблъскате с нещо, наречено ограничаване на скоростта, и идеята за ограничаване на скоростта е, че не искат да злоупотребяват APIs. С други думи, това е много хубаво, че много от тези сайтове имат APIs че можете да отидете и да използват безплатно. Въпреки това, ако сте на милиони или милиарди заявки на ден, Например, ако сте остана в безкраен цикъл, който е безкрайно заявки някаква API и да се върна на огромно количество данни, очевидно е, че не е добре, така че това, което много APIs направите, е да получите този функцията за ограничаване на скоростта която казва, че може да прави само 1000 заявки на ден на IP адрес или нещо подобно. И ако правиш много тестове и такова нещо, понякога ще тичам в тази, и изведнъж ще ви се изключи и да кажа, не, аз не съм ви дава повече данни. Това, което искате да направите, е да играят по правилата. Вие искате да сте сигурни, че сте прочели внимателно API Spec. Ако има някои правила, приложени към него, като теб само може да направи X заявки на ден или може да има достъп само до част от базата данни на определен брой пъти или нещо подобно искате да се уверите, да се придържаме към това. Докато играете в тези правила вероятно ще имате един наистина хубав път се използва APIs. Вашата цялостна храна за вкъщи APIs са наистина полезни. Има API за почти всеки голям уеб услуга там. Почти всяка част от Google Tools Suite, Google Maps, Google Earth, GMail, Google Calendar, всички тези неща са APIs. Можете да ги използвате и за двете се получават данни от сървъра и изпращане на данни към сървъра. С други думи, ако искате да направите ап календар, който може да се актуализира Google Календар на някого, има API за това. Ако искате да направите нещо, което ще ви кажа къде местоположението на даден адрес можете да използвате Google Maps API за това. APIs са фантастично полезно, и те са навсякъде. Ако сте заинтересувани от някаква идея, най-вероятно е свързана с приложния програмен интерфейс (API), които можете да използвате, за да получите много на данни много бързо и много просто. Ако все пак търсите за даден проект, или ако просто искате да си поиграете с нещо като цяло, API определено си струва да правиш. Благодаря, и аз съм щастлив да отговори на всички въпроси, които вие може да имате. Добре, благодаря ти много. [CS50.TV]