[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]