[Powered by Google Translate] [Seminar] [programmeerijatele Sissejuhatus APIs] [Billy Janitsch] [Harvardi Ülikool] [Tommy MacWilliam] [See on CS50.] [CS50.TV] Tere, kõigile, ma olen Billy, ja täna ma lähen rääkima rakendusliideste, või rakenduse programmeerimise liidesed, eriti seoses CS50 lõplik projektid ja sellised asjad. Üldiselt mis on API? Väga üldiselt, et see on omamoodi keskel mees, mis võimaldab 2 tk tarkvara, et üksteisega suhelda. See on omamoodi väga lai mõiste ja see ei ole oluline, mida me vaatame. Mida me tõesti tahame on mingi kasulik kesktee suhelda mingisugune andmebaas kusagil. Siin on skeem, ja põhimõtteliselt idee on see, et oleme taotlus, ja me tahame saada andmeid andmebaasi, kuid me ei taha päringu andmebaasi otse. Selle asemel me tahame minna läbi selline keskel mees, API. Idee, mis on numbrid 2 ja 3 graafiku peal on nii saab olema väga keeruline ja segane. Teisisõnu, kui API päringu andmebaasi, see on ilmselt kavatse olla kasutades SQL tabelid ja kõik seda sorti asju, ja me oleme õppinud natuke seda CS50, kuid üldiselt olete märganud, et see on natuke valu. Läheb väga keeruline ja segane, eriti kui sa üritad keerukad päringud ja sellised asjad. Mida me tõesti tahame on mingi kasulik ja lihtne viis saada, et andmed, ja see on idee taga numbrid 1 ja 4 edetabelisse. Teisisõnu, me tahame tõesti lihtne viis öelda API, mida saada meile ja tõesti lihtne viis saada, et andmed tagasi. On üks põhiline viis, et need andmed on tavaliselt saadetud ja vastuvõetud mis on JSON või JavaScript Object Notation. See võib varieeruda natuke nii palju kui kuidas saadate taotluse API. Teisisõnu, kui soovite mõned teatud andmed, kuidas sa ütled API saada, et andmed võivad erineda natuke. Tavaliselt kaasneb sellega tegemist mingi võrgustiku taotlusel. Teisisõnu tutvumise mingi link, et läheb ütle API täpselt, mida sa tahad, aga andmed on peaaegu alati tagasi saata, teisisõnu, numbriga 4 JSON. Mis on JSON täpselt? Nagu ma ütlesin, JavaScript Object Notation. See on põhimõtteliselt universaalne standard edastamise ja vastuvõtmise andmed. Idee on selles, et sul on need 3 liiki asju. Sul on massiivid, hashmaps ja primitiivid. Massiivid ja hashmaps olete tutvunud natuke sisse CS50, aga sa oled omamoodi saanud väga otseses mõttes millised need on. Teisisõnu, massiivid sa tead, et nad tippige seotud, nii et teil on ainult üks omamoodi tüüp, mis läheb kogu massiiv. JSON on palju leebem koos, et selline asi. Põhimõtteliselt idee on teil ehitada see objekt, mis võib koosneda mõni neist 3 asja ja võib olla koostatud mitu omadega ja need võivad olla pesastatud. Siin on omamoodi näide JSON, mis on need looksulgudega siin esindada oma HashMap, ja HashMap on põhimõtteliselt teisendamisprotsessi mingi võti et mingi väärtus. Näete siin, et meil on omadused võti, ja mis on kaardistada peale massiiv, mis on kogu selle asja. Me näeme veel ühte HashMap, mis on selle võtme isAwesome, mis kaardid primitiivne väärtus tõsi, teisisõnu, tõeväärtus. Primitiivid võib olla stringid. Nad võivad olla täisarvud. Nad võivad olla bools, midagi sellist. Ja näed sisuga massiivi omaduste punkte on 2 stringid see, ise samasugune ja imeline. Need on 2 omadusi JSON, ja me näeme, et JSON on fantastiline. Et vaadata, et veidi lähemalt ma lähen ehitada keerulisem näide JSON siin. Alustame massiiv, näiteks lihtsalt tühi massiiv. Aga see on omamoodi igav, et me ei kavatse täita seda natuke, ja nagu ma ütlesin, massiivid JSON on tüüp seotud, nii et me võiks ka stringi siin, mis on hi, ja see on juba teine ​​element, mis massiivi. Ja samuti me võiksime lisada hashmapping siin, mis läheb on vähe kaardistamisel. See saab olema teisendamisprotsessi nime string Billy. Meil on teisendamisprotsessi nime Billy, ja meil kaardistamine lemmik värv sinine. See on põhimõtteliselt hea näide JSON. See liik satub-Ups, vaja koma seal-kõik erinevad osad. Jällegi, see ei kirjuta kindlasti üldse, nii et sul võib olla mis tahes liiki sees midagi tahad, ja mõte on see enese sarnaseks. Teisisõnu, see siin on JSON objekti, nagu on kogu see asi, kui on lihtsalt selles, et sul võib olla primitiivne olema objekt, massiiv olla eseme või HashMap olema objekt. Kui saad mingi vaata, JSON on tõesti väga kasulik, et see on nii mitmekülgne. Sul võib olla võimalik andmeid, mida võib ette kujutada salvestatud JSON. See teeb ta tõesti kena keelt kasutada koos APIs sest päris palju tähendab, et ükskõik milliseid andmeid, mida soovite seal saab olema mingi võimalus see tagasi saada JSON. Mõned omadused, mis muudavad JSON eriti hea selline asi. Nagu näete, võrreldes palju asju, et olete töötanud ka CS50 see on suhteliselt väga lihtne lugeda ja ka väga lihtne kirjutada. Võite taane see välja, kui soovite, nagu ma tegin, et näiteks mis annab teile kena, ilus versioon, et sa näed tõesti hästi. Aga lisaks sellele on ka lihtne lugeda ja kirjutada arvuti. Teisisõnu, see on lihtne sõeluda ja lihtne kodeerida, mis tähendab, et see on päris kiire niipalju kui andmete lugemiseks on mures, ja JSON saab tekitada tõesti kiiresti. Samuti on väga lihtne juurdepääs erinevates osades JSON ja sellised asjad. See on tore, ja lisaks sellele, et see on ise samasugune, teisisõnu, et sul võib olla JSON jooksul JSON jooksul JSON on tõesti kena andmete salvestamiseks. Teine osa, mis on üldiselt väga kasulik koostööst APIs on jQuery. Sa oled õppinud natuke JavaScript, mis on kena viis manipuleerida HTML ja CSS jooksul veebilehel. Kuid see ei saa selline olla valu kood lihtsas JavaScript, suuresti sellepärast JavaScript on tõesti verbose keeles. Sa pead õppima palju süntaks, ja lihtsalt teha väga lihtsad asjad see võtab palju koodi, nii jQuery on raamatukogu JavaScript. Teisisõnu, see on JavaScript-fail, mida saab laadida ja siis kasuta jQuery ülesandeid teha teatud asju. Ja jQuery põhimõtteliselt muudab teie elu palju lihtsamaks. See lihtsustab mida võtaks sadu ridu JavaScript alla paar rida jQuery. See on eriti kasulik, kui te kasutate API-sest üldiselt kuidas teil tutvumise APIs on tehes AJAX taotlusi, ja ma usun, David on mainitud loengu, et AJAX taotlusi Üldiselt, kui sa üritad võrgu taotluse mingi server ja saada tagasi mingi info ja ajakohastamine leht silmapilkselt. Arvestades lihtsas JavaScript et võtaks hull numbrid read kinnitada kõik päised ja teha kõik, et omamoodi värk, jQuery on tõesti lihtne funktsioon nimega AJAX, ja kõik mida sa pead tegema AJAX on anda parameetreid, et soovite anda API asukoht API ja täiendavaid omamoodi võimalusi, mida soovite konfigureerida. See on tõesti väga kena ja väga kasulik selline asi. See on kõik, mida me peame hakkama saada oma käed määrdunud rakendusliideste. Ma lähen avab mõned näited ja uurida nende erinevaid omadusi ja miks on need kasulikud erinevaid asju. Esimene asi, mida ma tegelikult näitan teile on midagi, mida ma töötan minu teadus lab, mis on Ngram Viewer ja põhimõtteliselt idee Ngram Viewer on saate otsida mingi sõna või fraas ja vaata, kui sageli see ilmus teatud hulk teksti ajas. See näide on siin see andmekogum lapsi et on sündinud New Yorgis vahel 1920 ja 2000. Me ei otsi, näiteks nime Jennifer, ja me näeme, et enne 1960 see tõesti ei kasutatud kõik, et palju, ja siis kui me sattuda järgnevatel aastatel see on muutumas üha enam kasutatud. Saame ka teha võrdlusi, nii et kui me võrdleme Jennifer et näiteks Thomas, näeme Thomas on olnud üsna levinud läbi ajaloo arvestades, et Jennifer on uuem nimi. Me saame teha, et selline asi. Kuidas see rakendus toimib? Põhimõtteliselt, see toimib läbi API. Teisisõnu, meil on teatud parameetrid siin. Meil on parameetrid, mida me tegelikult otsivad, mis on nende nimed, ja siis on meil mõned muud omadused, nagu Y-telje ja x-telje suhtes. Näete meil mõned erinevad võimalused niipalju kui ajaline lahutus kasutada ja sellised asjad. Meil on neid võimalusi nii palju kui milliseid andmeid me tegelikult tahame andmebaasist, ja me tahame saada, et andmed tagasi mõned kasulikud viisil. Tavaliselt, kui me olime päringute andmebaas otse oleks omamoodi olla valu tegema sest arvatavasti see andmeid lapse nimed elab mõnes andmebaasis kuskil, ja see oleks tõesti keeruline on teha päringuid käsitsi ja otsustada täpselt, milliseid andmeid taastada. Teisisõnu, me ainult hoolid Jennifer ja Thomas sel juhul, ja me ainult hoolid teataval teljel ja kõik seda sorti asju. Kuidas me saame selle ümber? Et kaevama selle API veidi rohkem ma näitan sulle veel üks näide selle platvormi mis kasutab veidi teistsugust andmekogum. See andmekogum, selle asemel, et lapsele nime, on tegelikult lihtsalt kogu trükiste andmebaas Open Library, mis on hiiglaslik allikas avaldatud tekste kogu viimase 100 või nii aastat. Idee on meil see compository miljoneid ja miljoneid teksti, mida saame nüüd otsida erinevaid sõnu ja väljendeid sisse Siin on näide, mis varieerub veidi teisiti kui eelmises näites Ma näitasin teile, mis on meil neid 3 otsingupäringuid sõda, sõda, ja prantsuse sõna sõda, mis on guerre. Ja me otsime jooksul 3 erineva osa kogu andmebaasi. Teisisõnu, see esimene päring me ainult otsida USA, aastal teine ​​ainult Ühendkuningriigis ja kolmas ainult avaldatud tööde Prantsusmaa. Me näeme mõningaid huvitavaid mustreid tekkima. Näiteks näeme õige siinkandis mis- oih, ma messed up telje natuke, aga näete õigus selles vahemikus siin umbes kodusõda seal on suur ora ameerika väljaanne kuid mitte nii suur piigid teised kaks, ja see on ilmselt seetõttu, Ameerika kodusõda toimus sel hetkel. Me näeme mõned lahedad asjad seal, kuid mida me tegelikult hoolivad on, kuidas me saime selle info. Ma viin teid kulisside taga see app natuke. Kena trikk on see, kui te töötate saidil ja nagu tahaks teada mis toimub kulisside taga, saate avada arendaja tööriistu. Ma lähen kasutate Chrome'i arendaja tööriistad ja saada nendele saate teha kontrolli, nihe, J, ja mis viib teid JavaScripti konsool. On mõned kaardid siit. Nad võivad kõik olla päris kasulik mitmesugustes olukordades, kuid ma hoolin võrgu tab praegu, ja tegelikult mul värskendada saada, et töö. Oh, vabandust. See meeldib anda juhuslik näide. Okei, me kasutame seda näiteks selle asemel siis. Idee on seal on see API siin, ja te näete täpselt, mida API on tagasi. See on see, mida taotluse saada tagasi API saatnud seda taotlust. Lubage mul suumida natuke, ja me saame põhimõtteliselt näha, et see on lihtsalt rida põhiväärtus paari JSON. Teisisõnu, meil on see HashMap siin, mis on kaardistada väärtusi. Teisisõnu, see on kaardistada aastat väärtused. Aastal 1765 iganes sõna me esialgu otsitakse kasutatakse 90 korda välja 1 miljon, siis me saada tagasi seda tulemust. See pole just JSON kuna meil on see väike tulemus päise siin, aga teate, et kogu see objekt siin on lihtsalt väga suur JSON kämp. Meil on hulgaliselt siin, mis sisaldab kogu see element, ja te näete, et kogu element lõpeb seal, ja siis on meil veel üks suur element mis läheb täiesti alla lõppu ja mis lõpeb siin. Meil on tõesti suur massiiv 2 objekti selles, ja kõik need esemed on HashMap. Näete iga nende hashmaps meil kaardistamine Käesoleva indeksi väärtuseks 0 ja selle väärtuseks teise HashMap, mis omakorda on kaardistada X telje väärtused Y telje väärtused. Näete JSON muutub natuke keeruline, kuid üldiselt see on tegelikult väga kasulik, ja see on väga lihtne juurdepääs võrreldes teiste erinevate märke. Niipalju kui see, mida me tegelikult andmete saatmist API saada, Ma lähen minema tagasi end natuke siin. See on suur JavaScripti fail, mis töötleb kõiki koostoimeid veebirakendus, ja nii me ei hooli enamus sellest, kuid me ei hooli osa sellest. Näiteks me hoolime selles buildQuery funktsioon, ja idee see funktsioon on põhiliselt see vaatab ringi lehel figuring mida kasutaja soovib päringuid, teisisõnu, kontrollides need kastid, kuhu nad sisendkäibemaksu oma otsingu tingimusi, kontrollimiseks erinevad Y-ja X-telje väärtused, et nad on valitud ja kõik sellised asjad, ja see läheb sülitama selle päringu väärtus, mis ma saan siis ära saatma, et API. See näeb keeruline, ja see on päris keeruline aga mida ma teen, tegelikult, ma olen juba seda teed, mis on vana- on see, et ma lähen, et saada konsooli välja trükkida täpselt, et päring väärtus et ta on saatnud ära API. See on tegelikult siinsamas. Vabandust, see väljundid palju asju. Aga see on see, mida me hoolime, seda objekti siin. See on päringu objektiks. Teisisõnu, see on täpselt, mida veebirakenduse saates API ja seega vaatame sees natuke, ja me näeme, et meil on mõned väärtused siin. Me näeme meil on see arv tüüp, mis on sündmuste kohta miljon sõna, mis on täpselt see, mida me oleme otsustanud Y-teljel siin. See, kui et tuleb. Meil on andmebaasi väärtus, mis tähendab, et seal on mõned teatud andmebaas nende andmete elavad, ja me tahame pääseda, et konkreetsete andmete mitte lapse nimed andmed, näiteks. Siis on meil see rühmade väärtus, mis ütleb, et me tahame otsida aastas võrreldes muud X-telje väärtus. Siis on meil meetod, mida mõned APIs teen mitu asja. Teisisõnu, see API võimalik naasta ka muud liiki andmed, kuid sel juhul me tahame, et kaardistada X-telje väärtused Y telje väärtused. Just see räägib seda teha seal, ja meil see otsing piiranguid massiivi, mis sisaldab 2 väärtused. Esimene on see, mida me näeme siin, mis on kõik väärtused sisalduva et esimest väikest kasti ülaosas. Teisisõnu, me tahame otsima sõna lahing, ja me tahame filtreerida Inglise tekste jooksul ameerika kirjandust. Meil on see riik, mis on USA. Meil on keel, mis on inglise keeles, nii et meil on kõik need erinevad osad et kõik räägivad API täpselt, mida tahame. Me ei tea, mis andmed, et saame tagasi on veel, kuid me teame, et andmed ei kavatse võtta teatud vormi. See näide on omamoodi edasi keeruline pool, ja sa ei pea olema ilmtingimata kasutades API seda keerulist, kuid see on näidata, ulatus ja võimsus, mida API saab teha. Teisisõnu, kasutades suhteliselt lihtsa päringu süsteem me põhimõtteliselt on sisestuskasti mõne muu valijad erinevates kohtades. Lubage mul suumida tagasi siin. Meil on sisend kasti paar erinevat metaandmete valikud ja meil on y-teljega ja x-telje suhtes valikuid. Me tegelikult ei ole, et paljudes valdkondades, ja me näeme väga kergesti suudame päringu mingi API ja saada andmeid tagasi ja siis pane see seda tabelit, mis seejärel läheb näitab seda kasulikul viisil. Et vaadata järjekordne näide, et võiks natuke rohkem tuttav kutid me ei kavatse pöörduda Facebook. Facebook API nimetatakse Facebook Graph, ja põhimõtteliselt mida see tähendab, on Facebook näeb ennast selle tohutu andmebaas on palju erinevaid osi, et kõik on teatud suhteid omavahel. Teisisõnu, ma olen kasutaja Facebook, nii et ma pean profiili ja ma ka teatud sõbrad, ja igaühel neist on konto, ja iga mu sõbrad on sein, millel on erinevad märkused selle kohta, ja kõik need kommentaarid on meeldib ja kõik sellised asjad. Seal on palju erinevaid osi, et Facebook. See on äärmiselt keeruline API, ja seal tonni, mida saate teha seda, aga see on tegelikult üsna lihtne kasutada. Ma lähen alustada läbi minnes graph.facebook.com / billyjanitsch, mis on minu ainulaadne konto nimi ja konto nimi võib olla kas mingi sõna, kui olete valinud, või see võib lihtsalt olla numbrijada. Mida me saame tagasi on päris põhiteavet. Me näeme, et mul on eesnimi, mis on Billy, perekonnanimi, mis on Janitsch. Seal on ainulaadne Facebook ID-ga mis mul on. Te näete, et ma olen mees ja et ma saaksin oma keeleseaded Briti inglise keeles. Teisisõnu, me näeme väga põhiandmed siin. See ei ole liiga palju, kuid see ei anna meile aimu sellest, mis on seal. Me saame teha sama asja, et David Malan, näiteks. Ma arvan, et ta nimi on dmalan. Me näeme David Malan on unikaalne ID. Tal on nimi, eesnimi, keskmine nimi, perekonnanimi. Näeme ka, et ta on mees ja tema keel seatud inglise keeles. Teisisõnu, me näeme päris põhi infot siit. Nüüd, mis juhtub, kui me püüame kontrollida midagi muud? Oletame, et ma olen huvitatud sellest, mida David Malan on meeldinud Facebookis. Ma suudan / meeldib. Nüüd oleme sattunud probleem. Meil mingi viga, mis ütleb juurepääsutõend on vaja taotleda seda ressurssi. Aga kui sa mõtled seda, et tegelikult mõtet, sest see oleks imelik kui sa saaksid juurdepääsu iga osa Facebooki andmebaas just alates mingi lihtne API, eks? Teisisõnu, arvatavasti oma andmed ei saa siseneda igaüks, kes seda soovib. See viga on täpselt, mida see tähendab. Mõned APIs nõuda teatud õigused, et tutvuda nende andmetega. Ja isegi rohkem arenenud API, nagu Facebook üks, nõuab teatud õigused teha teatud asju. Ma näen seda põhilist teavet David Malan. Ma näen, et ta on mees ja et ta elab USAs, aga ma tõesti ei saa aru midagi mineviku. Et saada seda nüüd, Facebook on see tore tööriist mis on graafik API Explorer ja ideed, mis on saate sortida kohta moodustavad load ise põhineb oma konto ja siis vaadata asju, mis konkreetselt teie konto saab vaadata. Näiteks, kui ma graph.facebook.com/billyjanitsch/likes- Oih, ma arvan, et valideerida oma sümboolne siin. Okei. Kui ma seda teen jälle, tore, nüüd ma näen, et ma saaksin selle objekti tagasi mis ütleb, et mulle meeldib bassein nuudlid, mis on kategoorias Mängud ja mänguasjad. Mulle meeldib morsad, mis on kategooria loomsed. Need on minu tegelik Facebook meeldib. Nad on omamoodi piinlik. Aga me näeme neid andmeid kõikide tagastatud JSON. See on päris loetav. Teisisõnu, meil on see kaardistamise andmete mingi massiivi ja iga element selles massiivis on HashMap mis kaardid nimi näeb ja kategooria nagu. Iga nagu on unikaalne ID. Seal on igasuguseid erinevaid asju andmeid, et saame, ja kui olete huvitatud kasutades Facebook API CS50 lõplik projekt või midagi sellist, et see on tegelikult üsna sooritatav. Põhimõtteliselt kuidas sa saad umbes autentimise asi on Facebook kasutab süsteemi nimetatakse OAuth või Open Authentication, ja ma ei taha sattuda ta nüüd, sest OAuth või erinevat tüüpi autentimise kipub väga erinevad erinevate rakendusliideste, nii et ma võiks kulutada aega läheb üle igaüks, kuid nad on tegelikult üsna selgituseta. Kui sa Google Facebook API on väga loetav. Seal on kogu spec. Näiteks see dokumentatsioon Facebook API ja te näete ma olen Kasutaja leht, et ma saaks õppida kõike erinevaid asju et on olemas, et saada nii palju kui andmeid ja ka erinevad õigused, mida ma vajan, et neile ligi pääseda. Nagu nägime, ei pea me õigused juurdepääsuks nimi või sugu, kuid pärast seda me peame load kõige rohkem asju. Seda lehekülge või pigem sellel veebilehel on ka teile, kuidas saada märgiks oleks võimalik end autentida. Enamik autentimise süsteemide kasutamine mingi sümboolse kus sa saad seda ainulaadset väärtust, mis on tõesti pikk ja juhuslik jada, ja et kuidas nad suudavad siduda taotluse, et sa üritad teiega. Teisisõnu, nad teavad, et sa ei tee midagi kahtlast oma andmeid. Nad teavad täpselt, mida sa saada. Nad teavad, et teil on luba vaadata seda teavet. Kui oled teinud Facebook app ja oma app on teatud kasutajatele, ja need kasutajad on lubatud, et app juurdepääsu teatud osa oma profiilile siis mis iganes API võti või märgi, et rakendus kasutab saab juurdepääsu andmetele nende kasutajate. See võib tunduda keeruline, kuid see ei ole liiga halb, ja kui sa tahad kasutada Facebook Ma väga soovitada, et te kaaluda mängides oma API. See on väga lahe, ja sa saad teha palju erinevaid asju teha. Kui kasutaja annab teile need õigused saab isegi tagasi minna API ja öelda, et ma tahan tegelikult postitada selle kasutaja seina, või tahan ma lasta postitada foto ja sellepärast oma uudistevoo teil mõnikord need tüütud asjad öeldes su sõber on vaatasin seda videot mingi imelik sait või midagi sellist. See on sellepärast, et app on antud juurdepääs postitamiseks antud isiku seina. Idee üldiselt Facebook API on päris keeruline, vaid ka väga kasulik. Kindlasti tasub kontrollida, kas sa ikka otsivad lõplik projekt. Teine komplekt APIs et ma lähen üle on CS50 rakendusliideste. Lubage mul suumimiseks siin. CS50 on tegelikult kokku pandud terve rida APIs , mida saab kasutada lõpliku projekti või lihtsalt midagi, mida sa üritad. Ja nad on enamasti Harvardi seotud, ja need varieeruvad HUDS menüü Näiteks sellele Harvardi Üritused API, mis võimaldab teil juurdepääs nimekirja erinevate sündmuste, mis on kestnud Harvardi ja sellised asjad. Ja nii me saame klikkige mõni neist ja saada spec seda, mis teil oleks võimalik leida mistahes API, ja mõte on see annab teile teada, konkreetselt, mida nõuda API ja kuidas seda taotleda. Teisisõnu, kui ma tahan kõik sündmused, mis juhtub homme siis ma pean ilmselt annab see nimetatud kuupäevaks, et ma tahan teatud vormis, ja B, siis räägi mulle täpselt, mida ta on annan tagasi mulle. See öelda, et ma lähen tagasi sa seda JSON objekti, või nagu näete, on erinevaid vorme. Võite naasta andmed CSV, näiteks. Aga tead täpselt, kuidas see info läheb otsima, kui sa saad selle tagasi nii võite oodata teha teatud asju koos sellega. Me ei keri ja vaata, näiteks, kui me tahame päringu API saada kalendriaasta, siis saame kasutada selle konkreetse URL ja annab talle teatud parameetreid, mis saab olema andmed, et me tahame täpselt. Ja samuti, kui me tahame andmed tagasi teatud vormis, siis saame paluda väljastada andmeid CSV, ja see on lihtsalt üks parameeter, mida me möödaminnes API. Palju lahedaid asju teha seal. Tahaksin kindlasti soovitada kontrollimiseks läbi CS50 rakendusliideste. Ma lähen vaatan seda Harvardi Toidu API eelkõige natuke. Üks asi mis mulle tegelikult mõeldud on see Harvardi Noms veebilehel, mis kasutab CS50 Toidu API laadida HUDS menüü päev. Ja pikendamise kooli inimesed, HUDS on söögituba teenus Harvardi. Mis teil on see leht, mis sisaldab kõiki söögikordi päevas, seda me näeme lõunasöök. Meil on paar erinevat liiki. Meil on uba ja täistera jaam. Meil on pruun riis jaam. Me näeme einele meil on neid vähe pakke. Kui me kliki neid, siis saame toitumisalast teavet. Näete see on toitumisalane teave greip, et kui sa ei tea. Ja nii jälle, me ei kavatse piiluda kolp siin natuke ja vaata, mis seda täpselt teeme, et need andmed. Ja selgub, et tegelikult ei väga keeruline üldse. See fail paistab pisut räpane, kuid pidage meeles, et see on käitlemiseks kogu veebileht ja kui ma keri näeme seda muutust andmed funktsioon. Nüüd, et asi selge oleks, see on kirjutatud CoffeeScript, mis on keeles, siis ilmselt ei ole varem näinud. Aga see on päris loetav, nii et ma saadan selle kaudu, nagu oleks pseudokoodi. Muuda kuupäeva on funktsioon, mis vőtab selle kuupäeva väärtus, ja see on ka kavatse võtta esimene, mida me ei hooli nii palju. Aga kõige tähtsam on see, et see kuupäev, ja see kuupäev on päev, mida me tahame taotleda kõik pakke. Ja siis sa näed meil on natuke süntaks siin, mis on põhimõtteliselt parsing seda kuupäeva arvesse loetavas vormingus. Teisisõnu, API nõuab kuupäev teatud formaadis. Sa ei saa lihtsalt öelda 16. november 2012 AD. See ei tea, mida teha sellega. Ta tahab kuupäeval kindlas vormingus. Kõik me teeme siin annab see täpselt sellisel kujul, mis on aasta väärtus ja seejärel sidekriipsuga, kuu väärtus, teine ​​taandes ja kuupäeva väärtus. Ja me ka öelda tahame andmeid olla väljastatud JSON. Nüüd teeme seda AJAX taotlus, ja nagu ma varem mainisin, jQuery on see super kasulik AJAX funktsioon, mis kõik mida sa pead tegema, on määrata mõned parameetrid siia alla, ja ta annab sulle tagasi täpselt mida sa tahad. Me ütleme seda, et URL me tahame seda minna, on see CS50 Toidu API mida kuulsime spec. Me ütleme, et me tahame andmeid JSON ja et me anname ta neid andmeid, mida me oleme määratud siin. See on päev, mil me tahame pakke. Ja siis kõik me peame tegema, on määrata mingi edu funktsioon, mis on põhimõtteliselt mis juhtub, kui API tagastab selle andmed. Teisisõnu, me oleme pakendatud kuni kõik parameetrid, et me tahame, mis antud juhul on päev, et me tahame seda ja seda, et me tahame seda JSON, ja saatsime ta välja, et API, nii et nüüd API ütleb, okei, Siin on teie andmed, ma sain selle tagasi teile. Meil on edu funktsioon, mis tähendab, et kuna API edukalt naaseb mõned andmed, mida me teeme seda? Ja selgub, et kõik me teeme, on helistada selle värskenduse menüüfunktsioon kõikvõimaliku API on tagasi, nii saame otsida, et ja vaata, et kõik me teeme kasutab hunnik uusi süntaks siin uuendada HTML ja sisestada see uus info. Mis see võimaldab on meil neid nooli mõlemal pool, ja me saame klikkige, ja nüüd me vaatame andmeid järgmisel päeval ja uuesti järgmisel päeval, ja iga kord kui seda ajakohastatakse seda kuupäeva väärtus ja päringute API saada tagasi mõned andmed ja selle kasutuselevõtul kohas. Jällegi näete, super, super kasulik. See app võttis mind paar tundi häkkida koos, ja mul on natuke rohkem kogemusi, muidugi, kuid oma CS50 lõplik projekt otsida midagi väga meeldib see. APIs on super võimas summa jõupingutusi, et nad võtavad. Viimane asi, mida ma lähen üle on veel mõned APIs laialt. Ma ei saa nii palju võtta nii palju kui mida nad teevad konkreetselt, aga ma annan sulle idee, mis seal on. 2 tõesti kasulik ones, kui olete huvitatud andmete analüüsi või visualiseerimine või midagi sellist, on Freebase'ist ja Wikipedia. Wikipedia-arvatavasti te kõik teate, on tasuta online entsüklopeedia, ja see on tegelikult API, nii et kui soovite näiteks saada kõik tekstid ja artiklid kaheksajalg saab väga lihtsalt teha. Lihtsalt öelda, hei, Wikipedia API, ma tahaksin andmed tagastatakse see, ja ma tahaks seda sellisel kujul, ning artiklis Sooviksin on kaheksajalg, ja väga kiiresti ta annab sulle tagasi, et teavet. See võib olla väga kasulik, kui sa tahad teha mingi sait see on parem näitaja Wikipedia või midagi sellist. Freebase'ist on omamoodi sarnased, kuigi see on natuke raskem kuivõrd API. Freebase'ist on nagu Wikipedia, et see on online entsüklopeedia mis sisaldab palju ja palju erinevaid andmeid igasuguseid erinevaid teemasid, aga see on salvestatud relatsiooniline andmebaas, mis on veidi erinev Wikipedia. Wikipedia on oma esemed ja esemed, mis on seotud muude esemete, kuid enamasti, kui soovite andmeid kaheksajalad, te lähete kaheksajalg artikkel, saada, et andmed, ja sul on hunnik teksti umbes kaheksajalg, nii et on hea. Freebase'ist töötab veidi keerulisem viisil, et kõik on üksteisega seotud. Teisisõnu, kui me otsite kaheksajalg siis on hunnik kategooriad sellega seotud. Näiteks, see on loom, ta elab vee all see on teatud kehatemperatuuri. Ma ei tea. Ja kõik need kategooriad on lingid teistesse kohtadesse, kus võid minna näha asju, et samasse kategooriasse. Teisisõnu, kaheksajalg andmekogum peaks sisaldama linki andmekogumi kõikide loomade puhul, ja et ei lase mul liikuda andmebaasis tõesti kiiresti. See võib olla väga kasulik, kui sa teed midagi võrrelda. Teisisõnu, arvestades teatud asi, mida soovite näha mida veel see seotud ja vaata, mis muidu pole see seotud. Et selline asi. See võib olla kasulik mitmel moel. Kui otsite suuremat väljakutset ning olla võimeline tegema mõned keerulisemad asjad Ma kaaluks võttes pilk Freebase'ist API. Aga enamasti, Wikipedia on väga lihtne koht, kuhu minna nii kaugele kui saad teavet. Teine koht, mis ma vaatan on Last.fm, ja ma olen tegelikult läheb saidile minna juhuks, kui mõned inimesed ei tunne, kuid Last.fm on põhimõtteliselt muusika maitsele ja soovitused veebilehel. Võite teha konto. Te võite alustada uploading muusikat oma muusikapleier veebilehel, ja põhiliselt siis hakkab andes sulle muusikat soovitused selle põhjal, mida te kuulate. Näiteks, kui sa lähed oma profiili lehele, see on minu- näete teil on nimekirja hiljuti kuulasin lugusid. Näete üldine lemmik kunstnike, kõik sellised asjad, ja uuesti, seal on suur API taga Last.fm,  ja saate seda teha palju ja palju lahedaid asju. Näiteks, ma lähen sõbra leht kellel on see Last.fm Tööriistad veebilehel. See on tegelikult teine ​​platvorm, mis on ehitatud Last.fm API ja see arv päris huvitavaid asju. Kui ma sisse logida oma kasutaja nimi, näiteks Oskan küsida seda genereerida tag cloud, näiteks ja mida see tegema hakkab, on anda mulle tagasi pilt kõik erinevate žanrite ja et selline asi, et mulle meeldib kuulata. Kuidas ta teeb seda? Väga põhiliselt see ütleb, et Last.fm API siin on See kasutaja. Ma tahaks teada žanri iga laulu, et nad pole kunagi kuulanud, ja mida saate teha, et tehes üsna lihtne AJAX kõne Last.fm API. Sa saad tagasi suur nimekiri, ja siis ilmselt mõned muud asjad tehakse et muuta see sõna pilv, aga näete üldine see on väga lihtne kasutada ja väga lihtne kasutada. Tõesti kena mitmeid asju. Ma arvan, et umbes kõik, mida ma ütlen üldine. Üks viimane asi, mida ma teile rääkida APIs üldiselt on see, et teil mõnikord tekib midagi, mida nimetatakse kiirust piirav, ja idee kiirust piirav on te ei soovi kuritarvitada rakendusliideste. Teisisõnu, see on tõesti tore, et palju need veebilehed on APIs et võite minna ja kasutada tasuta. Siiski, kui sa üritad miljoneid või miljardeid päringuid päevas, Näiteks, kui sa oled ummikus lõputu silmuse, mis on lõpmatult päringute mingi API ja saada tagasi tohutu hulga andmeid, ilmselt see pole hea, mis siis palju APIs tegema, on see kiirust piirav funktsioon mis ütleb, et saate luua ainult 1000 vaatamist päevas ühe IP aadressi või midagi sellist. Ja kui sa teed palju katsetamist ja sellised asjad, teil mõnikord sattunud seda ja äkki ta sulgeb teid välja ja ütlevad ei, ma ei anna sulle rohkem andmeid. Mida sa tahad teha, on mängida reeglite järgi. Sa tahad teha kindel, et sa loed API spec hoolikalt. Kui see on teatud reeglid selle juurde, nagu saab teha ainult X päringut päevas või saate juurdepääsu ainult osa andmebaasi teatud arv kordi või midagi sellist tahad, veendumaks, et jääda seda. Niikaua kui sa mängid jooksul nende eeskirjade saad ilmselt väga tore kasutades rakendusliideste. Teie üldine Buffee on APIs on tõesti väga kasulik. Seal API peaaegu iga suur veebiteenus seal. Päris palju tahes osa Google'i Tööriistad Suite, Google Maps, Google Earth, Gmail, Google Calendar, kõik need asjad on rakendusliideste. Võite kasutada neid nii saada andmeid server ja saata andmeid serverisse. Teisisõnu, kui sa tahad teha kalender app, mida saab uuendada kellegi Google Calendar, seal on API selle eest. Kui sa tahad teha midagi, mis ei ütle teile, kus asukoht teatavaid aadress on saate kasutada Google Maps API selle eest. APIs on fantastiliselt kasulik, ja nad on kõikjal. Kui olete huvitatud mingi idee, seal on ilmselt seotud API, mida saab kasutada, et saada palju andmeid väga kiiresti ja väga lihtsalt. Kui sa ikka otsivad projekti või kui tahad lihtsalt mängida midagi üldiselt, API on kindlasti väärt. Aitäh, ja ma olen õnnelik, et vastata kõikidele küsimustele, et te võib-olla. Okei, suur tänu. [CS50.TV]