[Powered by Google Translate] [Seminari] [Introducció d'un programador a les API]
[Billy Janitsch] [Harvard University] [Tommy MacWilliam]
[Aquesta és CS50.] [CS50.TV]
>> Hola a tots, sóc Billy, i avui vaig a parlar de les API,
o interfícies de programació d'aplicacions,
específicament en el context dels projectes finals CS50 i aquest tipus de coses.
En general el que és un API?
En termes molt generals, és una mena d'intermediari que permet 2 peces
de programari per comunicar-se entre si.
Això és una espècie de definició molt àmplia i no és tan rellevant per al que estem veient.
El que realment volem és una espècie de mitjana útil
per comunicar-se amb algun tipus de base de dades en algun lloc.
>> Aquí està un gràfic, i, bàsicament, és la idea que
Som una aplicació, i volem obtenir dades d'una base de dades,
però no volem per consultar la base de dades directament.
En el seu lloc, volen passar per aquest tipus d'intermediari, l'API.
La idea darrere d'això és els números 2 i 3 de la taula
són alhora serà molt complicat i desordenat.
En altres paraules, quan l'API es consulta la base de dades,
probablement estarà usant taules SQL i tot aquest tipus de coses,
i hem après una mica sobre això en CS50, però en general,
t'has adonat que és una mica de dolor.
Es posa molt, molt complicat i confús, especialment quan vostè està fent
consultes complexes i aquest tipus de coses.
>> El que realment volem és una espècie de forma útil i senzilla
per obtenir aquestes dades, i aquesta és la idea darrere dels números 1 i 4 de la taula.
En altres paraules, volem una manera molt senzilla de dir-li a l'API de què aconseguir per a nosaltres
i una forma molt senzilla d'obtenir aquestes dades.
Hi ha un camí principal que les dades que s'envien i es reben en general,
que és JSON o JavaScript Object Notation.
Això pot variar una mica pel que fa a la forma d'enviar la sol · licitud a l'API.
En altres paraules, si vols alguna cosa de certa quantitat de dades,
com dir-li l'API per obtenir aquestes dades pot variar una mica.
En general, implica la realització d'algun tipus de sol · licitud de xarxa.
En altres paraules, l'accés a algun tipus d'URL que dirà l'API
exactament el que vol, però les dades són gairebé sempre s'envien de tornada,
en altres paraules, el número 4 a JSON.
>> Què és JSON exactament?
Com he dit, JavaScript Object Notation.
És bàsicament l'estàndard universal per a la transmissió i recepció de dades.
La idea és que vostè té aquestes tres categories de coses.
Vostè té arrays, HashMaps, i primitives.
Matrius i HashMaps t'he mirat una mica en CS50,
però has aconseguit una espècie de sentit molt estricte del que són.
En altres paraules, amb arranjaments que saben que estan escrigui enquadernat,
de manera que només tenen una classe de tipus que va al llarg de tota la matriu.
JSON és molt més indulgent amb aquest tipus de coses.
Bàsicament, la idea és que la construcció d'aquest objecte,
que pot estar compost de qualsevol d'aquestes 3 coses
i pot estar compost pels múltiples d'ells, i poden estar niats.
>> Aquí hi ha una mena d'exemple de JSON,
que són aquestes claus aquí representen el HashMap,
i un HashMap és bàsicament una assignació d'algun tipus de clau
a algun tipus de valor.
Veuràs que aquí tenim la clau de propietats,
i això és mapejar en una matriu, que és tot això.
Veiem altre element del HashMap, que és aquest isAwesome clau,
que s'assigna a un valor simple veritat, és a dir, un booleà.
Les primitives poden ser cadenes. Ells poden ser nombres enters.
Poden ser Bools, res d'això.
I veure el contingut d'aquesta matriu que apunta propietats té 2 cadenes al mateix,
auto-similar i meravellós.
Aquestes són dues propietats de JSON, i veiem que JSON és impressionant.
Per veure que una mica més de prop que vaig a construir
un exemple més complex de JSON aquí.
>> Anem a començar amb una matriu, per exemple, només una matriu buida.
Però això és una espècie de avorrit, així que anem a omplir una mica,
i com he dit, les matrius en JSON s'escriu unit,
el que també podria tenir una cadena d'aquí, que és hi,
i aquest és un altre element d'aquesta matriu.
I de la mateixa manera, podríem afegir una hashmapping aquí, que tindrà unes poques assignacions.
Tindrà una assignació de nom a la cadena de Billy.
Comptem amb una assignació de nom a Billy, i tenim un mapatge de
color favorit el blau.
Això és, bàsicament, un bon exemple de JSON.
En certa manera s'aconsegueix en-crits, necessiten una coma allà, totes les diferents parts d'aquest.
Un cop més, no està obligat a escriure tot el que pot tenir qualsevol classe de tipus
dins del que vulguis, i la idea és que és auto-similar.
En altres paraules, això d'aquí és un objecte JSON, com és tota aquesta cosa,
com és això, el que pot tenir un físic un objecte,
una matriu ser un objecte o un HashMap ser un objecte.
>> Com es pot veure de classe, JSON és molt, molt útil, ja que és molt versàtil.
Vostè pot tenir totes les dades possibles que es poden concebre emmagatzemats en JSON.
Això fa que sigui un llenguatge realment agradable d'usar amb les API
perquè més o menys vol dir que no importa el que les dades que voleu
que hi haurà alguna manera de posar-lo de nou en JSON.
A poques propietats que fan JSON especialment bo per a aquest tipus de coses.
Com es pot veure, en comparació amb un munt de coses que vostè ha estat treballant en CS50
és relativament molt fàcil de llegir i també molt fàcil d'escriure.
Pot guió si ho desitja, com si estigués fent en aquest exemple,
que li dóna una bona versió, bastant que es pot veure molt bé.
Però, d'altra banda, també és fàcil de llegir i escriure per a un ordinador.
En altres paraules, és fàcil d'analitzar i fàcil de codificar,
el que significa que és bastant ràpid pel que fa a la lectura de les dades es refereix,
i JSON es pot generar molt ràpidament.
>> També és molt fàcil d'accedir a les diferents parts de JSON i aquest tipus de coses.
Això està molt bé, ia més, el fet que és auto-similar
en altres paraules, el fet que es pot tenir dins de JSON JSON JSON dins
és molt agradable per a l'emmagatzematge de dades.
Una altra part que generalment és molt útil en el treball amb les API és jQuery.
Vostè ha après una mica de JavaScript, que és una bona manera de
per manipular HTML i CSS dins d'un lloc web.
Però pot classe de ser un mal de codi en JavaScript sense format,
en gran part perquè Javascript és un llenguatge molt detallat.
Vostè ha d'aprendre molt de la sintaxi, i només per fer coses molt simples
es necessita una gran quantitat de codi, de manera que jQuery és una biblioteca de JavaScript.
En altres paraules, es tracta d'un arxiu JavaScript que pot carregar
i aleshores utilitzar les funcions d'jQuery per fer certes coses.
I jQuery bàsicament fa la vida molt més fàcil.
Simplifica el prendria centenars de línies en JavaScript a unes poques línies en jQuery.
>> És especialment útil si vostè està utilitzant les API, ja que generalment
com es va a accedir API és fent peticions AJAX,
i crec que David s'ha esmentat en la conferència que les sol · licituds d'AJAX
són en general quan vostè està fent una sol · licitud de xarxa a algun tipus de servidor
i tornar a algun tipus de dades i l'actualització d'una pàgina instantàniament.
Mentre que en JavaScript sense format que portaria el nombre de línies boges
per validar tots els encapçalats i fer totes aquestes coses,
jQuery té una funció molt simple anomenat AJAX,
i tot el que ha de fer en AJAX és donar als paràmetres que es volen donar a l'API,
la ubicació de l'API i qualsevol tipus addicional d'opcions que voleu configurar.
És molt, molt bo i molt útil per a aquest tipus de coses.
Això és tot el que necessitem per començar a rebre les nostres mans brutes a l'API.
>> Vaig a portar a col · lació alguns exemples i explorar les seves diferents propietats
i per què són útils per a diferents tipus de coses.
La primera cosa que realment vaig a mostrar és una cosa que estic treballant en
en el meu laboratori de recerca, que és un visor de Ngram,
i, bàsicament, la idea d'un Visor Ngram es pot buscar algun tipus de paraula
o frase i veure amb quina freqüència es va aparèixer en un cert conjunt de text en el temps.
Aquest exemple és aquest conjunt de dades dels nadons
que van néixer a Nova York entre 1920 i 2000.
Podem buscar, per exemple, per al nom de Jennifer,
i veiem que abans de 1960 en realitat no es va utilitzar gairebé res,
i després com ens fiquem en els últims anys s'està tornant cada vegada més utilitzada.
També podem fer comparacions, de manera que si comparem a Jennifer, per exemple, Thomas,
podem veure Thomas ha estat bastant freqüent al llarg de la història,
mentre que Jennifer és un nom més recent.
Podem fer aquest tipus de coses.
>> Com funciona aquesta aplicació?
Bàsicament, funciona a través d'una API.
En altres paraules, tenim certs paràmetres aquí.
Comptem amb els paràmetres del que en realitat estem buscant,
Quins són aquests noms, i després tenim l'immoble alguns altres,
com l'eix Y i l'eix X.
Vostè pot veure que tenim algunes opcions diferents pel que fa a la
temps de resolució a utilitzar i aquest tipus de coses.
Tenim aquestes opcions quant a les dades que realment volem de la base de dades,
i volem obtenir aquestes dades d'alguna manera útil.
En general, si es consulta la base de dades directament seria una espècie de ser un dolor per fer
presumiblement perquè aquestes dades sobre els noms del nadó viu en alguna base de dades en algun lloc,
i seria realment complicat haver de consultar manualment
i decidir exactament quines dades per tornar.
En altres paraules, només es preocupen per Jennifer i Thomas en aquest cas,
i només es preocupen en un determinat eix i totes aquestes coses.
>> Com podem evitar això?
Per aprofundir en aquesta API una mica més et vaig a mostrar un altre exemple d'aquesta plataforma
que utilitza un conjunt de dades lleugerament diferent.
Aquest conjunt de dades, en lloc de ser els noms del nadó, és en realitat la totalitat
imprimir dades de publicacions de la Biblioteca Oberta,
que és una font gegant de textos publicats al llarg dels últims 100 anys més o menys.
La idea és que tenim aquesta compository de milions i milions de textos,
que ara podem buscar paraules i frases diferents polz
Aquest és un exemple que varia una mica diferent de l'exemple anterior
Et vaig mostrar, que és que tenim aquests 3 consultes de cerca,
la guerra, la guerra i la paraula francesa per a la guerra, que és guerre.
I estem buscant dins dels 3 diferents seccions de la base de dades total.
En altres paraules, en aquesta primera consulta, nosaltres només estem buscant als EUA,
en el segon, només al Regne Unit, i el tercer només de les obres publicades a França.
Veiem alguns patrons interessants.
Per exemple, veiem a la tornada d'aquí que-
Vaja, em va espatllar l'eix una mica, però es pot veure a la dreta en aquest rang aquí
al voltant de la Guerra Civil hi ha un gran repunt en l'edició americana
però no un gran repunt en els altres dos, i això és òbviament perquè
la Guerra Civil que estava succeint en aquell moment.
>> Podem veure algunes coses interessants allà,
però el que realment importa és com arribem a aquestes dades.
Et portaré darrere de les escenes d'aquesta aplicació en una mica.
Un bon truc és que si vostè està treballant amb el lloc i el tipus de volen saber
el que passa darrere de les escenes, pot obrir les eines de desenvolupament.
Vaig a estar utilitzant eines de Chrome per a desenvolupadors, i per arribar als
vostè pot fer el control, shift, J, i que et porta a la consola de JavaScript.
Hi ha algunes fitxes aquí.
Tots ells poden ser molt útils en diferents circumstàncies, però em preocupo per la xarxa
fitxa en aquest moment, i que en realitat ha de actualitzar per aconseguir el treball.
Oh, ho sento.
Li agrada donar un exemple a l'atzar.
Bé, utilitzarem aquest exemple llavors.
>> La idea és que hi ha aquí aquesta API,
i vostè pot veure exactament el que l'API està tornant.
Això és el que l'aplicació està a la volta de l'API d'haver enviat la sol · licitud.
Permetin-me ampliar una mica,
i que, bàsicament, pot veure que és només una sèrie de parells de valors clau en JSON.
En altres paraules, tenim aquest HashMap aquí que l'assignació de valors.
En altres paraules, és la cartografia anys a valors.
En 1765, qualsevol paraula que inicialment buscat s'usa 90 vegades
d'1 milió, així que estem tornant a aquest resultat.
No és exactament JSON ja que tenim aquesta capçalera resultat poc aquí,
però observi que aquest objecte sencer aquí és només una gran taca gran JSON.
Tenim aquí una sèrie que conté aquest element del seu conjunt,
i es pot veure que tot element acaba allà, i després tenim un altre gran element
que va tot el camí fins al final, i que acaba aquí.
Comptem amb una àmplia molt gran amb 2 objectes-hi,
i cada un d'aquests objectes és un HashMap.
Es pot veure en cada un d'aquests HashMaps s'observa una associació
d'aquest valor d'índex 0 i el valor d'aquest valor a un altre HashMap,
que al seu torn és el mapeig de valors de l'eix X amb els valors de l'eix Y.
>> Vostè pot veure JSON posa una mica complicat, però en general,
en realitat és molt útil, i és molt fàcil d'accedir en comparació amb
altres diferents formes de notació.
Quant al que en realitat estem enviant dades a l'API per obtenir,
Vaig a entrar a la part de darrere una mica aquí.
Aquest és el gran arxiu JavaScript que està manejant totes les interaccions de l'aplicació web,
pel que no els importa la major part d'això, però ens preocupem per part d'ella.
Per exemple, ens preocupem per aquesta funció BuildQuery,
i la idea d'aquesta funció és bàsicament el que està buscant al voltant de la pàgina,
esbrinar el que l'usuari vol consultar, en altres paraules,
la comprovació de les caixes on han aportacions dels seus termes de cerca,
comprovació dels diferents valors I i de l'eix X que han triat i tot aquest tipus de coses,
i que va a escopir aquest valor de la consulta, que després es pot enviar a l'API.
>> Això sembla complicat, i és complicat bastant
però el que vaig a fer, de fet, ja estic fent això, que és gran-
és que em vaig a posar la consola per imprimir exactament aquest valor consulta
que està enviant fora a l'API.
Això és en realitat aquí mateix. Ho sentim, imprimeix un munt de coses.
Però això és el que ens importa, aquest objecte aquí.
Aquest és l'objecte de la consulta.
En altres paraules, això és exactament el que l'aplicació web és l'enviament a l'API,
i així que anem a veure aquí a una mica, i veiem que tenim alguns valors aquí.
Veiem que tenim aquest tipus de recompte, que és ocurrències per milió de paraules,
que és exactament el que hem triat en l'eix I d'aquí.
Aquí és on que ve.
Tenim un valor de base de dades, el que significa que hi ha una base de dades determinada
que aquestes dades es viu, i volem accedir a aquestes dades específicament
en lloc dels noms de nadó de dades, per exemple.
Després tenim aquest valor grups,
que ja és dir que volem buscar per any en comparació amb
qualsevol altre valor X eix.
Llavors tenim un mètode, que algunes API farà diverses coses.
En altres paraules, aquesta API també pot retornar altres tipus de dades,
però en aquest cas, volem que el mapeig de valors de l'eix X amb els valors de l'eix Y.
Això és el que està dient que fer allà,
i tenim aquesta matriu recerca límits, que conté dos valors.
El primer és el que veiem aquí, que és de tots els valors
continguda dins d'aquesta petita caixa primer en la part superior.
>> En altres paraules, volem buscar la paraula batalla, i volem filtrar
per textos en espanyol dins de la literatura americana.
Tenim aquest país, que és EUA.
Tenim una llengua, que és l'anglès, així que tenim tots aquests diferents parts
que estan dient l'API exactament el que volem.
No sabem quins són les dades que obtenim d'esquena és, però,
però sabem que les dades es van a prendre una forma determinada.
Aquest exemple és una espècie de al costat complicat,
i no necessàriament seria l'ús d'una API aquest complex,
però això és mostrar l'abast i poder del que API pot fer.
En altres paraules, utilitzant un sistema de consulta relativament simple que bàsicament tenen un quadre d'entrada
amb uns selectors d'alguns altres en diferents llocs.
>> Permetin-me amplia aquí.
Tenim un quadre d'entrada amb una selecció de metadades diferents poques,
i comptem amb eix Y i l'eix X seleccions.
En realitat no tenen camps que molts
i podem veure molt fàcilment que som capaços de consultar algun tipus d'API
i obtenir dades de tornada i després el va posar en aquesta taula,
que després es mostrarà d'una manera útil.
Per veure un altre exemple que pot resultar una mica més familiar per vostès
anem a recórrer a Facebook.
API de Facebook que es diu el Gràfic de Facebook,
i, bàsicament, el que significa que és Facebook es veu com aquesta enorme base de dades
de moltes parts diferents que tenen totes les relacions determinades entre si.
En altres paraules, sóc un usuari de Facebook, així que tinc un perfil,
i també tinc alguns amics, i cada un d'ells té un perfil,
i cada un dels meus amics té un mur, que té diferents comentaris sobre el mateix,
i cada un d'aquests comentaris té gustos i totes aquestes coses.
>> Hi ha un munt de parts diferents a Facebook.
És una API enormement complex, i hi ha un munt que pots fer amb ell,
però en realitat és bastant fàcil d'utilitzar.
Vaig a començar per anar a graph.facebook.com / billyjanitsch,
com és el meu nom de compte únic, i el seu nom de compte serà o bé
algun tipus de paraula si l'ha triat, o potser només sigui una cadena de nombres.
El que s'obté és informació bastant bàsica.
Veiem que tinc un nom, que és Billy, un cognom, que és Janitsch.
Hi ha una única ID de Facebook que tinc.
Es pot veure que sóc home i que tinc la meva configuració d'idioma
per Anglès britànic.
En altres paraules, estem veient una informació molt bàsica aquí.
No és massa, però ens dóna una idea del que hi ha.
>> Podem fer el mateix amb David Malan, per exemple.
Crec que el seu nom és dmalan.
Veiem David Malan té un identificador únic.
Ell té un nom, nom de pila, segon nom, cognom.
També veiem que és home i té el seu conjunt d'idiomes per als Estats Units Anglès.
En altres paraules, estem veient bastant informació bàsica aquí.
Ara, què passa si intentem veure alguna cosa més?
Diguem que jo estic interessat en el que David Malan ha agradat a Facebook.
Que puc fer / talla. Ara ens hem trobat amb un problema.
Tenim una mena d'error que diu que un testimoni d'accés
està obligat a sol · licitar aquest recurs.
Però si es pensa en això, que en realitat té sentit perquè seria estrany
si es pot accedir a cada part de la base de dades de Facebook
només a partir d'algun tipus d'API simple, oi?
En altres paraules, és de suposar que la seva informació no es pot accedir per qualsevol persona que ho desitgi.
>> Aquest error és precisament el que significa.
Algunes API requereixen certs autorització per accedir a les seves dades.
I APIs encara més avançada, com el Facebook un,
requerirà certs permisos per fer certes coses.
Puc veure aquesta informació bàsica sobre David Malan.
Puc veure que és masculí i que viu als EUA,
però no puc veure res més enllà d'això.
Per evitar això, per ara, Facebook té aquesta bona eina
que és la gràfica API explorador, i la idea que es pot ordenar de
compensar els permisos per a tu mateix sobre la base del seu propi compte
a continuació, veure les coses que específicament seu compte pot veure.
Per exemple, si faig graph.facebook.com/billyjanitsch/likes-
Vaja, suposo que he de revalidar el meu testimoni aquí.
Bé.
Si ho faig de nou, genial, ara veig que em surt aquest objecte de nou
que diu que m'agraden els fideus de la piscina, que es troben en la categoria Jocs i joguines.
M'agrada morses, que són a la categoria dels Animals.
Aquests són els meus gustos real Facebook.
Són una mica violent.
>> Però podem veure totes aquestes dades es tornen en JSON.
És molt fàcil de llegir.
En altres paraules, tenim aquesta assignació de dades d'algun tipus d'una matriu,
i cada element d'aquesta matriu és un HashMap que mapeja
el nom d'un producte i la categoria d'un igual.
Cadascun com té un identificador únic.
Hi ha tot tipus de coses diferents de dades que podem obtenir,
i si vostè està interessat en l'ús de l'API de Facebook per a un projecte final CS50
o alguna cosa com això en realitat és bastant factible.
Bàsicament com moure per la cosa d'autenticació és Facebook
utilitza un sistema anomenat OAuth, o autenticació oberta,
i jo no vull entrar en això ara perquè OAuth o els diferents tipus
d'autenticació tendeix a variar molt entre diferents APIs,
pel que podia passar molt temps revisant cada un,
però en realitat són bastant auto-explicatiu.
>> Si Google API de Facebook és molt fàcil de llegir.
Hi ha un conjunt d'especificacions.
Per exemple, aquesta és la documentació de l'API de Facebook,
i es pot veure que estic a la pàgina d'usuari, pel que pot aprendre tot sobre els diferents tipus de coses
que estan disponibles per aconseguir les dades de la mesura del
i també els diferents permisos que necessito per poder accedir-hi.
Com hem vist, no és necessari tenir autorització per accedir al nom o el gènere,
però més enllà que cal tenir permisos per a la majoria de les coses.
Aquesta pàgina, o millor dit, aquest lloc web també li dirà com arribar
un símbol de poder autenticar.
La majoria dels sistemes d'autenticació d'utilitzar algun tipus de senyal
on s'obté aquest valor únic, que és una cadena molt llarga i aleatòria,
i de quina manera es pot associar a la sol · licitud que vostè està fent amb vostè.
En altres paraules, ells saben que no estàs fent res sospitós amb les seves dades.
Ells saben exactament el que està rebent.
També saben que tens permís per veure aquesta informació.
>> Si heu fet la aplicació de Facebook i la seva aplicació té certs usuaris,
i els usuaris que han permès aplicació per accedir a certes parts del seu perfil,
llavors qualsevol cosa API clau o símbol que aquesta aplicació està utilitzant
serà capaç d'accedir a les dades per a aquests usuaris.
Això pot semblar complicat, però no és tan dolent,
i si vols utilitzar Facebook Jo recomanaria que vostè
considerar jugar amb la seva API.
És molt bo, i vostè pot fer un munt de coses diferents a ella.
Si l'usuari li concedeix aquests permisos pot fins i tot tornar a l'API
i dir que vols publicar en realitat a la paret de l'usuari, o vull tenir publicar una foto,
i per això en el seu servei de notícies que de vegades hauràs aquestes coses molestes
dient que el seu amic ha vist el vídeo en algun lloc estrany o alguna cosa per l'estil.
Això és perquè l'aplicació ha tingut accés a publicar al mur d'aquesta persona.
La idea general de l'API de Facebook és bastant complicat, però també és útil realment.
Definitivament val la pena visitar si vostè encara està buscant un projecte final.
>> Un altre conjunt d'APIs que em vaig a anar de nou és CS50 API.
Permetin-me fer un zoom aquí.
CS50 realitat ha reunit una sèrie d'APIs
que es pot utilitzar per a un projecte final o simplement per a qualsevol cosa que vostè està fent.
I estan majoritàriament relacionats amb la Universitat de Harvard, i varien des del menú HUDS,
per exemple, a aquesta API Harvard Esdeveniments, que li permetrà accedir a una llista de
diferents esdeveniments que estan succeint a Harvard i aquest tipus de coses.
I, llavors, pot fer clic a qualsevol d'aquests i obtenir una especificació per a això,
que podràs trobar per a qualsevol API, i és la idea
li permet saber, A, específicament el de sol · licitar a l'API i com sol · licitar.
En altres paraules, si voleu que tots els esdeveniments que estan succeint demà
llavors he de òbviament donar-li aquesta data que desitja en un format determinat,
i B, que em dirà exactament el que donarà a mi.
Li dic que vaig a tornar aquest objecte JSON,
o com vostè pot veure, hi ha diferents formats.
>> També pot retornar les dades com un arxiu CSV, per exemple.
Però vostè sap exactament com aquesta informació es veurà quan t'ho torna
així que vostè pot esperar per fer certes coses amb ella.
Ens pot desplaçar cap avall i veure, per exemple, si vol consultar l'API
per obtenir un calendari, llavors podem utilitzar aquesta URL en particular
i li donen certs paràmetres que seran les dades que volem exactament.
I de la mateixa manera, si volem que les dades de nou en un format determinat,
llavors podem fer per mostrar les dades en un arxiu CSV,
i això és un altre paràmetre que estem passant a l'API.
Un munt de coses interessants que fer.
Sens dubte recomanem que visitis les API CS50.
>> Vaig a mirar aquesta API Aliments de Harvard, en particular per una mica.
Una cosa que he fet és dissenyat aquest lloc web Harvard Noms,
que utilitza l'API Dinar CS50 per recuperar el menú HUDS per al dia.
I per a la gent d'escola d'extensió, HUDS és el servei de menjador a Harvard.
El que s'obté és aquesta pàgina que conté tots els àpats del dia, així que veiem el dinar.
Tenim unes categories diferents. Tenim el fesol i l'estació de gra sencer.
Tenim l'estació arròs integral.
Podem veure que tenim per el brunch aquests aliments pocs.
Si fem clic sobre ells, llavors obtenim la informació nutricional.
Vostè veu aquesta és la informació nutricional de aranja, en cas que es pregunten.
I així, una vegada més, anem a mirar a la part de darrere aquí una mica
i veure exactament què està fent això per obtenir aquestes dades.
I resulta que en realitat no ser molt complex en absolut.
Aquest arxiu es veu una mica desordenat i tingueu en compte que aquest és el maneig de tot el lloc web,
i si em desplaço cap avall veiem aquesta funció de canvi de dades.
>> Ara, només perquè quedi clar, això està escrit en CoffeeScript,
que és un llenguatge que és probable que no hagi vist abans.
Però és molt fàcil de llegir, així que vaig a caminar a través d'ell com si es tractés d'pseudocodi.
Data de canvi és una funció que prendrà en aquest valor de data,
i també es prendrà en un principi, el que no els importa tant.
Però l'important és que té aquesta data,
i aquesta data és el dia que volem demanar a tots els articles de menjar per.
I després veus que tenim una mica de sintaxi aquí,
que és bàsicament analitzar aquesta data en un format llegible.
En altres paraules, l'API requereix la data en un format determinat.
No es pot dir 16 novembre 2012 AD.
No sabrà què fer amb això. Vol la data en un format específic.
Tot el que estem fent aquí és el que dóna exactament aquest format,
que és un valor any i després un guió, un valor mesos,
altre guió i el valor de data.
I també diem que volem que les dades siguin sortides en JSON.
>> Ara estem fent aquesta petició AJAX, i com he esmentat abans,
jQuery té aquesta funció super útil AJAX que tot el que ha de fer és especificar
alguns paràmetres baix aquí, i li tornarà exactament el que vols.
Ho estem dient que la direcció que vol que vagi a aquesta API és menjar CS50,
que ens van donar de l'especificació.
Diem que volem que les dades en JSON i que
donarem aquestes dades que hem definit aquí.
Aquest és el dia que volem que els aliments per.
I llavors tot el que has de fer és definir algun tipus de funció èxit,
que és bàsicament el que succeeix quan l'API retorna les dades.
En altres paraules, hem empaquetat de tots els paràmetres que vulguem,
que en aquest cas és el dia en què el volem i el fet que la volem en JSON,
i el va enviar a l'API, de manera que ara l'API està dient, està bé,
Aquí està la seva informació, el tinc de nou.
Tenim èxit de la funció, ja que vol dir que l'API
amb èxit retorna algunes dades, què fem amb ell?
>> I resulta que l'únic que fan és cridar a aquesta funció del menú d'actualització
amb el que l'API ha tornat, de manera que podem buscar aquesta
i veure que tot el que estem fent des d'un munt de nova sintaxi aquí
per actualitzar el codi HTML i inserir aquestes noves dades.
El que això permet és que tenim aquestes fletxes a cada costat, i fem clic pot,
i ara estem veient les dades per al dia següent i de nou per al dia següent,
i cada vegada que s'actualitza el valor de data i la consulta de l'API,
tornar a estar algunes dades i posar-la al lloc.
Un cop més, es pot veure, super, super útil.
Aquesta aplicació em va prendre un parell d'hores per hackejar junts,
i tinc l'experiència una mica més, és clar, però el seu projecte final CS50
Pot ser una cosa molt semblant a això.
>> APIs són súper potent per la quantitat d'esforç que es prenen.
L'últim que vaig a anar de nou és una API de poc més àmplia.
No vaig a arribar tan lluny en la mesura del què fan concretament,
però et vaig a donar una idea del que hi ha allà fora.
2 els realment útils, si vostè està interessat en l'anàlisi de dades o la visualització
o alguna cosa per l'estil, són Freebase i Wikipedia.
Wikipedia-presumiblement tots vostès saben, és una enciclopèdia en línia lliure,
i que en realitat té una API, de manera que si ho desitja, per exemple,
obtenir tots els textos i els articles per al pop
vostè pot fàcilment fer això.
Només dir hey, Wikipedia API, m'agradaria que les dades retornats com aquest,
i m'agradaria que en aquest format, i l'article que m'agradaria és pop,
i molt aviat se li va a tornar aquesta informació.
Això pot ser molt útil si voleu fer algun tipus de lloc
això és un visor millor per Viquipèdia o alguna cosa per l'estil.
>> Freebase és una espècie de semblant, encara que és una mica més difícil pel que fa a API.
Freebase és com la Wikipedia en que és una enciclopèdia en línia
que conté munts i munts de diferents dades sobre tot tipus de temes diferents,
però s'emmagatzema en una base de dades relacional, que és lleugerament diferent de la Wikipedia.
Wikipedia té els seus articles i objectes vinculats a altres articles,
però en la seva major part, si voleu que les dades de pop,
vas al article pop, obtenir aquestes dades, i vostè té un munt de text
sobre els pops, i això és genial.
Freebase funciona d'una manera lleugerament més complicat que en
tot el que està relacionat amb un altre.
En altres paraules, si estem a la recerca de pop
llavors té un munt de categories associades amb ella.
>> Per exemple, és un animal que viu sota l'aigua,
que té una temperatura corporal determinada.
No.
I totes aquestes categories són enllaços a altres llocs on es pot anar
a veure les coses amb aquesta mateixa categoria.
En altres paraules, el conjunt de pop dades contindria un enllaç a les dades establertes per a tots els animals,
i que em deixava moure a la base de dades molt ràpid.
Això pot ser molt útil si vostè està fent alguna cosa així com comparacions.
En altres paraules, donada una certa cosa, et vull veure
Què més es relaciona amb i veure què més no està relacionat amb.
Aquest tipus de coses. Pot ser útil en un nombre de maneres.
Si vostè està buscant alguna cosa més que un repte i ser capaços de fer coses més complexes
Jo consideraria fer una ullada a l'API de Freebase.
No obstant això, en gran part, Wikipedia és un lloc molt senzill d'arribar tan lluny com l'obtenció d'informació.
Un altre lloc que vaig a mirar és Last.fm, i de fet vaig a anar al lloc
en cas que algunes persones no estan familiaritzats, però Last.fm és bàsicament una música
gustos i el lloc web recomanacions.
Vostè pot fer un compte.
Vostè pot començar a pujar música des de la seva reproductor de música
el lloc web, i bàsicament començarà a donar-li recomanacions de música
d'acord amb el que escoltes.
>> Per exemple, si vostè va a la seva pàgina de perfil-això és meu-
es pot veure que tenen una llista de poc vaig escoltar a pistes.
Es pot veure en general artistes favorits, totes aquestes coses,
i de nou, hi ha una API gran darrere de Last.fm,
i es pot utilitzar per fer munts i munts de coses molt interessants.
Per exemple, vaig a anar a la pàgina d'un amic que té aquest lloc web Last.fm eines.
Això és en realitat una altra plataforma que es construeix a l'API de Last.fm,
i que fa una sèrie de boniques coses interessants.
Si em connecto amb el meu nom d'usuari, per exemple,
Ho puc fer per generar un núvol d'etiquetes, per exemple,
i el que farà és donar-me de nou una imatge de
tots els diferents gèneres i aquest tipus de coses que m'agrada escoltar.
Com es fa això?
Molt bàsicament està dient a l'API de Last.fm aquí està aquest usuari.
M'agradaria saber el gènere de cada cançó que he escoltat,
i vostè pot fer que en fer una trucada AJAX bastant simple a l'API de Last.fm.
Vas a obtenir una llista gran, i llavors, evidentment, algunes altres coses que s'està fent
per convertir-la en un núvol de paraules, però es pot veure en general
que és molt fàcil d'accedir i molt fàcil d'utilitzar.
Molt bonic per a una sèrie de coses.
>> Crec que això és tot el que diré en general.
Una última cosa que vaig a esmentar sobre les API en general és que
de vegades es trobarà amb una cosa que es diu limitació de velocitat,
i la idea de la limitació de velocitat és que no vull abusar d'APIs.
En altres paraules, és molt bo que molts d'aquests llocs web tenen APIs
que vostè pot anar i utilitzar de forma gratuïta.
No obstant això, si vostè està fent milions o milers de milions de peticions al dia,
per exemple, si vostè està encallat en un bucle infinit que està infinitament consulta
algun tipus d'API i tornar a una enorme quantitat de dades,
òbviament això no és bo, així que el que molta API fer és tenir aquesta característica limitant de la velocitat
que diu que vostè només pot fer 1.000 sol · licituds per dia per adreça IP o alguna cosa per l'estil.
I si vostè està fent un munt de proves i aquest tipus de coses,
que de vegades es quedarà en això, i de sobte se li apaga
i diuen que no, jo no vaig a donar més dades.
>> El que vull fer és jugar amb les regles.
Vostè vol assegurar-se que vostè llegeixi l'especificació API acuradament.
Si té certes regles que se li atribueix, com només es pot fer consultes per dia X
o que només es pot accedir a una part de la base de dades d'un cert nombre de vegades
o alguna cosa per l'estil que vostè vol assegurar-se que s'adhereixen a això.
Mentre jugues dins d'aquestes regles és probable que tingui un molt bon temps usant APIs.
La seva Takeaway general és APIs són molt, molt útil.
>> Hi ha una API per gairebé qualsevol servei web gran que hi ha.
Gairebé qualsevol part de la suite d'eines de Google, Google Maps, Google Earth,
Gmail, Google Calendar, totes aquestes coses tenen APIs.
Vostè les pot utilitzar per ambdós Obtenir dades des del servidor i enviar dades al servidor.
En altres paraules, si vostè vol fer una aplicació de calendari que pot actualitzar
Calendari d'algú Google, hi ha una API per això.
Si vols fer alguna cosa que et dirà on
la ubicació d'una direcció específica és que es pot utilitzar l'API de Google Maps per això.
APIs són increïblement útils, i estan per tot arreu.
Si estàs interessat en algun tipus d'idea,
és probable que hi hagi una API relacionada que pot utilitzar per obtenir una gran quantitat de dades
molt ràpidament i molt simplement.
>> Si vostè encara està buscant un projecte o si el que desitja és jugar
amb alguna cosa en general, les API són definitivament val la pena.
Gràcies, i estic encantat de respondre a qualsevol pregunta que vostè pugui tenir.
Bé, moltes gràcies.
[CS50.TV]