[Powered by Google Translate] [Seminar] [Inngangur forritari til API] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [Þetta er CS50.] [CS50.TV] Hæ, allir, ég er Billy, og í dag ætla ég að tala um API, eða umsókn forritun tengi, sérstaklega í tengslum við CS50 lokaverkefna og þessi tegund af hlutur. Almennt hvað er API? Í mjög stórum dráttum, er það tegund af mannanna sem leyfir 2 stykki hugbúnaður til að hafa samskipti við hvert annað. Það er eins konar mjög víðtæka skilgreiningu og er ekki það sem skiptir máli fyrir það sem við erum að horfa á. Hvað við viljum raunverulega er einhvers konar gagnlegur miðju gólfinu að hafa samband við einhverskonar gagnagrunni einhversstaðar. Hér er graf, og í rauninni er sú hugmynd að við erum umsókn, og við viljum fá gögn úr gagnagrunninum, en við viljum ekki að fyrirspurn í gagnagrunninn beint. Í stað þess að við viljum fara í gegnum þessa tegund af mannanna, API. Hugmyndin á bak við það er númer 2 og 3 á töfluna eru báðir að fara að vera mjög flókið og sóðalegur. Með öðrum orðum, þegar API er fyrirspurn í gagnagrunninn, það er líklega að fara að nota SQL töflur og öll þessi tegund af efni, og við höfum lært svolítið um það í CS50, en í heild, þú hefur tekið eftir að það er a hluti af a sársauki. Það verður mjög, mjög flókið og sóðalegur, sérstaklega þegar þú ert að gera flóknar fyrirspurnir og þessi tegund af hlutur. Hvað við viljum raunverulega er einhvers konar gagnlegur og einfaldan hátt að fá þessi gögn, og það er hugmyndin á bak við tölurnar 1 og 4 á myndinni. Með öðrum orðum, við viljum mjög einföld leið til að segja API hvað ég á að fá fyrir okkur og mjög einföld leið til að fá þessi gögn til baka. Það er ein helsta leiðin sem að gögn er venjulega sendur og móttekin, sem JSON eða JavaScript Object Ritháttur. Það getur verið svolítið eins langt og hvernig þú sendir beiðni til API. Með öðrum orðum, ef þú vilt sumir tiltekið magn af gögnum, hvernig þú segja API til að fá þessi gögn geta verið svolítið. Venjulega felur það að gera einhvers konar beiðni net. Með öðrum orðum, aðgangur einhverskonar slóð sem er að fara að segja API nákvæmlega það sem þú vilt, en þau gögn eru nánast alltaf sent til baka, í öðrum orðum, númer 4 í JSON. Hvað er JSON nákvæmlega? Eins og ég sagði, JavaScript Object Ritháttur. Það er í grundvallaratriðum the alhliða staðall fyrir að senda og taka á móti gögnum. Hugmyndin er að þú hefur þessar 3 flokka af hlutum. Þú ert fylki hashmaps og frumform. Fylki og hashmaps þú hefur horfði á smá í CS50, en þú hefur konar fengið mjög ströngum skilningi á því hvað þeir eru. Með öðrum orðum, með fylki sem þú veist að þeir eru að slá bundið, svo þú hefur aðeins eina tegund af tegund sem fer í gegnum allt fylkisins. JSON er mikið vægari með þessi tegund af hlutur. Grundvallaratriðum er hugmyndin að reisa þennan hlut, sem hægt er samsett af einhverjum af þessum 3 hlutum og geta verið samansett af mörgum sjálfur af þeim, og þeir geta verið hreiður. Hér er svona dæmi um JSON, sem er þessi hrokkið sviga hér tákna hashmap þinn, og hashmap er í grundvallaratriðum a kortlagning frá einhvers konar takka einhvers konar gildi. Þú munt sjá hér að við höfum eignir inni og það er kortlagning á fjölda, sem er þetta allt hlutur. Við sjáum annað þáttur í hashmap, sem er þetta lykillinn isAwesome, hvaða kort til frumstæðu gildi satt, í öðrum orðum, a Boolean. Frumform geta verið strengir. Þeir geta verið heiltölur. Þeir geta verið bools, eitthvað svoleiðis. Og þú sérð innihald þessa fylkingu sem eignir bendir til hefur 2 strengi í það, sjálf-svipað og dásamlegt. Þeir eru 2 eiginleika JSON, og við sjáum að JSON er ógnvekjandi. Til að líta á það svolítið betur ég ætla að reisa flóknara dæmi um JSON hér. Við skulum byrja með fjölda, til dæmis, bara tómt array. En það er svoleiðis leiðinlegt, þannig að við erum að fara að fylla það upp a hluti, og eins og ég sagði, eru fylki í JSON slegið bundið, svo við gætum líka haft band hér, sem er hi, og það er annar þáttur í því fylki. Og sömuleiðis, gætum við bætt hashmapping hér, sem er að fara að hafa nokkrar samsvaranir. Það er að fara að hafa kortlagning frá nafni í strenginn Billy. Við höfum kortlagning frá nafni til Billy, og við höfum kortlagningu uppáhalds litur til blár. Það er í rauninni gott dæmi um JSON. Það verður svona í-Úpps, þarf kommu þarna-öll mismunandi hlutum hennar. Aftur, það er ekki gerð bundinn á alla, svo þú getur haft hvers konar gerðir inni allt sem þú vilt, og hugmyndin er að það er sjálf-líkur. Með öðrum orðum, þetta hérna er JSON mótmæla, sem er þetta allt hlutur, sem er bara þetta, svo þú getur haft frumstæð vera hlut, fylki er hlut eða hashmap vera hlutur. Eins og þú getur konar séð, JSON er mjög, mjög gagnlegt í að það er svo fjölhæfur. Hægt er að hafa öll hugsanleg gögn sem geta eignast þú geymdir í JSON. Það gerir það mjög gott mál að nota með API því það þýðir nokkurn veginn að sama hvaða upplýsingar sem þú vilt Það er að fara að vera einhver leið til að fá það aftur í JSON. Nokkrar eignir sem gera JSON sérstaklega gott fyrir þessa tegund af hlutur. Eins og þú geta sjá, miðað við margt sem þú hefur verið að vinna með í CS50 það er tiltölulega mjög auðvelt að lesa og einnig mjög auðvelt að skrifa. Þú getur undirlið það út ef þú vilt, eins og ég var að gera í því dæmi, sem gefur þér gott, falleg útgáfa sem þú getur séð mjög vel. En þar að auki er það líka auðvelt að lesa og skrifa í tölvu. Með öðrum orðum, það er auðvelt að flokka og auðvelt að umrita, sem þýðir að það er mjög hratt eftir því sem lesa gögn er málið varðar, og JSON er hægt að mynda raunverulega fljótt. Það er líka mjög auðvelt að nálgast mismunandi hlutum JSON og þessi tegund af hlutur. Það er gott, og jafnframt þá staðreynd að það er sjálf-svipuð, í öðrum orðum, sú staðreynd að þú getur haft JSON innan JSON innan JSON er mjög gott til að geyma gögn. Annar hluti sem er almennt mjög vel í að vinna með API er jQuery. Þú hefur lært svolítið af JavaScript, sem er ágætur vegur að stjórna HTML og CSS innan vefsíðu. En það getur konar vera a sársauki til að kóða í látlaus JavaScript, aðallega vegna þess að JavaScript er mjög fjölorður tungumál. Þú þarft að læra mikið af setningafræði, og bara til að gera mjög einfalda hluti það tekur a einhver fjöldi af kóða, svo jQuery er bókasafn fyrir Javascript. Með öðrum orðum, það er JavaScript skrá sem hægt er að hlaða og þá nota jQuery aðgerðir til að gera ákveðna hluti. Og jQuery gerir í grundvallaratriðum líf þitt í heild mun auðveldara. Það einfaldar það myndi taka hundruð línur í JavaScript niður nokkrar línur í jQuery. Það er sérstaklega gagnlegt ef þú ert að nota API því almennt hvernig þú munt vera að API er með því að gera AJAX beiðnir, og ég tel að Davíð hafi minnst á fyrirlestri sem AJAX beiðnir eru almennt þegar þú ert að gera net beiðni einhvers konar miðlara og fá til baka einhvers konar gögnum og uppfæra síðuna samstundis. Með í látlaus JavaScript sem myndi taka brjálaður fjölda lína að sannreyna allar fyrirsagnir og gera öll þessi tegund af efni, jQuery er mjög einföld aðgerð sem kallast AJAX, og allt sem þú þarft að gera í AJAX er að gefa breytur sem þú vilt gefa API staðsetningu á API og öll önnur tegund af valkostum sem þú vilt stilla. Það er virkilega, virkilega gott og mjög gagnlegt fyrir þessa tegund af hlutur. Það er allt sem við þurfum að byrja hendur okkar óhrein í API. Ég ætla að koma upp nokkur dæmi og kanna mismunandi eiginleika þeirra og hvers vegna þeir eru gagnlegar fyrir mismunandi tegundir af hlutum. Það fyrsta sem ég ætla í raun sýna þér er eitthvað sem ég er að vinna á rannsóknarstofu rannsóknum mínum, sem er Ngram Viewer, og í rauninni er hugmyndin um Ngram Viewer er hægt að leita að einhvers konar orð eða setningu og sjá hversu oft það er birtist í ákveðnum setja af texta með tímanum. Þetta dæmi hér er þessi gögn sett af börnum sem fæddist í New York frá 1920 og 2000. Við getum leitað til dæmis að nafni Jennifer, og við sjáum að fyrirfram-1960 það var í raun ekki notað allt það mikið, og þá eins og við komum inn síðari ár er að verða notuð meira og meira. Við getum líka gert samanburð, þannig að ef við bera saman Jennifer, til dæmis Thomas, við sjáum Thomas hefur verið nokkuð ríkjandi í gegnum söguna, en Jennifer er nýrri nafn. Við getum gert svona hlutur. Hvernig virkar þetta forrit vinna? Í grundvallaratriðum, það virkar í gegnum API. Með öðrum orðum, við höfum ákveðnar breytur hér. Við höfum breytur sem við erum í raun að leita að, sem eru þessi nöfn, og þá höfum við nokkrar aðrar eignir, eins og Y ás og x-ásnum. Þú getur séð að við höfum nokkra mismunandi valkosti eins langt og tími upplausn á að nota og þessi tegund af hlutur. Við höfum þessi valkostur eins langt og hvaða gögn sem við viljum í raun og veru úr gagnagrunninum, og við viljum fá þessi gögn til baka í nokkrar gagnlegar hátt. Venjulega, ef við vorum að fyrirspurn í gagnagrunninn beint það myndi konar vera a sársauki til að gera því væntanlega þessi gögn um nöfn barnið býr í einhverjum gagnagrunni einhverstaðar, og það væri mjög flókið að þurfa að spyrja það handvirkt og ákveða nákvæmlega hvaða gögn til að fara aftur. Með öðrum orðum, annt aðeins um Jennifer og Thomas í þessu tilviki, og við umönnun aðeins um á ákveðnu ás og öll þessi tegund af efni. Hvernig fáum við í kringum þetta? Til að grafa í þessu API smá meira sem ég mun sýna þér annað dæmi um þennan vettvang sem notar aðeins öðruvísi gögnum. Þetta gögnum, í stað þess að vera barn nöfn, er í raun bara allt prenta birtingu gagnagrunn Open Library, sem er risastór uppspretta texta út um síðustu 100 eða svo árum. Hugmyndin er að við höfum þetta compository á milljónir og milljónir af texta, þar sem við getum nú leita fyrir mismunandi orð og setningar inn Hér er dæmi sem er mismunandi örlítið öðruvísi frá fyrra dæmi Ég sýndi þér, sem er að við höfum þessar 3 leitarfyrirspurnum, stríð, stríð, og franska orðið fyrir stríð, sem er guerre. Og við erum að leita í 3 mismunandi hlutum af heildarhlutafé gagnagrunninum. Með öðrum orðum, í þessari fyrstu fyrirspurn við erum aðeins að leita í Bandaríkjunum, í seinni aðeins í Bretlandi, og sú þriðja frá verkum út í Frakklandi. Við sjáum nokkrar áhugaverðar mynstur koma. Til dæmis sjáum við rétt um hér, sem- Úps, boðberi ég upp ásinn svolítið, en þú getur séð rétt á þessu svið hér um Civil War það er stór hækkun á bandaríska útgáfu en ekki svo stór hækkun á hinum tveimur, og það er augljóslega vegna þess að American Civil War var að gerast á þeim tímapunkti. Við sjáum nokkur flott efni þar, en það sem við raunverulega aðgát óður í er hvernig við fengum þessar upplýsingar. Ég tek þig á bak við tjöldin í þessu app í smá. A snyrtilegur bragð er ef þú ert að vinna með síðuna og langar að vita hvað er að gerast á bak við tjöldin, er hægt að opna upp verktaki verkfæri. Ég ætla að vera með þróunartól Króm, og til að komast til þeirra þú getur gert stjórn, vakt, J, og það tekur þig að JavaScript vélinni. Það eru nokkur flipa hér. Þeir geta allir verið mjög gagnlegt við mismunandi aðstæður, en mér þykir vænt um netið flipi núna, og ég hef í raun að endurnýja til að fá að vinna. Ó, fyrirgefðu. Það gaman að gefa af handahófi dæmi. Jæja, munum við nota þetta dæmi í staðinn þá. Hugmyndin er að það er þetta API hér, og þú getur séð nákvæmlega hvað API er að fara aftur. Þetta er það sem forritið er að fá til baka frá API hafa sendi þá beiðni. Leyfðu mér að stækka smá, og við getum í rauninni séð það er bara röð af helstu pör gildi í JSON. Með öðrum orðum, við höfum þetta hashmap hér sem er að kortleggja gildi. Með öðrum orðum, það er að kortleggja árum gildi. Árið 1765 hvað orð við leitað í upphafi að er notað 90 sinnum úr 1 milljón, þannig að við erum að fá til baka þessari niðurstöðu. Það er ekki nákvæmlega JSON þar sem við höfum þetta litla úrslit haus hér, en eftir því að þetta allt mótmæla hér er bara frábær stór JSON blob. Við höfum fjölda hér sem inniheldur þetta allt þáttur, og þú getur séð að allt þáttur endar þar, og þá höfum við annar stór þáttur sem fer alla leið niður til enda, og endar hér. Við höfum mjög stór array með 2 hluti í það, og hver af þeim hlutum er hashmap. Þú getur séð í hverju þessara hashmaps við höfum kortlagningu þessarar vísitölu gildi 0 og gildi þetta gildi til annars hashmap, sem aftur er að kortleggja X ás gildi á Y ás gildi. Þú getur séð JSON fær svolítið flókið, en í heild, það er reyndar mjög gagnlegur, og það er mjög auðvelt að komast í samanburði við aðrar mismunandi gerðir af merki. Eins og langt eins og það sem við erum í raun að senda gögnin til API til að fá, Ég ætla að fara í bak endir svolítið hér. Þetta er stór JavaScript skrá sem er meðhöndlun alla víxlverkanir vefur app, og svo við gerum sama um flest af þessu, en við gerum sama um eitthvað af því. Til dæmis, annt um þessa buildQuery virka, og hugmyndin um þessa aðgerð er í grundvallaratriðum það er að horfa í kring á síðunni, vangaveltur út hvað notandinn vill fyrirspurn, með öðrum orðum, stöðva þá reiti þar sem þeir hafa inntak leitarskilyrði sín, haka við mismunandi Y og x ás gildi sem þeir hafa valið og öll þessi tegund af hlutur, og það er að fara að spýta út þessa fyrirspurn gildi, sem ég get þá senda burt til the API. Þetta lítur flókið, og það er ansi flókið en það sem ég ætla að gera í raun, ég er nú þegar að gera þetta, sem er frábær- er að ég ætla að fá vélinni til að prenta út nákvæmlega þessi fyrirspurn gildi að það er að senda burt til the API. Það er í raun hérna. Því miður framleiðsla, það margt. En þetta er það sem við þykir vænt um, þetta mótmæla hérna. Þetta er fyrirspurn mótmæla. Með öðrum orðum, þetta er einmitt það sem vefur umsókn er að senda til API, og svo skulum líta inni svolítið, og við sjáum að við höfum nokkrar gildi hér. Við sjáum að við höfum þessa telja tegund, sem er atvik á milljón orð, sem er einmitt það sem við höfum valið á Y ás hérna. Það er þar sem er að koma frá. Við höfum gagnagrunn gildi, sem þýðir að það er einhver ákveðin gagnagrunn að þessi gögn er að búa í, og við viljum fá aðgang að gögnum sérstaklega öfugt við Baby Names gögn, til dæmis. Þá höfum við þessa hópa gildi, sem er að segja að við viljum leita eftir ár í stað þess að önnur X ás gildi. Þá erum við með aðferð, sem sumir API mun gera marga hluti. Með öðrum orðum, þetta API getur einnig aftur annars konar gögn, en í þessu tilviki, við viljum að kortlagningu X ás gildi á Y ás gildi. Það er það sem er að segja það að gera þar, og við höfum þessa leit mörk array sem inniheldur 2 gildi. Sú fyrsta er það sem við sjáum hér, sem er allt í gildi sem finna má að fyrsta litla kassa efst. Með öðrum orðum, við viljum að leita að orðinu bardaga, og við viljum að sía það með enskum texta innan American bókmenntum. Við höfum hér á landi, sem er USA. Við höfum tungumál, sem er ensku, svo að við höfum allar þessar mismunandi hlutum sem allir eru að segja API nákvæmlega það sem við viljum. Við vitum ekki hvað þau gögn sem við fáum til baka er enn, en við vitum að þau gögn sem er að fara að taka ákveðna mynd. Þetta dæmi er tegund af á flókinni hlið, og þú vilt ekki endilega vera að nota API þetta flókið, en þetta er að sýna þér á svið og kraft hvað API er hægt að gera. Með öðrum orðum, með tiltölulega einföldum fyrirspurn kerfi sem við höfum í grundvallaratriðum inntak kassi með nokkrum öðrum selectors í mismunandi stöðum. Leyfðu mér að minnka aftur hér. Við höfum inntak kassi með nokkrum mismunandi vali lýsigögn, og við höfum Y ás og x ás val. Við gerum í raun ekki hafa þessi mörgum sviðum, og við sjáum mjög auðveldlega við getum fyrirspurn einhvers konar API og fá gögn til baka og þá setja það inn í þetta graf, sem er þá að fara að sýna það í gagnleg leið. Til að líta á annað dæmi sem gæti verið hluti fleiri kunnugleg ykkur við erum að fara að snúa til Facebook. API Facebook heitir Facebook línurit, og í rauninni hvað það þýðir Facebook sér sig eins og þessari gríðarlegu gagnagrunni hellingur af mismunandi hlutum sem allir hafa ákveðnar tengsl við hvert annað. Með öðrum orðum, ég er notandi á Facebook, þannig að ég hef snið og ég hef líka ákveðna vini, og hver þeirra inniheldur snið, og hver af vinum mínum hefur vegg, sem hefur mismunandi athugasemdir á það, og hver af þeim athugasemdum hefur líkar og öll þessi tegund af hlutur. Það er hellingur af mismunandi hlutum til Facebook. Það er gríðarlega flókið API, og það er tonn sem þú getur gert við það, en það er í raun frekar einfalt í notkun. Ég ætla að byrja út með því að fara til graph.facebook.com / billyjanitsch, sem er einstakt reikningur nafn mitt, og reikningur nafn þitt mun annaðhvort vera einhvers konar orðinu ef þú hefur valið það, eða það gæti bara verið a band af tölum. Hvað fáum við til baka er laglegur undirstöðu upplýsingar. Við sjáum því að ég er með fyrsta nafn sem er Billy, síðasta nafn, sem er Janitsch. Það er einstakt Facebook ID sem ég hef. Þú getur séð að ég er karlmaður og ég hef tungumál stilling minn í British ensku. Með öðrum orðum, við erum að sjá mjög einfaldar upplýsingar hér. Það er ekki of mikið, en það er að gefa okkur hugmynd um hvað er þarna. Við getum gert það sama við David Malan, til dæmis. Ég held að nafnið hans er dmalan. Við sjáum David Malan hefur einstakt auðkenni. Hann er nafn, fornafn, millinafn, eftirnafn. Við sjáum líka að hann er karlkyns og hefur tungumál setja sína í US ensku. Með öðrum orðum, við erum að sjá ansi grunnupplýsingar hér. Nú, hvað gerist ef við reynum að kíkja á eitthvað annað? Við skulum segja að ég hef áhuga á því sem David Malan hefur viljað á Facebook. Ég get gert / vill. Nú erum við að koma sér í vandamál. Við höfum fengið einhverskonar villu sem segir að aðgangur skapi þarf að biðja þessa síðu. En ef þú hugsar um það, sem gerir í raun skynsamleg vegna þess að það væri undarlegt Ef þú gæti nálgast hvert einasta hluti af gagnagrunni Facebook bara frá einhvers konar einföld API, ekki satt? Með öðrum orðum, væntanlega þínar ekki hægt að nálgast með því að einhver sem vill það. Þessi villa er einmitt það sem það þýðir. Sumir API þurfa ákveðnar heimildir í því skyni að fá aðgang að gögnum sínum. Og jafnvel fleiri háþróaður API, eins og Facebook eitt, mun þurfa ákveðnar heimildir til að gera ákveðna hluti. Ég get séð þessa undirstöðu upplýsingar um David Malan. Ég sé að hann er karl og að hann býr í Bandaríkjunum, en ég get ekki alveg séð neitt yfir það. Til að komast í kringum þetta fyrir nú, Facebook hefur þetta ágætur tól sem er línurit API landkönnuður, og hugmyndin um að það er hægt að raða á gera upp heimildir fyrir þig byggt á eigin reikning og þá að skoða það sem sérstaklega reikningnum þínum getur skoðað. Til dæmis, ef ég graph.facebook.com/billyjanitsch/likes- Úpps, held ég að til að endurnýja skapi mínu hérna. Allt í lagi. Ef ég geri það aftur, frábært, nú sé ég að ég fá þennan hlut til baka sem segir að ég eins og laug núðlur, sem eru í flokki Leikir og leikföng. Mér finnst walruses, sem eru í flokki dýrum. Þetta eru raunveruleg Facebook iðkun. Þeir eru eins konar vandræðaleg. En við getum séð þetta gögn er allt aftur í JSON. Það er nokkuð læsileg. Með öðrum orðum, við höfum þessi kortlagning gagna til einhvers konar fylki, og hver þáttur þessarar fylki er hashmap sem kortum nafn sem eins og flokkur sem eins og. Hver eins hefur einstakt auðkenni. Það eru alls konar mismunandi hluti af gögnum sem við getum fengið, og ef þú ert áhuga á að nota Facebook API fyrir CS50 lokaverkefni eða eitthvað svoleiðis og það er í raun alveg viðráðanleg. Grundvallaratriðum hvernig þú færð um staðfesting hlutur er Facebook notar kerfi sem kallast OAuth eða Open staðfesting, og ég vil ekki fá inn í það núna því OAuth eða aðra tegund auðkenningar tilhneigingu til að mismunandi mikið á milli mismunandi API svo ég gæti eytt í langan tíma að fara yfir hvert og eitt, en þeir eru í raun nokkuð sjálf-skýringar. Ef þú Google Facebook API og það er mjög læsileg. There er a heild sérstakur. Til dæmis, þetta er heimildasöfnun fyrir Facebook API, og þú getur séð að ég er á User síðunni, þannig að ég get lært allt um mismunandi tegundir af hlutum sem eru í boði til að fá eins langt og gögn og einnig mismunandi heimildir sem ég þarf til að fá aðgang að þeim. Eins og við sáum, þurfum við ekki leyfi til að nafn eða kyn, En fyrir utan að við þurfum leyfi fyrir flestum hlutum. Þessi síða, eða öllu heldur, þessi vefsíða mun einnig segja þér hvernig á að fá ákveðinn að vera fær um að staðfesta sjálfur. Flest staðfesting kerfi nota einhverskonar skapi þar sem þú færð þetta einstaka gildi, sem er mjög löng og handahófi band, og hvernig þeir geta að tengja beiðni sem þú ert að gera með þér. Með öðrum orðum, þeir vita að þú ert ekki að gera neitt grunsamlegt við þeirra gögn. Þeir vita nákvæmlega hvað þú ert að fá. Þeir vita líka að þú hefur leyfi til að skoða þær upplýsingar. Ef þú hefur gert Facebook app og app hefur ákveðna notendur, og þessir notendur hafa leyft að app til að fá aðgang að ákveðnum hluta af uppsetningu þeirra, þá hvað API lykill eða tákn sem að app er að nota vilja vera fær til að fá aðgang að gögnum fyrir þá notendur. Þetta gæti hljómað flókið, en það er ekki of slæmt, og ef þú vilt nota Facebook Ég vildi mjög mæla með að þú íhuga að leika í kring með API þeirra. Það er mjög flott, og þú getur gert mikið af mismunandi hlutum með það. Ef notandinn gefur þér þessar heimildir sem þú getur jafnvel farið aftur til API og segja að ég vil raunverulega staða að vegg þessa notanda, eða ég vil hafa þá senda mynd, og þess vegna á fóðri fréttir þú munt stundum fá þessir pirrandi hluti segja vinur þinn hefur horft á þetta vídeó á einhvers konar undarlegt staður eða eitthvað svoleiðis. Það er vegna þess að app hefur verið veittur aðgangur að skrifa á vegg viðkomandi. Hugmyndin heild er Facebook API nokkuð flókið en líka mjög gagnlegt. Ákveðið þess virði að skoða ef þú ert enn að leita að lokaverkefni. Annar föruneyti af API sem ég ætla að fara yfir er CS50 API. Leyfðu mér að minnka hér. CS50 hefur í raun sett saman fjölmargar API sem þú getur notað fyrir lokaverkefni eða bara eitthvað sem þú ert að gera. Og þeir eru að mestu leyti Harvard skyldur, og þeir breytileg frá HUDS valmyndinni til dæmis, að þessu Harvard Events API, sem mun láta þig fá aðgang að lista yfir mismunandi tilvik sem eru að fara á Harvard og þessi tegund af hlutur. Og svo við getum smellt á einhverri af þessum og fá sérstakur fyrir það, sem þú munt vera fær til finna hvaða API, og hugmyndin er það er hægt að vita, A, sérstaklega hvað að biðja af API og hvernig á að biðja um það. Með öðrum orðum, ef ég vil alla atburði sem eru að gerast á morgun svo ég hef fengið að augljóslega að gefa það að dagsetningu sem ég vil í ákveðnu formi, og B, mun það segja mér nákvæmlega hvað það er að fara að gefa til baka til mín. Það mun segja að ég ætla að skila þér þessa JSON hlut, eða eins og þú geta sjá, það eru mismunandi snið. Þú getur einnig skila gögnum sem CSV, til dæmis. En þú veist nákvæmlega hvernig þessi gögn er að fara að horfa þegar þú færð hana til baka svo þú getur búist við að gera ákveðna hluti við hana. Við getum að fletta niður og sjá, til dæmis, ef við viljum að fyrirspurn API að fá dagatal, þá getum við notað þessa tilteknu vefslóð og gefa það ákveðnum þáttum sem eru að fara að vera gögn sem við viljum nákvæmlega. Og einnig, ef við viljum gögnin aftur í ákveðnu formi, þá getum við beðið hann að framleiðsla gögnin í CSV, og það er bara annar breytu sem við erum liggur við API. Fullt af flottum hlutum til að gera. Ég myndi örugglega mæla með að haka út CS50 API. Ég ætla að líta á þetta Harvard Food API sérstaklega fyrir a lítill hluti. Eitt sem ég hef í raun hannað er þetta Harvard Noms website, sem notar CS50 Food API að sækja HUDS matseðill fyrir daginn. Og fyrir eftirnafn skóla fólk, HUDS er borðstofa þjónustu á Harvard. Það sem þú færð er þetta síða sem inniheldur allar máltíðir á dag, þannig að við sjáum hádegismat. Við höfum nokkrar mismunandi flokka. Við höfum baun og gróft stöð. Við höfum hýðishrísgrjón stöð. Við sjáum fyrir brunch við höfum þessi nokkur atriði mat. Ef við smellur á þá, þá erum við að fá næringu upplýsingar. Þú sérð þetta er næring upplýsingar greipaldin, ef þú varst að spá. Og svo aftur, við erum að fara að jafningi í bak endir hér svolítið og sjá hvað nákvæmlega þetta er að gera til að fá þessi gögn. Og það kemur í ljós að í raun ekki að vera mjög flókið yfirleitt. Þessi skrá lítur svolítið sóðalegur, en hafðu í huga að þetta er meðhöndlun á allt vefsvæðið og ef ég skruna niður við sjá þessa breytingu gagna virka. Nú, bara til að vera skýr, þetta er skrifað í CoffeeScript, sem er tungumál sem þú hefur sennilega ekki séð áður. En það er ansi læsileg, svo ég ætla að ganga í gegnum það eins og það væri sauðakóðanum. Breyta degi er fall sem er að fara að taka á þessari dagsetningu gildi, og það er líka að fara að taka í fyrsta, sem við gerum sama um allt. En mikilvægast er að það hefur þessa dagsetningu, og það er sá dagur sem við viljum biðja alla fæðutegunda fyrir. Og svo þú sérð að við erum með smá setningafræði hér sem er í grundvallaratriðum að túlkun að dagsetningu í læsileg sniði. Með öðrum orðum, API krefst dagsetningu á ákveðnu formi. Þú getur ekki bara sagt 16 nóv 2012 AD. Það mun ekki vita hvað ég á að gera við það. Það vill dagsetningu á ákveðnu formi. Allt sem við erum að gera hér er að gefa það einmitt þessi snið, sem er ári gildi og þá bandstrik, mánuð gildi, annar bandstrik og dagsetningu gildi. Og við segjum líka að við viljum gagna til að framleiðsla í JSON. Nú erum við að gera þetta AJAX beiðni, og eins og ég nefndi áðan, jQuery hefur þetta frábær gagnlegt AJAX virka sem allt sem þú þarft að gera er að tilgreina nokkrar breytur niður hér, og það mun gefa þér aftur nákvæmlega hvað þú vilt. Við erum að segja það að URL við viljum það til að fara til er þetta CS50 Food API, sem við fengum frá sérstakur. Við segjum að við viljum gagna í JSON og við erum að fara að gefa það þessi gögn sem við höfum skilgreint upp hér. Þetta er dagurinn sem við viljum fæðutegunda fyrir. Og þá er allt sem við þurfum að gera skilgreina einhvers konar virka vel, sem er í rauninni það sem gerist þegar API skilar þessi gögn. Með öðrum orðum, höfum við pakkað upp allar breytur sem við viljum, sem í þessu tilfelli er dagurinn sem við viljum það og sú staðreynd að við viljum það í JSON, og við sendum það burt til the API, svo nú API er að segja, allt í lagi, hér er gögn, fékk ég það aftur fyrir þig. Við höfum velgengni virka, sem þýðir í ljósi þess að API tókst skilar einhverjum gögnum, hvað eigum við með það? Og það kemur í ljós að allt sem við gerum er að kalla þetta matseðill uppfærslu virka með hvað API er aftur, svo að við getum leitað til að og sjá um að allt sem við erum að gera er að nota fullt af nýjum setningafræði hér að uppfæra HTML og setja þetta nýja gögn. Hvað þetta gerir er að við höfum þessar örvar á hvorri hlið, og við getum smellt á, og nú erum við að horfa á gögnum fyrir næsta dag og svo aftur fyrir næsta dag, og í hvert skipti sem það er að uppfæra þann tíma gildi og samskipta við API, fá til baka nokkur gögn og setja það inn á síðuna. Aftur, getur þú séð, frábær, frábær gagnlegur. Þetta app tók mér nokkrar klukkustundir til reiðhestur saman, og ég hef aðeins meiri reynslu, augljóslega, en CS50 þinn lokaverkefnið getur að líta eitthvað mjög líkt þessu. API eru frábær öflugur fyrir the magn af áreynsla sem því fylgir. Það síðasta sem ég ætla að fara yfir er nokkrum fleiri API meginatriðum. Ég mun ekki fá eins langt inn í þá eins langt og það sem þeir gera sérstaklega, en ég skal gefa þér hugmynd um hvað er í boði. 2 mjög gagnlegur sjálfur, ef þú hefur áhuga á greiningu gagna eða visualization eða eitthvað svoleiðis, er Freebase og Wikipedia. Wikipedia-líklega þú veist-er allt ókeypis á netinu alfræðiritið, og það hefur í raun API, þannig að ef þú vilt, til dæmis, fá alla texta og greinar um kolkrabba þú getur mjög auðveldlega gert það. Bara að segja hey, Wikipedia API, mig langar gögn aftur sem þessu, og ég vil það í þessu formi, og í grein sem ég vil er kolkrabbi, og mjög fljótt mun gefa þér aftur að upplýsingar. Það getur verið mjög gagnlegt ef þú vilt að gera einhvers konar staður það er betra áhorfandi fyrir Wikipedia eða eitthvað svoleiðis. Freebase er tegund af svipað, þó það sé svolítið erfiðara eftir því sem API. Freebase er eins Wikipedia á að það er á netinu alfræðiritið sem inniheldur fullt og fullt af mismunandi upplýsingum um alls konar mismunandi efni, en það er geymt í Venslagagnagrunnur, sem er örlítið mismunandi frá Wikipedia. Wikipedia hefur greinar þess og greinar sem tengjast öðrum greinum, en að mestu leyti, ef þú vilt að gögn fyrir kolkrabba, þú að fara á smokkfisk grein fá þessi gögn, og þú hefur fullt af texta um kolkrabbar, svo það er frábært. Freebase vinnur í örlítið flóknari hátt í því allt tengist hvert öðru. Með öðrum orðum, ef við erum að leita að kolkrabba þá er það fullt af flokkum í tengslum við það. Til dæmis, það er dýr, lifir það neðansjávar, það hefur ákveðinn líkamshita. Ég veit ekki. Og öllum þessum flokkum eru tenglar á aðra staði þar sem þú getur farið að sjá hlutina með þeim sama flokki. Með öðrum orðum, Kolkrabbi gögnum myndi innihalda tengil á gögnum sem sett eru fyrir öll dýr, og sem myndi leyfa mér að fara í kring í gagnagrunninum mjög fljótt. Þetta getur verið mjög gagnlegt ef þú ert að gera eitthvað eins og samanburð. Með öðrum orðum, gefa ákveðinn hlutur, þú vilja til sjá hvað annað það er tengist og sjá hvað það er ekki tengt. Þessi tegund af hlutur. Það getur verið gagnlegt á margan hátt. Ef þú ert að leita að fleiri af a áskorun og til að vera fær til gera sumir flóknari hluti Ég myndi íhuga að taka a líta á Freebase API. En mestu, Wikipedia er mjög einfaldur staður til að fara eins langt og fá upplýsingar. Annar staður sem ég mun horfa á er Last.fm, og ég er reyndar að fara á síðuna ef fólk er ekki kunnugt, en Last.fm er í grundvallaratriðum a tónlist smekk og ráðleggingar website. Þú getur búið til aðgang. Þú getur byrjað að hlaða tónlist frá spilaranum tónlist á vef og í raun það mun byrja að gefa þér tónlist tillögur miðað við það sem þú hlustar á. Til dæmis, ef þú ferð á prófílinn þinn síðu-Þetta er minn- þú getur séð að þú ert með lista af nýlega hlustað á lögin. Þú getur séð heildar uppáhalds listamönnum, öll þessi tegund af hlutur, og aftur, það er stór API bak Last.fm,  og þú getur notað það til að gera fullt og fullt af virkilega flottum hlutum. Til dæmis, ég fer á síðu sem vinur sem hefur þessa Last.fm Verkfæri website. Þetta er reyndar annar vettvangur sem er byggt á Last.fm API, og það er fjölda laglegur áhugaverður hlutur. Ef ég skrá þig inn með notendanafni mínu, til dæmis, Ég get spurt hann til að búa til tag ský, til dæmis, og hvað það er að fara að gera er að gefa mér til baka mynd af allir mismunandi tegundir og þessi tegund af hlutur sem ég vil hlusta á. Hvernig er það að gera þetta? Mjög grundvallaratriðum það er að segja að Last.fm API hér er þessi notandi. Mig langar að vita tegund af hverju lagi sem þeir hafa aldrei hlustað á, og þú getur gert það með því að gera mjög einfalt AJAX kalla til Last.fm API. Þú munt fá til baka a stór listi, og þá augljóslega einhver önnur efni er verið að gera til að snúa það inn í a orð ský, en þú getur séð í heild það er mjög auðvelt að nálgast og mjög auðvelt að nota. Mjög gott fyrir nokkrum hlutum. Ég held að það er um allt sem ég segi í heild. Einn síðastur hlutur ég nefna um API almennt að þú munt stundum hlaupa inn í eitthvað sem heitir hlutfall takmarka, og hugmyndin um að takmarka hlutfall er að þú vilt ekki að misnota API. Með öðrum orðum, það er mjög gott að einhver af þessum vefsíðum hafa API að þú getur farið til og nota fyrir frjáls. Hins vegar, ef þú ert að gera milljónir eða milljarða beiðnir á dag, til dæmis, ef þú ert fastur í óendanlega lykkju sem er óendanlega fyrirspurn einhvers konar API og komast aftur a gríðarstór magn af gögnum, augljóslega er það ekki gott, þannig að það er mikið af API gera er að hafa þetta hlutfall takmarka möguleika sem segir að þú getur aðeins gert 1.000 beiðnir á dag á IP-tölu eða eitthvað svoleiðis. Og ef þú ert að gera a einhver fjöldi af próf og þessi tegund af hlutur, þú munt stundum hlaupa inn í það, og allt í einu það mun leggja þig burt og segja nei, ég er ekki að gefa þér einhverjar fleiri upplýsingar. Það sem þú vilt gera er að spila eftir reglunum. Þú vilt tryggja að þú lesið API sérstakur vandlega. Ef það hefur ákveðnar reglur sem fylgir henni, eins og þú getur bara gert X fyrirspurnir á dag eða þú getur aðeins aðgang að hluta af gagnagrunni er ákveðinn fjöldi af sinnum eða eitthvað sem þú vilt tryggja að þú standa við það. Svo lengi sem þú spilar í þeim reglum sem þú munt sennilega hafa a raunverulega ágætur tími með API. Heild takeaway er API eru virkilega, virkilega gagnlegur. Það er óákveðinn greinir í ensku API fyrir næstum allir stór vefur þjónustu þarna úti. Nánast allir hluti af the Google Tools Suite, Google Maps, Google Earth, GMail, Google Calendar, öllum þeim hlutum API. Þú getur notað þau bæði fá gögn frá þjóninum og senda gögn til the framreiðslumaður. Með öðrum orðum, ef þú vildir gera dagatal app sem getur uppfært Google Calendar einhvers, það er óákveðinn greinir í ensku API fyrir það. Ef þú vilt gera eitthvað sem er að fara að segja þér hvar staðsetning ákveðinni tölu er hægt að nota Google Maps API fyrir það. API er frábærlega vel, og þeir eru alls staðar. Ef þú hefur áhuga á einhvers konar hugmynd, það er líklega tengjast API sem þú getur notað til að fá mikið af gögnum mjög fljótt og mjög auðveldlega. Ef þú ert enn að leita að verkefni eða ef þú vilt bara að leika í kring með eitthvað almennt, eru API sannarlega þess virði að gera. Takk, og ég er fús til að svara öllum spurningum sem þú krakkar geta haft. Jæja, takk a einhver fjöldi. [CS50.TV]