[Powered by Google Translate] [Seminar] [un programator de Introducere în API-uri] [Billy Janitsch] [Universitatea Harvard] [Tommy MacWilliam] [Acest lucru este CS50.] [CS50.TV] Bună, toata lumea, eu sunt Billy, iar astăzi am de gând să fie vorba despre API-uri, sau interfețe de programare a aplicațiilor, în special în contextul CS50 proiectelor finale și chestii din astea. În general, ceea ce este un API? În termeni foarte generali, e un fel de om de mijloc care permite 2 bucati de software pentru a comunica unul cu altul. Asta e un fel de definiție foarte largă și nu este relevantă pentru că ceea ce căutăm la. Ceea ce ne dorim cu adevarat este un fel de cale de mijloc util pentru a comunica cu un fel de baze de date pe undeva. Iată o diagramă, și practic ideea este că suntem o cerere, și dorim pentru a obține date dintr-o bază de date, dar nu vrem pentru a interoga baza de date în mod direct. În schimb vrem să trecem prin acest tip de om de mijloc, API. Ideea din spatele care este numărul 2 și 3 de pe diagramă sunt atât de gând să fie foarte complicat și murdar. Cu alte cuvinte, atunci când API este interogarea bazei de date, este, probabil, va fi cu ajutorul tabelelor SQL și toate de acest gen de lucruri, și am învățat un pic despre asta în CS50, dar, în general, ați observat că este un pic de o durere. Aceasta devine foarte, foarte complicat și murdar, mai ales atunci când faci interogări complexe și că astfel de lucruri. Ceea ce ne dorim cu adevarat este un fel de mod util și simplu pentru a obține aceste date, și asta e ideea din spatele numerelor 1 și 4 de pe diagramă. Cu alte cuvinte, ne dorim un mod foarte simplu de a spune ceea ce API pentru a obține pentru noi și un mod foarte simplu de a obține aceste date înapoi. Există o singură cale principală că datele sunt, de obicei, trimise și primite, care este JSON, sau obiect Notații JavaScript. Asta poate varia un pic în ceea ce privește modul în care trimiteți cererea API. Cu alte cuvinte, daca vrei ceva anumită cantitate de date, cum să vă spun API pentru a obține că datele pot varia un pic. De obicei, este vorba de a face un fel de cerere de rețea. Cu alte cuvinte, accesul la un fel de URL-ul care va spune API exact ceea ce vrei, dar datele sunt aproape întotdeauna trimis înapoi, cu alte cuvinte, numărul 4 în JSON. Ce este mai exact JSON? Așa cum am spus, JavaScript Object Notation. E practic universal standard pentru transmiterea și primirea de date. Ideea este că aveți aceste 3 categorii de lucruri. Ai tablouri, hashmaps, si a primitivelor. Matrice și hashmaps te-am uitat la un pic în CS50, dar ai un fel de ajuns un sentiment foarte strictă a ceea ce sunt. Cu alte cuvinte, cu tablouri știi că ești genul legat, astfel încât să aveți doar un singur fel de tip care merge de-a lungul întregii matrice. JSON este mult mai indulgent cu chestii din astea. Practic ideea este să construiți acest obiect, care pot fi compuse din oricare dintre aceste 3 lucruri și poate fi compus din cele mai multe dintre ele, și ele pot fi imbricate. Aici e un fel de exemplu de JSON, care este aceste acolade aici reprezinta HashMap ta, și un HashMap este de fapt o mapare de la un fel de cheie la un fel de valoare. Veți vedea aici că avem cheia proprietăți, și că este de cartografiere pe o matrice, care este toată chestia asta. Vedem un alt element al HashMap, care este această isAwesome cheie, care hărțile la o valoare de primitiv adevărat, cu alte cuvinte, un boolean. Primitive pot fi siruri de caractere. Ele pot fi numere întregi. Ele pot fi bools, ceva de genul asta. Și veți vedea conținutul acestei matrice că punctele de proprietati pentru a dispune de 2 siruri de caractere în ea, auto-similar și minunat. Acestea sunt 2 proprietăți de JSON, și vedem că JSON este minunat. Pentru a uita-te la faptul că un pic mai atent am de gând să construiască un exemplu mai complex de JSON aici. Să începem cu o matrice, de exemplu, doar un array gol. Dar asta e un fel de plictisitor, așa că o să-l umple un pic, și așa cum am spus, tablouri in JSON sunt de tip legat, asa ca am putea avea, de asemenea, un șir de aici, care este hi, și că este un alt element de care matrice. Si de asemenea, am putea adauga un hashmapping aici, care se întâmplă să aibă o mapări câteva. O să aibă o mapare de la nume Billy șir. Avem o mapare de la numele lui Billy, și avem o cartografiere a culoarea preferata la albastru. Asta e practic un bun exemplu de JSON. Este un fel de devine în-Ups, au nevoie de o virgulă acolo-toate diferite părți ale acesteia. Din nou, nu e genul obligat la toate, astfel încât să puteți avea orice fel de tipuri de în interiorul tot ce vrei, iar ideea este că e auto-similara. Cu alte cuvinte, acest drept aici este un obiect JSON, cum este toată chestia asta, ca este doar asta, astfel încât să puteți avea un primitiv fi un obiect, o matrice să fie un obiect sau o HashMap fi un obiect. După cum puteți vedea un fel de, JSON este foarte, foarte util în măsura în care e atât de versatil. Puteți avea orice date posibile pe care le poate concepe stocate în JSON. Asta îl face un limbaj foarte frumos pentru a utiliza cu API-uri pentru că destul de mult înseamnă că indiferent de ceea ce datele pe care doriți acolo va fi o cale să-l înapoi în JSON. Câteva proprietăți care fac JSON deosebit de bun pentru acest fel de lucruri. După cum puteți vedea, în comparație cu o mulțime de lucruri pe care le-ați fost de lucru cu în CS50 e relativ foarte ușor de citit și, de asemenea, foarte usor de a scrie. Puteți să-l liniuță daca vrei, ca și cum am facut in acest exemplu, care vă oferă o versiune frumos, destul de pe care puteți vedea foarte bine. Dar mai mult decât atât, este, de asemenea, ușor de citit și să scrie pentru un calculator. Cu alte cuvinte, este ușor pentru a analiza și ușor pentru a codifica, ceea ce înseamnă că e destul de rapid în ceea ce privește citirea datelor în cauză, și JSON pot fi generate foarte repede. Este, de asemenea, foarte usor de a accesa diferite părți ale JSON și chestii din astea. Asta e frumos, și, în plus, faptul că e auto-similare, cu alte cuvinte, faptul că puteți avea JSON JSON în cadrul JSON este foarte frumos pentru stocarea de date. O altă parte faptul că, în general, este foarte util in lucrul cu API-uri este jQuery. Ati invatat un pic de JavaScript, care este un mod frumos de pentru a manipula HTML și CSS într-un site web. Dar se poate să fie un fel de o durere la codul JavaScript în câmpie, în mare parte, deoarece JavaScript este un limbaj foarte detaliat. Trebuie să înveți o mulțime de sintaxă, și doar pentru a face lucruri foarte simple este nevoie de o mulțime de cod, astfel încât jQuery este o bibliotecă pentru JavaScript. Cu alte cuvinte, e un fișier JavaScript pe care le puteți încărca și de a folosi apoi funcțiile jQuery pentru a face anumite lucruri. Și jQuery practic face viața un întreg lot mai ușor. Aceasta simplifică ce s-ar lua sute de linii în JavaScript jos câteva rânduri în jQuery. E deosebit de util dacă utilizați API-uri, deoarece, în general, Cum veți fi accesarea API-uri este de a face cereri AJAX, și cred că David a menționat că în prelegerea AJAX cereri sunt, în general, atunci când faci o solicitare în rețea la un fel de server și obținerea înapoi un fel de date și actualizarea unei pagini instantaneu. Întrucât în ​​JavaScript clar că ar avea numere nebun de linii pentru a valida toate anteturile și de a face tot de acest gen de lucruri, jQuery are o funcție foarte simplu numit AJAX, și tot ce trebuie să faceți în AJAX este da parametrii pe care doriți să le dea API, locația de API și orice fel suplimentar de opțiunile pe care doriți să le configurați. E foarte, foarte frumos și foarte util pentru acest tip de lucru. Asta e tot ce avem nevoie pentru a începe să obtinerea mâinile noastre murdare în API-uri. Am de gând să aduc câteva exemple și de a explora proprietățile lor diferite și de ce acestea sunt utile pentru diferite tipuri de lucruri. Primul lucru pe care am să-ți arăt de fapt tine este ceva ce eu sunt de lucru pe la laborator de cercetare mea, care este o Viewer Ngram, și practic ideea unei Viewer este Ngram puteți căuta un fel de cuvânt sau o expresie și a vedea cât de des se apărut într-un anumit set de text-a lungul timpului. Acest exemplu aici este acest set de date de copii care s-au născut în New York, între 1920 și 2000. Noi putem căuta, de exemplu, pentru Jennifer nume, și vedem că de pre-1960 este într-adevăr nu a fost folosit tot atât de mult, și apoi ca vom intra in ani mai târziu este folosit mai mult devenind și mai mult. Putem face, de asemenea, comparații, așa că, dacă vom compara Jennifer, de exemplu, Thomas, putem vedea Thomas a fost destul de raspandita de-a lungul istoriei, întrucât Jennifer este un nume mult mai recenta. Putem face astfel de lucruri. Cum face acest lucru aplicație? Practic, acesta funcționează prin intermediul unui API. Cu alte cuvinte, avem anumiți parametri aici. Avem parametrii a ceea ce suntem de fapt, în căutarea, care sunt aceste nume, și apoi avem câteva proprietăți de alte, cum ar fi axa Y și axa X. Puteti vedea, avem câteva opțiuni diferite în ceea ce privește Rezoluția de timp pentru a utiliza și chestii din astea. Avem aceste opțiuni în ceea ce privește ceea ce doresc de fapt datele pe care le de baza de date, și vrem să ajungem ca date înapoi într-un mod util. De obicei, în cazul în care am fost interogarea bazei de date în mod direct că ar fi cumva o durere de a face deoarece se presupune ca aceste date despre nume de copii locuiește într-o bază de date pe undeva, și ar fi foarte complicat să trebuiască să-l interoga manual și decide exact ce date să se întoarcă. Cu alte cuvinte, ne pasă doar despre Jennifer Thomas și, în acest caz, și ne pasă doar de pe o anumită axă și toate acest gen de lucruri. Cum ajungem în jurul valorii de asta? Pentru a săpa în acest API un pic mai mult să vă arăt un alt exemplu al acestei platforme care utilizează un set de date ușor diferită. Acest set de date, în loc de a fi nume de copii, este de fapt doar întregul imprima baza de date a Bibliotecii publicarea Open, care este o sursă uriașă de texte publicate de-a lungul ultimilor 100 sau cam asa ceva de ani. Ideea este că avem această compository de milioane și milioane de text, pe care le pot căuta acum pentru diferite cuvinte și expresii inch Iată un exemplu care variază un pic diferit de la exemplul anterior Ți-am arătat, care este avem aceste 3 interogări de căutare, de război, război, și cuvântul francez pentru război, care este Guerre. Și suntem căutați în termen de 3 secțiuni diferite ale bazei de date totală. Cu alte cuvinte, în acest interogare primul suntem doar căutarea în Statele Unite ale Americii, în cea de a doua numai in Marea Britanie, iar a treia numai din lucrările publicate în Franța. Vedem unele modele interesante emerge. De exemplu, putem vedea chiar în jurul valorii de aici, care- Hopa, am incurcat axa un pic, dar puteți vedea chiar în acest interval de aici în jurul valorii de Războiul Civil există un vârf mare în ediția americană dar nu un astfel de vârf mare în celelalte două, și asta pentru că, evident, Războiul Civil american a fost întâmplă în acel moment. Putem vedea unele chestii misto acolo, dar ceea ce ne pasă cu adevărat despre este modul în care ne-am aceste date. Te voi duce în spatele scenei, în această aplicație într-un pic. Un truc este dacă lucrați cu site-ul si tipul de vrei sa stii ceea ce se întâmplă în spatele scenei, puteți deschide instrumentele de dezvoltare. Am de gând să fie utilizând instrumente Chrome pentru dezvoltatori, precum și pentru a ajunge la cele poti sa faci un control, shift, J, și că duce la consola JavaScript. Există câteva file aici. Ele pot fi destul de util în situații diferite, dar îmi pasă de rețea fila chiar acum, și am de fapt, trebuie să reîmprospăta pentru a obține că de lucru. Oh, scuze. Ea îi place să dea un exemplu aleator. Bine, vom folosi acest exemplu, atunci în loc. Ideea este că e aici API, și puteți vedea exact ceea ce API-ul se întoarce. Aceasta este ceea ce cererea este obtinerea înapoi de la API au trimis această cerere. Lasă-mă să măriți un pic, și putem vedea practic e doar o serie de perechi de valori-cheie în JSON. Cu alte cuvinte, avem acest HashMap aici care e de cartografiere valori. Cu alte cuvinte, e de cartografiere ani la valorile. În 1765 orice cuvant pe care il inițial cautat este folosit de 90 de ori din 1 milioane de euro, așa că mă întorc la acest rezultat. Nu e exact JSON, deoarece avem acest rezultat antet mic aici, dar observați că acest obiect aici totul este doar o mare pată de cerneală de mare JSON. Avem o gamă aici care conține acest element întreg, și puteți vedea că elementul întreg se termină acolo, și apoi avem un alt element de mare care merge tot drumul până la sfârșit, și care se termină aici. Avem o gamă foarte mare, cu 2 obiecte în ea, și fiecare dintre aceste obiecte este un HashMap. Puteți vedea în fiecare din aceste hashmaps avem o mapare din această valoare indice la 0 și valoarea această valoare la un alt HashMap, care din nou este de cartografiere valorile pe axa X la valorile axa y. Puteți vedea JSON devine un pic complicat, dar, în general, de fapt e foarte util, și este foarte ușor de accesat, comparativ cu alte forme diferite de notație. În ceea ce privește ceea ce ne trimite, de fapt date API pentru a obține, Am de gând să merg în capătul din spate un pic aici. Aceasta este marea fișier JavaScript care este manipularea toate interacțiunile din aplicația web, și astfel nu ne pasă de cea mai mare de acest lucru, dar ne pasă de o parte din ea. De exemplu, ne pasă de această funcție buildQuery, și ideea acestei funcții este de fapt se uită în jurul valorii de pagină, imaginind ceea ce utilizatorul dorește să interoga, cu alte cuvinte, verificarea acele cutii în cazul în care le-am intrare termenii lor de căutare, verificarea Y diferit și valorile pe axa X pe care le-am ales și tot de acest gen de lucruri, și o să scuipe această valoare de interogare, care pot trimite apoi oprit la API. Acest lucru pare complicat, si este destul de complicat dar ceea ce am de gând să fac, de fapt, fac deja acest lucru, ceea ce este o mare- este că am de gând pentru a obține consola pentru a imprima exact ca valoarea de interogare că este trimit la API. Asta este de fapt chiar aici. Ne pare rău, să emită o mulțime de lucruri. Dar asta este ceea ce ne pasă, acest obiect chiar aici. Acesta este obiectul interogare. Cu alte cuvinte, aceasta este exact ceea ce aplicație web este de a trimite la API, și deci să privim în interiorul un pic, și vom vedea, avem câteva valori aici. Vedem avem acest tip de număr, care este apariții la un milion de cuvinte, care este exact ceea ce ne-am ales pe axa Y. aici. Asta e în cazul în care vine de la. Avem o bază de date valoare, ceea ce înseamnă că există unele baze de date sigur faptul că aceste date sunt locuiește în, și vrem să acceseze aceste date în mod specific spre deosebire de copii nume de date, de exemplu. Apoi vom avea această valoare grupuri, care se spune că ne-o dorim pentru a căuta după an, spre deosebire de orice altă axa X valoare. Apoi, avem o metodă, pe care unii API-urile vor face mai multe lucruri. Cu alte cuvinte, acest API pot reveni, de asemenea, alte tipuri de date, dar, în acest caz, vrem ca cartografiere a valorilor axei X la valorile axa y. Asta e ceea ce se spune că este de a face acolo, și avem această matrice căutare limite, care conține 2 valori. Prima dintre ele este ceea ce vedem aici, care este tot din valorile conținute în cutia aia mica primul la partea de sus. Cu alte cuvinte, dorim să caute pentru lupta cuvântul, și vrem să-l filtrați de textele în limba engleză în cadrul literaturii americane. Avem această țară, care este Statele Unite ale Americii. Avem o limbă, care este engleza, deci avem toate aceste diferite părți care spun toate API-ul exact ceea ce ne dorim. Noi nu știm ce datele pe care le primim din spate este încă, dar știm că datele sunt de gând să ia o anumită formă. Acest exemplu este un fel de pe partea complicat, și nu ar fi în mod necesar cu ajutorul unui API acestui complex, dar acest lucru este pentru a vă arăta și gama de putere de API-uri ce pot face. Cu alte cuvinte, folosind un sistem de interogare relativ simplu, vom avea practic o casetă de intrare cu un selectoare alte câteva în locuri diferite. Lasă-mă să zoom înapoi aici. Avem o casetă de intrare cu un selecții puține metadate diferite, și ne-am axa Y și selecțiile axa x. Noi nu avem de fapt mai multe domenii care, și putem vedea foarte usor suntem capabili de a interoga un fel de API și obțineți date înapoi și apoi a pus-o în această diagramă, care este apoi de gând să-l afișeze într-un mod util. Pentru a uita-te la un alt exemplu care ar putea fi un pic mai familiar pentru voi am de gând să apeleze la Facebook. API Facebook este numit Graph Facebook, și, practic ceea ce înseamnă că este pe Facebook se vede pe sine ca această bază de date masiv de o mulțime de piese diferite, care toate au anumite relații pentru fiecare alte. Cu alte cuvinte, eu sunt un utilizator pe Facebook, așa că am avea un profil, si am, de asemenea, prieteni anumite, și fiecare dintre ele are un profil, și fiecare dintre prietenii mei are un perete, care are diverse comentarii pe ea, și fiecare dintre aceste observații are place și toate chestiile astea. Există o mulțime de piese diferite pe Facebook. E un API extrem de complex, și nu există de tone care le puteți face cu ea, dar este de fapt destul de simplu de utilizat. Am de gând să încep prin a merge la graph.facebook.com / billyjanitsch, care este numele meu de cont unic, precum și numele contului dvs. va fi un fel de cuvânt, dacă l-ați ales, sau poate fi doar un șir de numere. Ceea ce ne întoarcem este destul de informații de bază. Vedem că am un nume în primul rând, care este Billy, un nume de familie, care este Janitsch. E un ID unic pe Facebook pe care am. Puteți vedea că eu sunt de sex masculin și că am setare limba mea la engleza britanică. Cu alte cuvinte, vedem informații foarte de bază aici. Nu e prea mult, dar aceasta nu ne da o idee de ce e acolo. Putem face același lucru cu David Malan, de exemplu. Cred că numele lui este dmalan. Ne vedem pe David Malan are un ID unic. El are un nume, prenume, nume de mijloc, numele de familie. Vedem, de asemenea, că el e bărbat și are setul său limbă engleză SUA. Cu alte cuvinte, ne vedem destul de informații de bază aici. Acum, ce se întâmplă dacă încercăm să verificați altceva? Să zicem că sunt interesați de ceea ce David Malan a plăcut pe Facebook. Eu pot face / place. Acum ne-am alerga într-o problemă. Avem un fel de eroare care spune că un indicativ de acces este necesar să solicite această resursă. Dar, dacă te gândești la asta, care face de fapt sens, deoarece ar fi ciudat dacă ai putea accesa fiecare parte a bazei de date Facebook doar de la un fel de API simplu, nu? Cu alte cuvinte, probabil informațiile dumneavoastră nu pot fi accesate de oricine vrea. Această eroare este exact ce înseamnă. Unii API-uri necesită permisiuni anumitor pentru a accesa datele lor. API-uri și chiar mai avansate, cum ar fi Facebook unul, va necesita anumite permisiuni de a face anumite lucruri. Eu pot vedea aceste informații de bază despre David Malan. Eu pot vedea că e bărbat și că el trăiește în Statele Unite, dar eu nu pot vedea nimic din trecut care. Pentru a obține în jurul valorii de acest lucru pentru acum, Facebook are acest instrument de frumos care este API Graficul explorator, și ideea de care este aveți posibilitatea să sortați de se completează până permisiunile pentru tine bazează pe cont propriu și apoi vizualizați lucruri pe care în mod specific contul dvs. poate vizualiza. De exemplu, dacă fac graph.facebook.com/billyjanitsch/likes- Ne pare rău, cred că trebuie să revalideze tokenul meu aici. Bine. Dacă aș face asta din nou, grozav, acum văd că am obține acest obiect înapoi care spune că-mi place fidea pool, care sunt în categoria Jocuri și Jucării. Îmi place morse, care se află în categoria animalelor. Acestea sunt reale meu pe Facebook place. Sunt un fel de jenant. Dar putem vedea aceste date este tot întors în JSON. E destul de ușor de citit. Cu alte cuvinte, avem această cartografiere de date la un fel de matrice, și fiecare element al acestei matrice este un HashMap care mapează numele unui fel ca și categoria de ca. Fiecare are ca un ID unic. Există tot felul de lucruri diferite de date pe care le putem obține, și dacă sunteți interesat în utilizarea API-ul Facebook pentru un proiect final CS50 sau pentru ceva de genul asta e de fapt destul de greu de realizat. Practic cum ai ajuns în jurul valorii de lucru este de autentificare pe Facebook folosește un sistem numit OAuth, sau autentificare Open, și nu vreau să intru în ea acum pentru ca OAuth sau alt tip de autentificare tinde să varieze foarte mult între diferite API-uri, așa că am putea petrece o lungă perioadă de timp să treacă de fiecare, dar de fapt ele sunt destul de auto-explicativ. Dacă aveți Google Facebook API-ul e foarte ușor de citit. E o întreagă spec.. De exemplu, aceasta este documentația pentru API Facebook, și puteți vedea că sunt pe pagina de utilizare, așa că am putea afla totul despre diferitele tipuri de lucruri care sunt disponibile pentru a obține date în măsura în care și, de asemenea permisiuni diferite care am nevoie, în scopul de a le accesa. După cum am văzut, nu avem nevoie de permisiuni pentru a accesa numele sau de gen, dar dincolo de asta avem nevoie de permisiuni pentru cele mai multe lucruri. Această pagină, sau, mai degrabă, acest site va spune, de asemenea, cum să obțineți un simbol pentru a putea să te autentifica. Cele mai multe sisteme de autentificare folosesc un fel de simbolică în cazul în care veți obține această valoare unică, care este un șir foarte lung și aleatorie, și că modul în care acestea se pot asocia cererea pe care îl faci cu tine. Cu alte cuvinte, ei știu că tu nu faci nimic suspect cu datele lor. Ei știu exact ce vei primi. Ei, de asemenea, știu că aveți permisiunea de a vizualiza această informație. Dacă ați făcut o aplicație Facebook și aplicația dvs. are anumitor utilizatori, și acelor utilizatori care au permis aplicației să acceseze anumite părți ale profilului lor, atunci orice API-cheie sau simbolică că aplicația utilizează va putea accesa datele pentru acele utilizatori. Acest lucru ar putea suna complicat, dar nu e prea rău, și, dacă doriți să utilizați Facebook Mi-ar recomanda foarte care le ia în considerare în jurul valorii de joc cu API-ul lor. E foarte misto, și puteți face o mulțime de lucruri diferite cu ea. Dacă utilizatorul vă acordă aceste permisiuni poti sa te duci chiar înapoi la API si spun vreau să posta de fapt, la perete acestui utilizator, sau vreau să le postați o fotografie, și de aceea pe hrana pentru animale de știri veți ajunge, uneori, aceste lucruri enervante spunând prietenul tau a vizionat acest film pe un fel de site-ul ciudat, sau ceva de genul asta. Asta e pentru că aplicația a fost acordat accesul la posta pe peretele acelei persoane. Ideea generală, API-ul Facebook este destul de complicată, dar, de asemenea, foarte util. Cu siguranta merită verificat dacă sunteți încă în căutarea pentru un proiect final. O altă suită de API-uri pe care am de gând să merg peste CS50 este API-uri. Lasă-mă să mări aici. CS50-a pus de fapt împreună o serie întreagă de API-uri pe care le puteți folosi pentru un proiect final sau doar pentru ceva care-l faci. Și ei sunt cea mai mare parte legate de Harvard, și ele variază de la meniul Huds, de exemplu, la această Harvard Evenimente API, care vă va permite să accesați o listă de diferite evenimente care au loc pe la Harvard și chestii din astea. Și astfel putem să faceți clic pe oricare dintre acestea și a obține un spec. pentru ea, care vei fi capabil de a găsi pentru orice API, iar ideea este aceasta vă permite să știi, A, exact ceea ce a solicita de la API și cum să-l solicite. Cu alte cuvinte, dacă vreau toate evenimentele care au loc mâine atunci am să dau, evident, la acea dată că vreau într-un anumit format, și B, se va spune-mi exact ce se va da înapoi la mine. Acesta va spun am de gând să se întoarcă tine acest obiect JSON, sau ca tine se poate vedea, există diferite formate. Puteți reveni, de asemenea, date în format CSV, de exemplu. Dar știți exact modul în care datele sunt de gând să caute atunci când luați înapoi astfel încât vă puteți aștepta să faci anumite lucruri cu ea. Ne putem derula în jos și a vedea, de exemplu, dacă vrem să interoga API pentru a obține un calendar, atunci putem folosi acest URL special, și dau anumitor parametri care urmează să fie date pe care ne-o dorim exact. Și de asemenea, dacă vrem datele înapoi într-un anumit format, atunci putem cere la ieșire a datelor dintr-un fișier CSV, și că e doar un alt parametru pe care suntem trecerea la API. O mulțime de lucruri interesante de făcut acolo. Mi-ar recomanda cu siguranta verificarea API-urile CS50. Am de gând să se uite la acest API Food Harvard, în special pentru un pic. Un lucru pe care l-am creat, de fapt este acest site Harvard nominalizari, care utilizează API alimentare CS50 pentru a prelua meniul Huds pentru a doua zi. Și pentru persoanele școlare extensie, Huds este serviciul de mese la Harvard. Ceea ce veți obține este de această pagină, care conține toate mesele de zi, deci vom vedea masa de prânz. Avem câteva categorii diferite. Avem fasole și stația de cereale integrale. Avem stația de orez brun. Putem vedea pentru brunch avem aceste câteva elemente alimentare. Dacă ne faceți clic pe ele, atunci vom obține informațiile nutriționale. Veți vedea acest lucru este informațiile nutriționale pentru grapefruit, în cazul în care ați fost întrebați. Și astfel, din nou, vom to-peer în capătul din spate aici, un pic si vezi ce exact acest lucru se face pentru a obține aceste date. Și se dovedește a nu fi de fapt foarte complexă, la toate. Acest fișier pare un pic murdar, dar ține cont de faptul că acest lucru este manipularea site-ul întreg, și dacă am derulați în jos vom vedea această funcție schimbare de date. Acum, doar pentru a fi clar, acest lucru este scris în CoffeeScript, care este o limbă pe care, probabil, nu s-au văzut înainte. Dar e destul de ușor de citit, așa că voi merge prin ea ca și cum ar fi fost pseudocod. Schimbare dată este o funcție care se va lua în această valoare dată, și este, de asemenea, de gând să ia într-o parte, care nu ne pasă la fel de mult. Dar cel mai important lucru este că are această dată, și că data este ziua în care ne-o dorim să solicite toate elementele alimentare pentru. Si apoi vezi avem un pic de sintaxă aici, care este parsarea practic de această dată într-un format ușor de citit. Cu alte cuvinte, API necesită dată într-o anumit format. Nu poți să spui doar 16 noiembrie 2012 AD. Ea nu va ști ce să facă cu asta. Ea vrea data într-un format specific. Tot ce facem aici este exact acesta oferă acest format, care este o valoare an și apoi o cratimă, o valoare luni, un alt cratimă și valoarea data. Și noi, de asemenea, spunem că doriți ca datele să fie ieșire în JSON. Acum facem aceasta cerere AJAX, și după cum am menționat mai devreme, jQuery are acest super-util funcție AJAX care tot ce trebuie să faceți este să precizeze câțiva parametri care se aici, și vă va da inapoi exact ceea ce vrei. Noi îl spune că URL-ul vrem să mergem la acest API este CS50 alimentară, pe care am primit de la spec.. Noi spunem că dorim datele din JSON și că vom da aceste date pe care le-am definit aici. Aceasta este ziua în care ne dorim ca produse alimentare pentru. Și apoi tot ce trebuie să faceți este să se definească un fel de funcții de succes, care este de fapt ceea ce se întâmplă atunci când API-ul returnează că datele. Cu alte cuvinte, ne-am ambalat la toți parametrii pe care ne-o dorim, care în acest caz este ziua în care ne-o dorim și faptul că l-am dorit în JSON, și l-am trimis la API, asa ca acum API spune, bine, aici se datele dvs., am luat-o înapoi pentru tine. Avem funcția de succes, ceea ce înseamnă având în vedere că API-ul returnează cu succes a unor date, ce facem cu ea? Și se pare că tot ce facem este numim acest meniu funcții de actualizare cu orice API a revenit, astfel încât să putem căuta pentru că și vezi că tot ce facem este folosind o grămadă de sintaxă noi aici pentru a actualiza HTML și introduceți aceste date noi. Ce este acest lucru permite o este ca avem aceste săgeți pe fiecare parte, și putem faceți clic pe, și acum ne uităm la datele pentru ziua următoare și din nou, pentru a doua zi, și de fiecare dată când este actualizarea ca valoarea dată și interogarea API, obținerea unor date înapoi și punerea sa în site-ul. Din nou, puteți vedea, super, super-util. Această aplicație mi-a luat câteva ore pentru a hack împreună, si am experienta un pic mai mult, evident, dar dvs. CS50 final al proiectului, poate arata ceva de foarte mult ca aceasta. API-uri sunt super puternic pentru cantitatea de efort pe care le iau. Ultimul lucru pe care am de gând să merg peste câteva API-uri este un sens mai larg. Eu nu va primi la fel de mult în ele în măsura în care ceea ce fac ei în mod specific, dar eu voi da o idee de ce e acolo. 2 cele cu adevarat utile, dacă sunteți interesat în analiza datelor sau vizualizarea sau ceva de genul asta, sunt Freebase și Wikipedia. Wikipedia-probabil știți, este tot o enciclopedie online gratuite, si are de fapt un API, deci, dacă doriți, de exemplu, obține toate textele și articole pentru caracatita puteți foarte ușor să fac asta. Doar spune hei, Wikipedia API, aș dori datele returnate ca acest lucru, și aș place în acest format, precum și articolul aș dori este caracatiță, și foarte repede vă va da înapoi aceste informații. Asta poate fi foarte utilă dacă doriți să faceți un fel de site-ului asta e un vizualizator Wikipedia pentru mai bine sau ceva de genul asta. Freebase este un fel de asemănătoare, deși e un pic mai greu în măsura în care API. Freebase este ca Wikipedia, în sensul că este o enciclopedie on-line care conține o mulțime și o mulțime de date diferite despre tot felul de subiecte diferite, dar este stocat într-o bază de date relațională, care este ușor diferită de la Wikipedia. Wikipedia are articole sale și articole legate de alte articole, dar pentru cea mai mare parte, în cazul în care doriți ca datele de caracatiță, te duci la articolul caracatiță, pentru a primi aceste date, și aveți o grămadă de text despre caracatițe, așa că e grozav. Freebase funcționează într-un mod puțin mai complicat, în care totul este legat de una de alta. Cu alte cuvinte, dacă suntem în căutarea caracatiță atunci aceasta are o grămadă de categorii asociate cu aceasta. De exemplu, e un animal, ea trăiește sub apă, are o anumita temperatura corpului. Nu știu. Și toate aceste categorii sunt link-uri către alte locuri unde poti sa te duci de a vedea lucrurile cu aceeasi categorie. Cu alte cuvinte, setul de date caracatita ar conține o legătură la datele stabilite pentru toate animalele, și care ar lasa-ma deplasa în baza de date foarte rapid. Acest lucru poate fi foarte util dacă faci ceva de genul comparații. Cu alte cuvinte, având în vedere un anumit lucru, tu vrei sa vezi Ce altceva este legat de și să vedem ce altceva nu este legat de. Chestii din astea. Acesta poate fi util într-o serie de moduri. Dacă sunteți în căutarea pentru mai mult de o provocare și pentru a fi capabil să facă unele lucruri mult mai complexe Mi-ar lua în considerare a lua o privire la API Freebase. Dar în mare parte, Wikipedia este un loc foarte simplu pentru a merge atât de departe ca și obținerea de informații. Un alt loc în care să mă uit la Last.fm este, de fapt, și eu o să merg la site-ul în cazul în care unele persoane nu sunt familiarizați, dar Last.fm este de fapt o muzică gusturile și site-ul web recomandări. Puteți face un cont. Puteți începe încărcarea muzica de pe music player la site-ul web, si practic va începe oferindu-vă recomandări muzicale bazează pe ceea ce ascultați. De exemplu, dacă te duci la profilul dvs. de pagina-aceasta este a mea, puteți vedea aveți o listă de recent ascultat piese. Puteți vedea artiștii favoriți, de gabarit toate că astfel de lucruri, și din nou, există un API mare în spatele Last.fm,  și îl puteți folosi pentru a face o mulțime de lucruri cu adevărat interesante. De exemplu, voi merge la pagina unui prieten care are acest site Last.fm Instrumente. Aceasta este de fapt o altă platformă care este construit pe API-ul Last.fm, și-l face o serie de lucruri destul de interesante. Dacă mă conectez cu numele meu de utilizator, de exemplu, Pot să-l întreb pentru a genera un tag cloud, de exemplu, și ce va face este să-mi dai înapoi o imagine de toate genurile diferite și care tip de lucru pe care îmi place să ascult. Cum se face acest lucru? Foarte practic este de a spune API Last.fm aici e acestui utilizator. Aș vrea să știu gen de fiecare cântec pe care le-am ascultat vreodată, și puteți face acest lucru prin a face o destul de simplu apel AJAX API pentru a Last.fm. Veți primi înapoi o listă mare, iar apoi, evident, alte lucruri se face să-l transforme într-un nor cuvânt, dar puteți vedea globală este foarte usor de accesat si foarte usor de utilizat. Foarte frumos pentru o serie de lucruri. Cred că e vorba de tot ce voi spune de ansamblu. Un ultim lucru voi menționa despre API-uri, în general, este că vei rula, uneori, in ceva numit rata de limitare, și ideea de rata de limitare este că nu vrei să abuzeze API-uri. Cu alte cuvinte, e foarte frumos că o mulțime de aceste site-uri au API-uri pe care le puteți merge la și de a folosi gratuit. Cu toate acestea, dacă sunteți de luare de milioane sau miliarde de cereri pe zi, de exemplu, dacă te-ai blocat într-o buclă infinită care este infinit interogarea un fel de API-lor și a obține înapoi o cantitate imensă de date, evident că nu e bine, deci ce o multime de API-uri s-au făcut este această rată limitare caracteristică care spune ca poti face doar 1000 de cereri pe zi pe adresa de IP sau ceva de genul asta. Și dacă faci o mulțime de testare și acest fel de lucru, vei rula, uneori, in care, dintr-o dată și vă va opri și spune nu, eu nu-ți dau de date orice mai mult. Ce vrei să faci este să joci după reguli. Doriți să vă asigurați că ați citit cu atenție spec. API. În cazul în care are anumite reguli atașat la acesta, ca poti face doar interogări X pe zi sau puteți accesa numai o parte a bazei de date un anumit număr de ori sau ceva de genul pe care doriți să asigurați-vă că rămânem la asta. Atâta timp cât joci în cadrul acestor reguli va avea, probabil, un moment foarte frumos folosind API-uri. Takeaway dvs. generală este API-uri sunt foarte, foarte util. Există un API pentru aproape orice serviciu web de mare acolo. Destul de mult orice parte a Instrumente Google Suite, Google Maps, Google Earth, Gmail, Google Calendar, toate aceste lucruri au API-uri. Aveți posibilitatea să le utilizați pentru a obține de la ambele date de server și trimite datele la server. Cu alte cuvinte, dacă ai vrut să facă o aplicatie calendar care poate actualiza Calendar cuiva Google, există un API pentru asta. Dacă vrei să faci ceva care o să vă spun în cazul în care locația o anumita adresa este puteți utiliza Google Maps API pentru asta. API-uri sunt fantastic de utile, și sunt peste tot. Dacă sunteți interesat într-un fel de idee, există, probabil, un API legate de care se poate utiliza pentru a obține o mulțime de date foarte rapid și foarte simplu. Dacă sunteți încă în căutarea pentru un proiect sau dacă vrei doar să joci în jurul valorii de cu ceva, în general, API-uri sunt cu siguranta merita faci. Mulțumesc, și eu sunt fericit pentru a răspunde la orice întrebări pe care voi le poate avea. Bine, mulțumesc mult. [CS50.TV]