[Powered by Google Translate] [Семинар] [А програмерите Вовед во API-јата] [Били Janitsch] [Универзитетот Харвард] [Томи MacWilliam] [Ова е CS50.] [CS50.TV] Здраво, сите, јас сум Били, а денес јас одам да се зборува за API-јата, или апликација програмски интерфејс, конкретно во контекст на CS50 конечниот проекти и тој вид на работа. Во принцип што е API? Во многу поширока смисла, тоа е вид на средината на човекот кој им овозможува на 2 парчиња на софтвер за да комуницираат едни со други. Тоа е еден вид на многу широка дефиниција и не е толку важно за она што го барате. Што ние навистина сакаме е некој вид на корисни средина за да комуницира со некој вид на база на податоци некаде. Еве една шема, и во основа идејата е дека ние сме некоја апликација, и ние сакаме да се добијат податоци од базата на податоци, но ние не сакаме да се пребарува базата на податоци директно. Наместо тоа ние сакаме да одиме преку овој вид на средината човек, API. Идејата зад тоа е броеви 2 и 3 на табелата се двете случува да биде многу комплициран и неуредна. Со други зборови, кога API е доведување во прашање на базата на податоци, тоа веројатно ќе биде со користење на SQL маси и сите тој вид на работи, и ние научивме нешто повеќе за тоа во CS50, но генерално, сте забележале дека тоа е малку болка. Станува многу, многу комплицирана и неуредна, особено кога сте правење сложени пребарувања и тој вид на работа. Што ние навистина сакаме е некој вид на корисни и едноставен начин да се добие дека податоците, а тоа е идејата зад броеви 1 и 4 на табелата. Со други зборови, ние сакаме навистина едноставен начин да се каже на API што треба да добие за нас и навистина едноставен начин да се добие дека податоците назад. Постои еден главен начин на кој тие податоци е обично испратени и примени, која е JSON, или да го вклучите Javascript Цел Нотација. Тоа може да се разликуваат малку колку што е како ќе испрати барање до API. Со други зборови, ако сакате некои одредени количини на податоци, како ќе му кажете на API за да се добие дека податоците може да се разликуваат малку. Обично тоа се прави со некој вид на мрежа барање. Со други зборови, пристап до некој вид на URL, кој се случува да се каже на API токму она што го сакате, но податоците се скоро секогаш вратени, со други зборови, број 4 во JSON. Што е JSON точно? Како што реков, JavaScript Цел Нотација. Тоа е основа на универзален стандард за пренесување и примање на податоци. Идејата е дека имате овие 3 категории на нештата. Имате низи, hashmaps и примитивците. Низи и hashmaps сте погледна малку во CS50, но вие вид на добивано многу строга смисла на она што се. Со други зборови, со низи знаете дека тие се тип врзани, па имате само еден вид на тип кој оди во текот на целата низа. JSON е многу поблага со тој вид на работа. Во суштина идејата е да се изгради овој објект, кои можат да бидат составени од било кој од овие 3 работи и може да биде составен од повеќе оние од нив, и тие може да се вгнездени. Еве вид на пример на JSON, која е овие кадрави загради тука претставуваат вашиот HashMap, и HashMap е во основа на мапирање од некој вид на клучните на некој вид на вредност. Ќе видите тука што имаме имоти клуч, и тоа е мапирање врз низа, што е целата оваа работа. Можеме да видиме уште еден елемент на HashMap, што е овој клуч isAwesome, која мапи на примитивни вредност на вистина, со други зборови, рационален број. Примитивците може да биде жици. Тие можат да бидат цели броеви. Тие можат да бидат bools, такво нешто. И ќе видите содржината на оваа низа која својства поени да има 2 жици во него, само-слични и прекрасно. Тоа се 2 својства на JSON, и гледаме дека JSON е неверојатна. Да се ​​погледне во тоа малку повнимателно, ќе одам да се изгради посложени пример на JSON тука. Да почнеме со низа, на пример, само празна низа. Но, тоа е вид на досадни, па ние ќе го пополнат малку, и како што реков, низи во JSON се тип врзани, така и ние би можеле да имаат низа тука, што е здраво, и тоа е уште еден елемент на таа низа. И, исто така, би можеле да додадете hashmapping тука, кои нема да имаат неколку мапирање. Тоа се случува да имаат мапирање од името на стринг Били. Имаме мапирање од името Били, и имаме направено мапирање на омилена боја на сина боја. Тоа е во основа добар пример на JSON. Тој вид на впушта во-Whoops, треба запирка таму-сите на различните делови од неа. Повторно, тоа не е тип обврзана на сите, па можете да имате било каков вид на видови внатре нешто што сакате, а идејата е тоа е само-слични. Со други зборови, ова право тука е објект JSON, како што е целата оваа работа, како што е само ова, па ќе може да има примитивни да биде предмет, низа да биде предмет или HashMap да биде предмет. Како што можете да вид на се види, JSON е навистина, навистина корисни по тоа што е толку разновиден. Можете да имате било какви можни податоци што може да се замисли се чуваат во JSON. Што го прави навистина убаво јазик да се користи со API- бидејќи тоа доста значи дека без разлика што податоците што сакате таму ќе биде на некој начин да го добие назад во JSON. Пред неколку својства кои го прават JSON особено добро за овој вид на работа. Како што можете да видите, во споредба со многу нешта што сте биле работат со нив, во CS50 тоа е релативно многу лесен за читање и исто така многу лесно да се напише. Можете да го алинеја надвор ако сакате, како што го правев во тој пример, која ти дава убаво, убава верзија која можете да видите навистина добро. Но, згора на тоа, тоа е исто така лесно да читаат и пишуваат за компјутер. Со други зборови, тоа е лесно да се интерпретира и лесно да се кодираат, што значи дека тоа е прилично брзо колку што се читање на податоци е загрижен, и JSON може да бидат генерирани навистина брзо. Тоа е исто така многу лесно да пристапите до различни делови на JSON и тој вид на работа. Тоа е убаво, и освен тоа, фактот дека тоа е само-слични, со други зборови, фактот дека може да има JSON во JSON во JSON е навистина убаво за складирање на податоци. Друг дел што е генерално навистина корисни во работата со API-јата е jQuery. Што сте научиле малку на JavaScript, која е убав начин да манипулира со HTML и CSS во веб-страница. Но, тоа може да се вид на биде болка да се код во обичен JavaScript, во голема мера поради JavaScript е навистина опширниот јазик. Ќе мора да научат многу синтаксата, и само да се направи многу едноставни нешта тоа трае многу на кодот, па jQuery е библиотека за JavaScript. Со други зборови, тоа е да го вклучите Javascript фајл кој може да се вчита а потоа користи jQuery функции да направите некои работи. И jQuery основа го прави твојот живот во целина многу полесно. Се поедноставува што ќе преземе стотици линии во JavaScript сведува на неколку линии во jQuery. Тоа е особено корисно ако сте користење на API-јата, бидејќи генерално како ќе се пристапува API-јата е со изработка на AJAX барања, и јас верувам дека Давид е споменато во предавање кое AJAX барања обично кога сте правење на мрежата барање на некој вид на серверот и добивање назад некој вид на податоци и ажурирање на страницата моментално. Додека во обичен го вклучите Javascript-дека ќе се луди броеви на линии да се провери сите заглавија и не сите тој вид на работи, jQuery има навистина едноставна функција наречена AJAX, и сите што треба да направите во AJAX е даде параметри кои сакате да им даде на API, локацијата на API и дополнителни вид на опции што сакате да го конфигурирате. Тоа е навистина, навистина убаво и многу корисно за овој вид на работа. Тоа е се што треба да започне да добива наши раце валкани во API-јата. Одам да се донесе до неколку примери и истражуваат нивните различни својства и зошто тие се корисни за различни видови на нештата. Првото нешто што всушност ќе ви покажам е нешто што јас работам на во мојата истражувачка лабораторија, која е Прегледувач Ngram, и во основа на идејата за Прегледувач Ngram е може да пребарувате за некој вид на збор или фраза и да видиме колку често тоа се појави во одреден сет на текст со текот на времето. Овој пример тука е оваа група на податоци на бебиња кои се родени во Њујорк помеѓу 1920 и 2000 година. Ние може да се бара, на пример, за името Џенифер, и гледаме дека пред 1960 година навистина не се користи толку многу, а потоа како да се влезе во подоцнежните години станува се користи се повеќе и повеќе. Ние, исто така може да го направи споредби, па ако ја споредиме Џенифер, на пример, Томас, можеме да видиме Томас е доста распространети низ историјата, додека Џенифер е една понова име. Ние можеме да правиме тој вид на работа. Како го прави ова барање работа? Во суштина, таа работи преку API. Со други зборови, ние имаме одредени параметри тука. Имаме параметри на она што ние всушност барате, кои се овие имиња, а потоа имаме неколку други својства, како оска Y и X оската. Можете да видите ние имаме неколку различни опции што се однесува до време резолуција за употреба и тој вид на работа. Имаме овие опции колку што е она што на податоци ние всушност сакаме од базата на податоци, и ние сакаме да се добие дека податоците назад во некои корисни начин. Вообичаено, ако ние се доведување во прашање на базата на податоци директно ќе сортирање на биде болка да се направи бидејќи се претпоставува дека овие податоци за бебе имиња живее во некоја база на податоци некаде, и тоа ќе биде навистина комплицирано да мора да го пребарува рачно и да одлучи токму она што податоци да се вратат. Со други зборови, ние само се грижат за Џенифер и Томас во овој случај, а ние само се грижат за на одредена оска и сите тој вид на работи. Како ние да се добие околу ова? Да копаат во овој API малку повеќе ќе ви покажам уште еден пример на оваа платформа кој се користи малку поинаков податоци. Овие податоци собата, наместо да биде бебе имиња, е всушност само целата печати објавување база на податоци на отворено библиотека, која е гигант извор на текстови објавени во текот на последните 100 или повеќе години. Идејата е имаме оваа compository на милиони и милиони на текст, која сега може да се бара за различни зборови и фрази внатре Еве еден пример дека варира малку поинаку од претходниот пример Јас ви покажа, што е имаме овие 3 пребарувања, војна, војна, и францускиот збор за војната, која е Гер. И ние сме во потрага во рок од 3 различни делови од вкупната база на податоци. Со други зборови, во оваа прва барањето ние сме само бараат во САД, во вториот само во Велика Британија, а третата само од дела објавени во Франција. Можеме да видиме некои интересни модели се појават. На пример, ние гледаме во право околу тука што- Упс, јас збркана оската малку, но може да се види правото во овој опсег тука околу Граѓанската војна има голем скок во американското издание но не е толку голем скок во другите две, и тоа е очигледно, бидејќи Граѓанската Војна во Америка се случува во тој момент. Можеме да видиме некои кул работи таму, но она што навистина се грижат за тоа како стигнавме овие податоци. Јас ќе ве однесе зад сцената во овој стан во малку. А уредни трик е ако си работат со сајт и вид на сакаат да знаат она што се случува зад сцената, можете да се отвори инвеститорот алатки. Одам да се користи алатки за развој Хром, и да се дојде до оние можете да направите контрола, смена, Ј, и дека ќе ве однесе на конзола го вклучите Javascript-. Постојат неколку јазичиња тука. Сите тие можат да бидат прилично корисни под различни околности, но јас се грижи за мрежата табот право сега, и јас всушност треба да се освежи да се добие таа работа. О, извинете. Таа сака да даде случаен пример. Океј, ние ќе го користите овој пример, наместо тогаш. Идејата е има овој API тука, и може да се види точно она што на API се враќа. Тоа е она што апликацијата е добивање назад од API ја испратил барање. Дозволете ми да зумирате малку, и ние во основа може да се види тоа е само серија на клучните вредност парови во JSON. Со други зборови, ние имаме оваа HashMap тука тоа е мапирање вредности. Со други зборови, тоа е мапирање години вредности. Во 1765 било збор што првично бараа се користи 90 пати од 1 милион, па ние сме добивање назад овој резултат. Тоа не е точно JSON бидејќи имаме оваа мала резултат насловот тука, но напомена дека целиот овој објект тука е само голема голема JSON дупка. Имаме низа тука кој содржи целата оваа елемент, и можете да видите дека целиот елемент завршува таму, а потоа имаме уште еден голем елемент што оди на целиот пат до крај, а тоа завршува тука. Ние имаме навистина голема низа со 2 објекти во него, и секоја од овие предмети е HashMap. Можете да видите во рамките на секоја од овие hashmaps имаме мапирање на овој индекс вредноста на 0 и вредност оваа вредност во друга HashMap, кој повторно е мапирање X оската вредности на Y оската вредности. Можете да видите JSON добива малку комплицирано, но во целост, тоа е всушност многу корисни, а тоа е многу лесно да пристапите во споредба со други форми на нотација. Што се однесува до она што ние всушност испраќање на податоци на API за да се добие, Одам да одат во задниот крај малку тука. Ова е голем вклучите Javascript-датотека која е обработка на сите на интеракции на веб стан, и така ние не се грижат за поголемиот дел од ова, но ние не се грижи за некои од нив. На пример, ние се грижиме за оваа buildQuery функција, и идејата на оваа функција е во основа тоа е во потрага околу страната, пронајдат она што корисникот сака да се пребарува, со други зборови, проверка на оние кутии, каде што сум влез на нивните услови за пребарување, проверка на различни Y и X оската вредности кои тие го избрале и сите тој вид на работа, и тоа ќе плукаат ова пребарување вредност, за што јас тогаш може да испрати исклучување на API. Ова изгледа комплицирано, и тоа е прилично комплицирано но она што јас ќе одам да направите во Всушност, јас сум веќе го прават тоа, кој е пра- е тоа што јас ќе одам да добиете конзола да се печати точно дека барањето вредност дека тоа е испраќање на исклучување на API. Тоа е всушност токму тука. За жал, тоа излези на многу работи. Но, тоа е она што ние се грижиме за, овој објект, токму тука. Ова е барањето објект. Со други зборови, ова е токму она што веб апликација е испраќање на API-то, и така ајде да погледнеме внатре малку, и можеме да видиме ние имаме неколку вредности тука. Гледаме дека ја имаат оваа брои тип, што е појава на милион зборови, кој е токму она што го избрале во Y оската овде. Тоа е каде што доаѓа од. Имаме база на податоци вредност, што значи дека има некои одредени база на податоци дека овие податоци се живее во, и ние сакаме да пристапите дека податоците специјално што е спротивно на бебе имиња на податоци, на пример. Тогаш имаме ова групи вредност, која е велејќи дека ние сакаме да пребарувате по година, за разлика од било која друга X оската вредност. Потоа имаме метод, кој некои API-јата ќе направи повеќе нешта. Со други зборови, овој API, исто така, можат да се вратат други видови на податоци, но во овој случај, ние сакаме тоа мапирање на X оската вредности на Y оската вредности. Тоа е она што го кажувам да се направи таму, и ние имаме ова пребарување граници низа, која содржи 2 вредности. Првиот е она што го гледаме тука, што е сите вредности содржани во рамките на таа прва мала кутија на врвот. Со други зборови, ние сакаме да се погледне за зборот битка, и ние сакаме да го филтрирате од Македонски текстови во американската литература. Имаме оваа земја, која е САД. Имаме јазик, кој е на англиски, па ние имаме сите овие различни делови кои се сите кажува API токму она што го сакате. Ние не знаеме што податоците што ги добиваме назад е уште, но ние знаеме дека податоците се случува да се земе одредена форма. Овој пример е вид на на комплицирани страна, а вие не мора да биде со користење на API овој комплекс, но ова е да ви го покаже опсег и моќ на она што API-јата може да направи. Со други зборови, со користење на релативно едноставен пребарување систем ние во основа имаат влез кутија со неколку други селектори во различни места. Дозволете ми да зумирате назад од тука. Имаме влез кутија со неколку различни метаподатоци селекции, и ние имаме Y оска и X оската селекции. Ние всушност не дека имаат многу области, и можеме да видиме многу лесно сме во можност да се пребарува некој вид на API и да добијат податоци назад и тогаш стави ја во оваа табела, кој потоа ќе го прикаже во корисен начин. Да се ​​погледне во друг пример тоа може да биде малку повеќе запознаени за вас момци ние ќе се свртиме кон Фејсбук. API Фејсбук се нарекува График Фејсбук, и во основа она што тоа значи е Фејсбук се гледа себеси како овој масивен база на податоци на многу различни делови кои сите имаат одредени односи едни со други. Со други зборови, јас сум корисник на Фејсбук, па имам профил, и јас исто така имаат одредени пријатели, и секој од нив има профил, и секој од моите пријатели има ѕид, кој има различни коментари за него, и секоја од овие коментари има сака и сите тој вид на работа. Има многу различни делови на Facebook. Тоа е многу комплексна API, и има тони можете да направите со неа, но тоа е всушност прилично едноставен за употреба. Одам да се започне со одење на graph.facebook.com / billyjanitsch, кој е мојот единствен сметка име, и името на вашето конто или ќе биде некој вид на зборот ако сте го избрале, или тоа само може да се низа на броеви. Она што го добиваме назад е прилично основни информации. Гледаме дека имам име, што е Били, последно име, кое е Janitsch. Има уникатен Фејсбук проект кој го имам. Можете да видите дека јас сум машко и дека имам јазик поставување на британско англиски. Со други зборови, ние сме сведоци многу основни информации тука. Тоа не е премногу, но тоа не ни даде идеја за она што е таму. Ние можеме да го прават истото на Дејвид Malan, на пример. Мислам дека неговото име е dmalan. Можеме да видиме Дејвид Malan има единствен број. Тој има име, презиме, средно име и презиме. Ние, исто така се види дека тој е машко и има неговиот јазик сет на американскиот англиски јазик. Со други зборови, ние сме сведоци прилично основни информации тука. Сега, она што се случува ако се обидеме да проверите нешто друго? Да речеме јас сум заинтересиран за она што Дејвид Malan има допадна на Фејсбук. Можам да направам / допаѓаат. Сега сме наиде на проблем. Имаме некој вид на грешка која се вели токен за пристап е потребно да се бара на овој ресурс. Но ако мислите дека за тоа, дека всушност има смисла, бидејќи тоа би било чудно ако можете да пристапите секој дел од базата на податоци на Фејсбук само од некој вид на едноставна API, нели? Со други зборови, се претпоставува дека вашите информации не може да се пристапи од страна на секој кој тоа го сака. Оваа грешка е токму она што тоа значи. Некои API-јата бара одредени дозволи, со цел да имаат пристап до своите податоци. Па дури и повеќе напредна API-јата, како Фејсбук еден, ќе бара одредени дозволи за да направите некои работи. Јас може да се види оваа основни информации за Дејвид Malan. Јас може да се види дека тој е машко и дека живее во САД, но јас навистина не може да се види нешто минато. Да се ​​добие околу ова за сега, Фејсбук има оваа прекрасна алатка која е графиконот API истражувач, и идејата за тоа е може да се вид сочинуваат дозволи за себе врз основа на вашата сопствена сметка а потоа ги видите работите што конкретно вашата сметка може да видите. На пример, ако го направам graph.facebook.com/billyjanitsch/likes- Whoops, претпоставувам дека треба да revalidate мојот знак тука. Во ред. Ако јас го правам тоа повторно, одлично, сега гледам дека сум добие овој објект назад кој вели дека сакам базен тестенини, кои се во категоријата Игри и Играчки. Ми се допаѓа моржови, кои се во категоријата на животните. Овие се моите вистински Фејсбук сака. Тие се вид на збунувачки. Но, можеме да видиме овие податоци се сите врати во JSON. Тоа е прилично читлива. Со други зборови, ние имаме ова мапирање на податоци на некој вид на низа, и секој елемент на оваа низа е HashMap која мапи името на како и категоријата на како. Секоја како има единствен број. Постојат сите видови на различни нешта на податоци што може да се добие, и ако сте заинтересирани за користење на Фејсбук API за CS50 финалниот проект или за нешто слично тоа е всушност сосема можно. Основа како ќе го добиете целиот проверка работа е Фејсбук користи систем наречен OAuth, или отворено автентикација, и јас не сакам да навлегувам во тоа сега, бидејќи OAuth или друг вид на автентикација има тенденција да се разликуваат многу помеѓу различни API-јата, па можев да поминуваат долго време случува во текот секој еден, но тие се всушност прилично очигледен. Ако на Google Фејсбук API е многу читлив. Има цела спецификации. На пример, ова е документација за Фејсбук API-то, и можете да видите јас сум на корисникот страница, за да можам да дознаете за различните видови на нештата кои се на располагање за да се добие колку што е податоци а исто така и различни дозволи што ми треба со цел да им пристапите. Како што видовме, ние не треба дозволи за да пристапите на името или пол, но надвор од тоа што е потребно дозволи за повеќето работи. Оваа страница, или подобро кажано, оваа веб страна, исто така, ќе ви кажам како да се добие знак да бидете во можност да се идентификувате. Повеќето автентикација системи користат некој вид на токен каде што ќе добиете оваа уникатна вредност, што е навистина долга и случаен стринг, и на тој начин тие можат да се дружат барање дека сте прави со вас. Со други зборови, тие знаат дека не правиш нешто сомнително со нивните податоци. Тие знаат точно она што го добивате. Тие исто така знаат дека имате дозвола да ја видите таа информација. Ако сте направиле стан Фејсбук и вашиот стан има одредени корисници, и оние корисници имаат дозволено дека стан за пристап до одредени делови од нивниот профил, тогаш што API клуч или знак дека тоа стан е со користење ќе бидете во можност да пристапите до податоците за оние корисници. Ова би можело да звучи комплицирано, но тоа не е премногу лошо, и ако сакате да го користите Фејсбук Јас високо ќе Ви препорачуваме да разгледа поигрува со нивните API. Тоа е многу кул, и може да се направи многу различни нешта со неа. Ако корисникот не ви дава овие дозволи можете дури и да се врати кон API и да каже сакам да всушност ја објавите на ѕидот на овој корисник, или сакам да му ги поставите слика, и тоа е причината зошто на вашиот вести извор можете понекогаш ќе добијат оние досадни работи велејќи дека вашиот пријател го гледал ова видео на некој вид на чуден сајт или нешто слично. Тоа е затоа што стан има добиено пристап да ја објавите на ѕидот на тоа лице. Идејата генерално, Фејсбук API е прилично комплицирано, но, исто така, навистина корисни. Дефинитивно вреди одјавувањето ако сте сеуште во потрага по финалниот проект. Друг пакет на API-јата дека ќе одам да одам повеќе е CS50 API-јата. Дозволете ми да зумирате тука. CS50, всушност, се стави заедно со цела серија на API-јата кои можете да ги користите за финалниот проект или само за нешто што сте одлуки. И тие се најчесто Харвард поврзани, и тие се разликуваат од менито HUDS, на пример, за овој Харвард Настани API, што ќе ви овозможи да пристапите до листата на различни настани што се случуваат во Харвард и тој вид на работа. И така ние може да кликнете на некој од овие и да добијат спецификации за него, кои ќе бидат во можност да се најде за секој API, и идејата е тоа ви овозможува да знаете, А, што конкретно да побара од API и како да го побараат тоа. Со други зборови, ако сакам сите настани кои се случуваат утре тогаш имам да очигледно го даде тој датум што сакам во одреден формат, и Б, тој ќе ми каже што точно се случува да им даде назад кон мене. Тоа ќе кажам јас одам да ви вратат овој објект JSON, или како што можете да видите, постојат различни формати. Вие исто така може да се врати на податоци како CSV, на пример. Но, знаете како точно дека податоците ќе изгледа кога ќе го добие назад па можете да очекувате за да направите некои работи со него. Ние можеме да дојдете долу и види, на пример, ако сакаме да се пребарува на API да се добие календар, тогаш можеме да ја користите оваа одредена URL и го даде одредени параметри кои ќе бидат на податоците што сакате точно. И, исто така, ако сакаме на податоци назад во одреден формат, тогаш можеме да го прашам за излез на податоци во CSV, и тоа е само уште еден параметар кој ние сме поминува кон API. Многу кул нешта да се направи таму. Јас дефинитивно би препорачуваме одјавувањето на CS50 API-јата. Одам да се погледне на овој Храна Харвард 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 финалниот проект може да изгледа нешто многу се допаѓа ова. API-јата се супер моќен за износот на напор што ги преземаат. Последното нешто јас ќе одам да одам повеќе е уште неколку API-јата во голема мерка. Јас нема да добие колку во нив колку што е она што го прават посебно, но јас ќе ви даде идеја за она што е таму. 2 навистина полезни, ако сте заинтересирани за анализа на податоци или визуелизација или нешто слично, се Freebase и Википедија. Википедија веројатно сите знаете, е бесплатен онлајн енциклопедија, а тоа всушност има API-то, па ако сакате, на пример, ги добиете сите од текстови и статии за октопод можете многу лесно да го направите тоа. Само велат еј, Википедија API, би сакал на податоци се врати како овој, и јас би го сакале во овој формат, а напис јас би сакал е октопод, и многу брзо ќе ти го врати таа информација. Тоа може да биде навистина корисно ако сакате да се направи некој вид на сајт тоа е подобро прегледувач за Википедија или нешто слично. Freebase е вид на слични, иако тоа е малку потешко колку што API. Freebase е како Википедија со тоа што е онлајн енциклопедија која содржи многу, многу различни податоци за сите видови на различни теми, но тоа е се чуваат во релациона база на податоци, која е малку различен од Википедија. Википедија има статии и статии поврзани со други артикли, но во најголем дел, ако сакате податоците за октопод, одите на октопод член, се дека податоците, и имаш еден куп на текст за октоподи, па тоа е одлично. Freebase работи во малку покомплициран начин во таа сè што е поврзано со еден на друг. Со други зборови, ако ние сме во потрага по октопод тогаш тоа има еден куп на категории поврзани со неа. На пример, тоа е животно, таа живее под вода, тоа има одреден температурата на телото. Не знам. И сите овие категории се линкови до други места каде што може да оди да ги гледам работите со истата категорија. Со други зборови, октопод податоци ќе содржи линк до податоци за сите животни, и дека ќе ми дозволи да се движите низ базата на податоци навистина брзо. Ова може да биде многу корисно ако правиш нешто како споредби. Со други зборови, со оглед на одредена работа, сакате да го видите што друго тоа е поврзано со и да видиме што друго не е поврзана со. Тој вид на работа. Тоа може да биде корисно во голем број на начини. Ако сте во потрага за повеќе од предизвик и да биде во можност да направи некои повеќе сложени работи Јас ќе ја разгледа преземање на ум на Freebase API. Но во голема мера, Википедија е многу едноставна место да одиме толку далеку како добивање информации. Друго место дека ќе се погледне е Last.fm, а јас сум всушност ќе отидете на сајтот во случај некои луѓе не се запознаени, но Last.fm е всушност музика вкусови и препораки веб-сајт. Можете да направите сметка. Можете да почнете да испратите музика од вашиот музички плеер на веб страната, и во основа ќе почне кои ви даваат музика препораки врз основа на она што го слушате. На пример, ако одите на вашиот профил-ова е мое- можете да видите дека имаат листа на неодамна слушав песни. Можете да ја видите вкупната омилени уметници, сите тој вид на работа, и повторно, постои голема API зад Last.fm,  и можете да го користите да се направи многу, многу навистина кул работи. На пример, јас ќе оди на страница на некој пријател кој ја има оваа Last.fm Алатки веб-сајт. Ова е всушност уште една платформа која е изградена на Last.fm API-то, и тоа го прави голем број на прилично интересни работи. Ако јас се логирате со моето корисничко име, на пример, Можам да го замолите да генерира таг облак, на пример, и она што се случува да направите е да ми даде назад слика на сите различни жанрови и тој вид на работа што ми се допаѓа да се слуша. Како се прави тоа? Многу основа тоа кажува на Last.fm API тука е овој корисник. Јас би сакал да знам на жанрот на секоја песна што некогаш сте слушале, и можете да го направите тоа со правење на прилично едноставна AJAX повик до Last.fm API. Ќе се вратам голема листа, а потоа очигледно некои други работи се врши да ја претвори во еден збор облак, но може да се види целокупната тоа е многу лесно да пристапите и многу лесен за употреба. Навистина убаво за голем број на нештата. Мислам дека тоа е за сите ќе кажам целина. Едно последно нешто јас ќе се спомене за интероперабилност во целина е дека можете понекогаш ќе работи во нешто што се нарекува стапка ограничување, и идејата за стапка ограничување е дека не сакаат да ја злоупотребат API-јата. Со други зборови, тоа е навистина убаво тоа што многу од овие веб-сајтови имаат API-јата дека можете да отидете и да го користите бесплатно. Сепак, ако сте прави милиони или милијарди барањата на ден, На пример, ако сте заглавени во бесконечна јамка што е бескрајно доведување во прашање некој вид на API и добивање назад на големи количини на податоци, очигледно тоа не е добро, така што голем број на API-јата направите е да ја имаат оваа стапка ограничување функција кој се вели дека само може да направи 1.000 барања дневно IP адреса или нешто слично. И ако правиш многу на тестирање и тој вид на работа, можете понекогаш ќе работи во тоа, и одеднаш ќе ти исклучи и да каже не, јас не сум ви даваат повеќе податоци. Што сакате да направите е да играат според правилата. Вие сакате да бидете сигурни дека ќе го прочитате API спецификации внимателно. Ако има одредени правила прикачени на него, како што само може да се направи Х пребарувања дневно или можете да пристапите дел од базата на податоци на одреден број на пати или нешто слично што сакате да бидете сигурни дека ќе се држи до тоа. Додека играте во рамките на тие правила најверојатно ќе има навистина убаво време со користење API-јата. Твојот комплетна готова брза е API-јата се, навистина, навистина корисни. Има еден API за речиси секој голем веб сервис таму. Доста било дел од Google Алатки Suite, Google Maps, Google Earth, Gmail, Google Calendar, сите оние нешта имаат API-јата. Можете да ги користите за да двете се добијат податоци од серверот и испрати податоци до серверот. Со други зборови, ако си сакал да се направи календар стан, што може да го ажурира Google Календар некој, таму е API за тоа. Ако сакате да направите нешто што нема да ти кажам каде локацијата на одреден адреса е можете да го користите Google Maps API за тоа. API-јата се неверојатно корисни, и тие се насекаде. Ако сте заинтересирани во некој вид на идеја, таму е веројатно поврзани со API, што можете да го користите да се добие многу на податоци многу брзо и многу едноставно. Ако сте се уште во потрага по проект или ако сакате само да се позанимавам со нешто воопшто, API-јата се дефинитивно вреди да се прави. Благодарам, и јас сум среќен да одговори на сите прашања кои вие момци можат да имаат. Добро, фала многу. [CS50.TV]