[Powered by Google Translate] [Szeminárium] [A programozói bemutatása API] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [Ez a CS50.] [CS50.TV] Helló, mindenki, én vagyok Billy, és ma én leszek beszélni API-k, vagy alkalmazás programozási felületek, különösen az összefüggésben CS50 végleges projektek és az ilyesmit. Általában mi az API? Nagyon tág értelemben, ez egyfajta középső ember, amely lehetővé teszi 2 db A szoftver kommunikálni egymással. Ez egyfajta nagyon tág definíció, és nem az, hogy fontos, amit keresünk. Amit igazán akarok, valamiféle hasznos középutat kommunikálni valamilyen adatbázis valahol. Itt egy diagramot, és alapvetően az ötlet, hogy a vagyunk egy alkalmazást, és azt akarjuk, hogy az adatokat egy adatbázisból, de mi nem akarjuk lekérdezni az adatbázist közvetlenül. Ehelyett azt akarjuk, hogy menjen át ezt a fajta középső ember, az API-t. Az ötlet mögött a szám 2 és 3 a chart mindketten lesz nagyon bonyolult és rendetlen. Más szóval, amikor a API az adatbázis lekérdezésekor, ez valószínűleg lesz az SQL táblák, és minden, hogy a fajta dolog, és mi tanultunk egy kicsit róla CS50, de összességében már észrevette, hogy ez egy kicsit a fájdalom. Ez lesz nagyon, nagyon bonyolult és zavaros, különösen, ha még van bonyolult lekérdezések és ilyesmi. Amit igazán akarok, valamiféle hasznos és egyszerű módon kap, hogy az adatok, és ez a gondolat mögött az 1 és 4 a diagramon. Más szóval, szeretnénk egy igazán egyszerű módja annak, hogy elmondja a API mit kap nekünk és egy nagyon egyszerű módja annak, hogy az adatokat vissza. Van az egyik fő módja, hogy az adatok általában a küldött és fogadott, ami JSON, vagy a JavaScript Object Notation. Ez változhat egy kicsit, amennyire hogyan elküldi a kérelmet, hogy az API. Más szóval, ha azt szeretnénk, néhány bizonyos mennyiségű adat, hogyan mondja az API kap, hogy az adatok között változhat egy kicsit. Általában ez magában foglalja, hogy valamilyen hálózati kérelmet. Más szóval, a hozzáférés valamilyen URL-címet fogja mondani az API pontosan mit akar, de az adatok szinte mindig visszaküldik, más szóval, 4-es számú JSON. Mi az a JSON pontosan? Mint mondtam, JavaScript Object Notation. Ez alapvetően az univerzális szabvány adó és a vevő adatait. Az elképzelés az, hogy van e 3 kategóriában a dolgokat. Van tömbök, hashmaps és primitívek. Tömbök és hashmaps amit nézett egy kicsit a CS50, de még valami ütött egy nagyon szigorú értelemben, mik azok. Más szóval, a tömbök, tudod, hogy ők írja kötött, így csak egyféle típust, hogy megy az egész tömb. JSON sokkal enyhébb az ilyesmi. Alapvetően az ötlet maga megépíteni ezt a tárgyat, amely állhat ezek bármelyikének 3 dolog és állhat több is őket, és ők is egymásba ágyazhatók. Itt van egyfajta példát JSON, amely ezeket a kapcsos zárójelek itt képviseli a HashMap, és HashMap alapvetően egy leképezés valamilyen kulcsfontosságú valamiféle értéket. Látni fogod, hogy itt van a tulajdonságok kulcs, és ez feltérképezése rá egy tömb, ami ezt az egészet. Látjuk másik eleme a HashMap, ami ezt a kulcsot isAwesome, amely térképeket egy primitív érték igaz, más szóval, a logikai. Primitívek lehet szálakat. Ezek lehetnek egész számok. Lehetnek bools, ilyesmi. És látod a tartalmát tömb tulajdonságait pontok már 2 húrok benne, önhasonló és csodálatos. Ezek 2 tulajdonságai JSON, és látjuk, hogy JSON félelmetes. Ha megnézzük, hogy egy kicsit jobban fogok építeni bonyolultabb példa JSON itt. Kezdjük egy sor, például csak egy üres tömböt. De ez a fajta unalmas, ezért fogjuk kitölteni egy kicsit, , és mint mondtam, tömbök JSON A típusú kötött, így is van egy húr van, ami hi, és ez egy másik eleme, hogy a tömb. És hasonlóképpen, tudtuk hozzá hashmapping itt, ami megy, hogy egy pár leképezések. Ez lesz egy leképezés nevet a húr Billy. Van egy leképezés név Billy, és van egy feltérképezése kedvenc színe a kék. Ez alapvetően jó példa a JSON. Ez a fajta kerül-Hoppá, kell vessző van, mind a különböző részeit. Ismét, ez nem írja kötve egyáltalán, így lehet bármilyen fajta belül, amit akarsz, és az ötlet, hogy ez önhasonló. Más szóval, ez itt van egy JSON objektum, mivel ez az egész dolog, mint éppen ez, így van egy primitív lehet tárgy, tömb lehet egy tárgy vagy HashMap lehet egy tárgy. Mint tudod milyen látni, JSON nagyon, nagyon hasznos, hogy ez annyira sokoldalú. Egyszerre minden lehetséges adatot, amit elképzelni tárolt JSON. Ez teszi, hogy egy nagyon szép nyelv használható API-k mert ez nagyon sokat jelent, hogy nem számít, mit kívánt adatokat ott lesz valahogy vissza JSON. Néhány tulajdonságok teszik JSON különösen jó ez a fajta dolog. Mint látható, szemben egy csomó dolog, hogy már dolgozik a CS50 ez viszonylag nagyon könnyen olvasható és nagyon könnyű írni. A francia ki, ha akarod, mint én csináltam, hogy például, amely egy szép, csinos verzió látható igazán jól. De egyébként ez is könnyű írni és olvasni a számítógép. Más szóval, ez könnyen elemezhető és könnyű kódolni, ami azt jelenti, hogy elég gyors, mint amennyire az adatok olvasása van szó, és JSON keletkezhetnek nagyon gyorsan. Ez is nagyon könnyen elérhető különböző részein, JSON és az ilyesmit. Ez szép, továbbá az a tény, hogy ez önhasonló, más szóval, az a tény, hogy lehet JSON belül JSON belül JSON nagyon szép az adattárolásra. A másik rész, ami általában nagyon hasznos a munka jQuery API-k. Megtanultátok egy kis JavaScript, ami egy jó módja manipulálni HTML és CSS egy honlapon. De ez lehet a fajta a fájdalom a kód egyszerű JavaScript, főleg azért, mert a JavaScript egy nagyon bőbeszédű nyelvet. Meg kell tanulni egy csomó szintaktikai, és csak csinálni nagyon egyszerű dolgok tart sok a kódot, így a jQuery egy könyvtár a JavaScript programot. Más szóval, ez egy JavaScript fájlt tölthet majd a jQuery funkciók bizonyos dolgokat. És jQuery alapvetően teszi az életed egy egész sokkal könnyebb. Egyszerűsíti mi lenne sok száz vonalak JavaScript le egy pár sort a jQuery. Ez különösen akkor hasznos, ha az Ön által használt API-k, mert általában hogyan lesz API-k elérése azáltal AJAX kérések, és azt hiszem, David említett előadásában, hogy AJAX kérések általában, ha követsz hálózati kérés valamiféle szerver és egyre vissza valamilyen adat és frissítése oldalt azonnal. Mivel a sima JavaScript venné őrült számú vonalak érvényesítése az összes fejléc és tegyenek meg mindent az ilyesmik, jQuery van egy nagyon egyszerű nevezett funkció AJAX, és csak annyit kell tennie, az AJAX is megkapjuk a kívánt paramétereket, hogy az API, helyét az API, illetve bármely további fajta beállításokat kíván konfigurálni. Ez nagyon, nagyon szép és nagyon hasznos ez a fajta dolog. Ez minden, amit meg kell kezdeni, hogy a kezünket piszkos az API-kat. Megyek, hogy ki néhány példát, és fedezze fel a különböző tulajdonságok és miért ők hasznosak különböző dolog. Az első dolog, én tényleg mutatni olyan dolog, hogy én dolgozom én kutatólaboratóriumot, amely Ngram Viewer, és alapvetően azt az elképzelést, Ngram Viewer kereshet valamiféle szó vagy kifejezésre, és látom, hogy gyakran ez megjelent egy bizonyos szöveget idővel. Ez a példa itt az adatok halmaza babák hogy született New York között, 1920 és 2000. Mi lehet keresni, például a nevét Jennifer, és látjuk, hogy pre-1960-as években ez igazán nem volt hozzászokva, hogy sok minden, aztán ahogy bejutni későbbi években ez válik egyre többször használják. Azt is megteheti összehasonlítását, így ha összehasonlítjuk Jennifer, például, Thomas, látjuk Thomas már elég elterjedt a történelem során, mivel Jennifer egy újabb név. Meg tudjuk csinálni, hogy az a fajta dolog. Hogyan működik ez a kérelem a munka? Alapvetően működik keresztül API. Más szavakkal, van bizonyos paramétereit. Megvan a paramétereket, amit mi valójában keres, amelyek ezeket a neveket, és aztán van egy pár egyéb tulajdonságok, mint az Y tengely és az x tengely mentén. Láthatjuk, hogy van egy pár különböző lehetőségek, amennyiben a időbontásban használni, és az ilyesmit. Van ilyen opciók amennyire milyen adatokat valójában szeretnénk az adatbázisból, és azt szeretné, hogy az adatokat vissza néhány hasznos módon. Általában, ha arra lekérdezése az adatbázisból közvetlenül lenne egyfajta a fájdalom csinálni mert valószínűleg ez az adat mintegy baba nevét él valamilyen adatbázisban valahol, és ez lenne igazán bonyolult, hogy a lekérdezés kézzel , és eldönti, hogy pontosan milyen adatokat vissza. Más szóval, csak érdekel Jennifer és Thomas ebben az esetben, és csak érdekel egy bizonyos tengelye és minden ilyesmik. Hogyan lehet megkerülni ezt? Ásni ebbe API egy kicsit megmutatom neked egy másik példa erre platform amely némileg eltérő adatokkal együtt. Ez az adat készlet, ahelyett, hogy baba nevek, valójában csak a teljes nyomtatott kiadvány adatbázis Open Library, ami egy hatalmas forrása megjelent szövegek az egész elmúlt 100 évben, vagy úgy. Az ötlet az, hogy mi van ez compository millió és millió szöveg, amit most keresni a különböző szavak és mondatok be Íme egy példa arra, hogy változik egy kicsit másképp az előző példában Megmutattam neked, ami már a 3 keresési lekérdezések, háború, háború, és a francia szó a háború, ami guerre. És mi keres belül 3 különböző szakaszain a teljes adatbázist. Más szavakkal, ebben az első lekérdezésben mi csak keres-ben az USA-ban, a másodikban csak az Egyesült Királyságban, és a harmadik csak a mű Franciaországban. Látunk néhány érdekes minták jelennek meg. Például, azt látjuk, jobb itt, amely- hoppá, én elrontottam a tengely egy kicsit, de lehet látni ebben a tartományban van bárhol Civil War van egy nagy tüske az amerikai kiadás de nem olyan nagy tüske a másik kettő, és ez nyilván azért, mert az amerikai polgárháborúban történik ezen a ponton. Láthatjuk néhány jó dolog van, de ami igazán érdekel, hogy hogyan kaptuk ezeket az adatokat. Elviszlek a színfalak mögött ebben az app egy kicsit. Egy ügyes trükk, ha dolgozik a helyszínen, és milyen szeretné tudni mi folyik a színfalak mögött, akkor nyissa meg a fejlesztői eszközök. Fogom használni a Chrome fejlesztői eszközöket, és hogy e meg tudod csinálni ellenőrzés, shift, J, és úgy, hogy a JavaScript konzol. Van néhány kották itt. Ezek mind nagyon hasznos, különböző körülmények között, de érdekel a hálózat lap most, és én valójában frissítéséhez kap, hogy működik. Ó, sajnálom. Szereti, hogy egy véletlenszerű példát. Oké, akkor használd ezt a példát, akkor helyette. Az ötlet van ez API van, és láthatjuk pontosan mi az API visszatér. Ez az, amit az alkalmazás egyre vissza az API miután elküldte a kérést. Hadd nagyítani egy kicsit, és mi is látni alapvetően ez csak egy sor kulcsfontosságú érték párokat JSON. Más szóval, itt van ez a HashMap itt ez feltérképezése értékeket. Más szavakkal, ez feltérképezése években értékeket. 1765-ben, amit szóval kezdetben keresett használt 90-szer az 1 millió, tehát vagyunk, hogy újra ezt az eredményt. Ez nem pontosan JSON mert van ez a kis eredmény fejléc van, de vegyük észre, hogy ez az egész tárgy itt csak egy hatalmas JSON blob. Van egy tömb van, amely az egész elemet, és láthatjuk, hogy az egész elem véget ér ott, és akkor van egy másik nagy eleme hogy megy egészen a végéig, és itt ér véget. Van egy nagyon nagy tömb, 2 tárgy került bele, és minden egyes ilyen tárgyak egy HashMap. Láthatjuk egyes fenti hashmaps van egy leképezés E mutató értéke 0 lesz, és ezt az értéket értéke egy másik HashMap, ami ismét a feltérképezése X tengely értékeit Y tengely értékeket. Láthatjuk JSON kap egy kicsit bonyolult, de összességében, ez valóban nagyon hasznos, és nagyon könnyen megközelíthető, mint a egyéb különböző formái jelöléssel. Ami mi vagyunk valójában küld adatokat a API kap, Én megyek be a hátsó egy kicsit itt. Ez a nagy JavaScript fájlt, ami kezelés minden kölcsönhatások a web app, és így nem érdekli a legtöbb, de mi érdekel egy részét. Például, mi érdekli ez buildQuery funkciót, valamint azt az elképzelést, ez a funkció alapvetően ez nézelődök az oldalon, kitalálni, amit a felhasználó szeretne lekérdezni, más szóval, ellenőrzi ezeket a dobozokat, ahol volna be a keresési kifejezések, ellenőrzése, a különböző Y és az X tengely értékeit, hogy már választott, és minden ilyesmi, és ez fog kiköp a lekérdezés értéket, amit aztán elküld az API. Ez úgy néz ki, bonyolult, és ez elég bonyolult de mit fogok csinálni, sőt, én már ezt, ami nagyszerű, az, hogy én megyek, hogy a konzol, hogy nyomtassa ki pontosan, hogy a lekérdezési érték hogy ez küld ki, hogy az API. Ez tulajdonképpen itt van. Sajnáljuk, de a kimenet egy csomó dolgot. De ez az, amit mi érdekli ez a tárgy itt. Ez a lekérdezés objektum. Más szavakkal, pontosan ez a web alkalmazás küld az API, és így nézzük meg belülről egy kicsit, és azt látjuk, hogy van egy pár értéket itt. Úgy látjuk, hogy van ez a száma, típusa, amely az események egy millió szó, amely pontosan mi az, amit választott az Y tengelyen ide. Ez az, ahol ez jön. Van egy adatbázis-értéket, ami azt jelenti, hogy van néhány bizonyos adatbázisból hogy ezek az adatok nem él, és szeretnénk elérni, hogy az adatok kifejezetten szemben az baba nevek például adatok. Aztán itt van ez a csoport értéket, amely azt mondja, hogy azt akarjuk, hogy keresni évre, szemben a egyéb X tengely értéke. Aztán van egy módszer, amely bizonyos API fog tenni több dolgot. Más szóval, ez a API is visszatérhet más típusú adatok, de ebben az esetben, azt akarjuk, hogy a feltérképezésére X tengely értékek Y tengely értékeket. Ez az, hogy mit mond, hogy ezt ott, és mi van a keresést korlátok tömb, amely 2 érték. Az első az, amit itt látunk, amely az összes érték tartalmazott, hogy az első kis doboz tetején. Más szavakkal, azt akarjuk, hogy keresse meg a szót csatát, és azt akarjuk, szűrjük le az angol nyelvű szöveg belüli amerikai irodalom. Van ebben az országban, amely az Amerikai Egyesült Államok. Van egy nyelv, amely angol, tehát mindezen különböző részein hogy mind mond API pontosan mit akarunk. Azt nem tudom, mi az adatokat, hogy vissza még, de tudjuk, hogy az adatokat fog tartani egy bizonyos formában. Ez a példa a fajta a bonyolult oldalon, és akkor nem feltétlenül használ API ebben az összetett, de ez, hogy mutassa meg a tartomány és a teljesítmény, amit API képes. Más szóval, egy viszonylag egyszerű lekérdezést rendszerünk alapvetően van egy beviteli mezőbe néhány más választók különböző helyeken. Hadd zoom vissza ide. Van egy beviteli mezőbe a néhány különböző metaadat kiválasztást, és mi van Y-tengely és az X tengely beállításokat. Mi valójában nem is, hogy számos területen, és láthatjuk, nagyon könnyen vagyunk képesek lekérdezni valamilyen API és kap adatokat vissza, majd helyezze be a chart, amelyet ezután fog megjeleníteni egy hasznos módon. Ahhoz, hogy nézd meg egy másik példát, hogy lehet egy kicsit jobban ismerik a srácok fogunk fordulni a Facebookon. Facebook API hívják Facebook Graph, és alapvetően mit jelent a Facebook úgy látja magát, mint ez a hatalmas adatbázisban A sok különböző alkatrészek mindegyike bizonyos összefüggések egymással. Más szóval, én vagyok a felhasználó a Facebook-on, úgyhogy van egy profilt, és nekem is van néhány barátok, és mindegyikük egy profilt, és minden barátom van egy fal, amely a különböző megjegyzéseket rá, és minden egyes ilyen észrevételeket is szereti, és minden ilyesmi. Van sok különböző részein a Facebookon. Ez egy rendkívül összetett API, és van rengeteg, amit tehetünk vele, de valójában nagyon egyszerű a használata. Fogom kezdeni ki megy graph.facebook.com / billyjanitsch, ami az én egyedi fiók nevét, és a fiók neve vagy legyen valamilyen szó, ha már választott, vagy talán csak egy számsorozat. Amit vissza elég alapvető információkat. Látjuk, hogy van egy keresztnevet, ami Billy, a vezetéknév, ami Janitsch. Van egy egyedi Facebook azonosítóddal általam. Láthatod, hogy én vagyok a férfi és hogy az én nyelvi beállítás a brit angol. Más szóval, látjuk nagyon alapvető információk itt. Ez nem túl sok, de ez nem ad nekünk egy ötlet, hogy mi van ott. Meg tudjuk csinálni ugyanezt David Malan, pl. Azt hiszem, az ő neve dmalan. Látjuk David Malan van egy egyedi azonosító. Van egy név, utónév, középső név, vezetéknév. Azt is látjuk, hogy ő a férfi és megvan a beállított nyelv az amerikai angol. Más szóval, látjuk elég alap információk itt. Nos, mi történik, ha megpróbáljuk, és nézd meg valami mást? Tegyük fel, hogy én vagyok érdekel, hogy mit David Malan már tetszett a Facebook-on. Meg tudom csinálni / szeret. Most már befut egy kis probléma. Van valami hiba, hogy azt mondja egy hozzáférési token köteles kérni ehhez az erőforráshoz. De ha belegondolsz, hogy valóban van értelme, mert furcsa lenne ha meg tudná elérni minden egyes részét Facebook adatbázisában Csak néhány fajta egyszerű API, ugye? Más szóval, feltehetően az adatokat nem lehet hozzáférni, bárki, aki akarja. Ez a hiba pontosan, hogy ez mit jelent. Egyes APIs szükségük van bizonyos engedélyeket való hozzáférés érdekében az adatokat. És még fejlettebb API-k, mint a Facebook egyik, lesz szükség bizonyos engedélyeket bizonyos dolgokat. Látom, ez az alapvető információkat David Malan. Látom, hogy ő a férfi, és hogy él az Egyesült Államokban, de nem igazán látni semmit múlt. Hogy ezt most, a Facebook már ezt a szép eszköz amely a grafikon API explorer, és az ötlet, ami akkor egyfajta töltsük fel engedélyek magadnak alapján a saját számlájára majd tekintse meg a dolgokat, amelyek kifejezetten a fiókjában megtekintheti. Például, ha én graph.facebook.com/billyjanitsch/likes- Hoppá, azt hiszem, meg kell újraérvényesítéséhez a token itt. Oké. Ha tudom, hogy ismét remek, most látom, hogy értem ezt az objektumot vissza amely azt mondja, hogy szeretem medence tészta, amely ebben a kategóriában Játékok és játékok. Szeretem a rozmár, amelyek a kategória Animal. Ezek az én valódi Facebook szeret. Ők ilyen kínos. De látjuk, ez az adat az összes visszaadott JSON. Elég olvasható. Más szavakkal, van ez a leképezés az adatok valamilyen egy tömb, és minden egyes eleme a tömb olyan HashMap ami leképezi a a neve külleme és a kategória valamely hasonló. Minden, mint egy egyedi azonosítót. Vannak mindenféle más dolgot adatok, hogy tudnánk, és ha érdekel a Facebook API irányuló CS50 projekt végső vagy ilyesmi, hogy ez valójában meglehetősen megvalósítható. Alapvetően, hogyan lehet megkerülni a hitelesítés dolog Facebook használja nevezett rendszert OAuth, vagy az Open Authentication, és nem akarok belemenni, hogy most, mert OAuth, vagy a különböző típusú hitelesítés általában nagyon változóak a különböző API-k, így tudtam tölteni egy hosszú ideje megy át minden egyes, de ők valójában elég magától értetődő. Ha a Google a Facebook API nagyon olvasható. Van egy egész spec. Például, ez a dokumentáció a Facebook API, és láthatjuk vagyok a felhasználói oldalon, így tudok mindent megtudhat a különféle dolgokat állnak rendelkezésre, hogy kap, amennyire az adatok valamint a különböző engedélyeket, amire szükségem van ahhoz, hogy elérhesse őket. Mint láttuk, nem kell jogosultsága a nevét vagy a nemek, de azon túl, hogy mi szükség van engedélyeket a legtöbb dolog. Ez az oldal, vagy inkább ezt a weboldalt is megmondja, hogyan lehet a token, hogy képes legyen hitelesíteni magát. A legtöbb hitelesítési rendszerek használata valamiféle token ahol megkapod ezt az egyedülálló értéket, ami egy igazán hosszú és véletlenszerű string, és így tudják társítani a kérést, hogy te, hogy veled. Más szóval, tudják, hogy te nem csinálsz semmit, gyanús, hogy adatokat. Ők pontosan tudják, mit kapsz. Azt is tudom, hogy van engedélye, hogy megtekinthesse ezt az információt. Ha már készített egy Facebook app, és a app van egyes felhasználók, valamint azokat a felhasználókat lehetővé tették, hogy az app hozzáférést bizonyos részeit a profiljukat, akkor bármilyen API kulcsot vagy token hogy app használ lesz képes hozzáférni az adatokhoz, azon felhasználók számára. Ez tűnhet bonyolult, de ez nem túl rossz, és ha szeretné használni a Facebook azt ajánlom, hogy fontolja játék körül azok API. Ez nagyon cool, és meg tudod csinálni egy csomó más dolgot is. Ha a felhasználó megadja neked ezeket a jogosultságokat, akkor te is menj vissza az API és mondd azt akarom, hogy valóban tölteni ezt a felhasználói falra, vagy akarom őket berakni egy fényképet, és ezért a hírcsatorna akkor néha azok bosszantó dolgok mondván ismerőse nézte ezt a videót valamilyen furcsa helyszínen, vagy valami ilyesmi. Ennek oka, hogy az app hozzáférést kapott tegye az adott személy falat. Az elképzelés összességében a Facebook API elég bonyolult, de nagyon hasznos. Mindenképpen érdemes megnézni, ha még mindig keresi a végleges projekt. Egy másik csomag az API-k, hogy én megyek át a CS50 API. Hadd Nagyításhoz ide. CS50 ténylegesen össze egy sor API-k amelyek segítségével a végleges projekt, vagy csak bármi, amit csinálsz. És ők többnyire Harvard kapcsolódó, és azok eltérnek a Hudson menü például arra, hogy ezt a Harvard Events API, amely segítségével hozzáférhet egy listát különböző események folynak a Harvardon, és az ilyesmit. És így tudjuk kattintson bármelyik ezek egyikét, és kap egy spec rá, ahol Ön képes lesz arra, hogy megtalálják az esetleges API, és az ötlet ez lehetővé teszi, tudod, A, konkrétan mit kér az API és hogyan kell ezt kérik. Más szóval, ha azt akarom, hogy minden esemény zajlanak holnap akkor mennem nyilván, hogy ez a dátum, amikor szeretnék egy bizonyos formában, A és B, akkor mondd el, pontosan mit fog, hogy adja vissza nekem. Meg fogja mondani fogok vissza ezt JSON objektumot, vagy mint látod, vannak különböző formátumokban. Azt is vissza az adatokat CSV, például. De tudod, hogy pontosan hogyan, hogy az adatokat fog nézni, ha kap vissza így számíthat arra, hogy bizonyos dolgok vele. Mi lehet lapozzunk lefelé, és látni, például, ha azt akarjuk, hogy a lekérdezés az API , hogy egy naptár, akkor tudjuk használni az adott URL-t és adja meg bizonyos paraméterek, melyek lesznek az adatok, hogy szeretnénk pontosan. És hasonlóképpen, ha azt akarjuk, az adatokat vissza egy bizonyos formában, akkor lehet kérni, hogy a kimeneti adatokat CSV, és ez csak egy paramétert, hogy mi halad az API. Sok jó dolgom van. Azt ajánlom megnézni a CS50 API. Fogom nézni ezt Harvard Food API különösen egy kicsit. Egy dolog, amit ténylegesen tervezett ez a Harvard Noms honlapon, amely felhasználja a CS50 Food API letölteni a Hudson menü a nap. És kiterjesztés iskolai emberek, Hudson az étkezési szolgáltatás a Harvardon. Mit kap az ezen az oldalon, amely tartalmazza az összes étkezést a nap, ezért látjuk ebédre. Van egy pár különböző kategóriákban. Mi van a bab és a teljes kiőrlésű állomás. Mi van a barna rizs állomás. Láthatjuk a brunch van ez a néhány élelmiszer-ipari termékek. Ha kattints rájuk, akkor kap a táplálkozási információkkal. Látod, ez a táplálkozási információkat grapefruit, abban az esetben, ha csak kíváncsi vagy. És így megint megyünk peer a back end itt egy kicsit , és mi pontosan ezt csinál, hogy ezeket az adatokat. És kiderül, hogy valójában nem is nagyon bonyolult egyáltalán. Ez a fájl úgy néz ki, egy kicsit rendetlen, de ne feledjük, hogy ez a kezelés az egész honlap, és ha görgessen látjuk ezt Adatok módosítása funkció. Nos, csak hogy tisztázzuk, ez van írva a CoffeeScript, amely a nyelv, akkor valószínűleg még nem látott. De ez elég olvasható, úgyhogy járni rajta, mintha pszeudokód. Válasszon dátumot egy olyan funkció, hogy fog venni az ezen időpont érték, és ez is fog tartani az első, amit nem érdekel annyira. De a lényeg az, hogy ez a dátum, , és ez az időpont az a nap, szeretnénk kérni az összes élelmiszer tételek. És akkor látni, hogy van egy kis szintaxis itt, amely alapvetően elemzésekor napon át olvasható formátumban. Más szóval, az API használatához szükséges a dátum egy bizonyos formátumban. Nem lehet mondjuk november 16, 2012 AD. Ez nem tudom, mit tegyek vele. Azt kívánja, hogy a dátum egy meghatározott formátumban. Minden, amit csinálunk itt ad pontosan ebben a formátumban, amely egy év értéket, majd egy kötőjelet, egy hónap érték, egy kötőjel és a dátum értékét. És mi is azt akarjuk, hogy az adat kimenet JSON. Most pedig, hogy ezt AJAX kérést, és ahogy korábban említettem, jQuery van ez szuper hasznos AJAX funkció, amely csak annyit kell tennie, hogy adja meg néhány paramétert le itt, és akkor kapsz vissza, hogy pontosan mit akar. Azt mondod azt, hogy az URL-címet azt akarjuk, hogy menjen ez a CS50 Food API, amit kapott a spec. Azt mondjuk, hogy szeretnénk az adatokat JSON, és hogy fogjuk, hogy ez az adat, amely általunk definiált itt. Ez az a nap, amikor szeretné, hogy az élelmiszer-ipari termékek számára. És akkor minden, amit meg kell tennie, hogy meghatározza valamilyen siker funkció, ami tulajdonképpen mi történik, ha az API visszatér az adatokat. Más szóval, most már csomagolt fel minden paraméter azt akarjuk, amely ebben az esetben az a nap, hogy azt akarjuk, és az a tény, hogy azt akarjuk, hogy a JSON, és küldtünk ki az API, így most az API azt mondja, oké, itt az adatokat, kaptam vissza az Ön számára. Megvan a siker funkció, ami azt jelenti, tekintettel arra, hogy az API sikeresen visszatér néhány adat, mit csináljunk vele? És kiderül, hogy minden, amit tennie, hogy hívja ezt a frissítést menüfunkcióba azzal, amit az API visszatért, így tudjuk keresni, hogy a és látom, hogy minden, amit csinálunk használ egy csomó új szintaxis itt hogy frissítse a HTML és helyezze az új adatokat. Mi ez lehetővé teszi, hogy az, hogy mi ezeket nyilak mindkét oldalon, és mi lehet kattintani, és most keresünk az adatokat a következő nap, és újra a következő napon, és minden alkalommal ez frissítése említett időpont értéket és lekérdezésére az API, kapok vissza, néhány adat, és üzembe helyezése a helyszínen. Ismét láthatjuk, szuper, szuper hasznos. Ez app elvitt néhány órát, hogy csapkod össze, és én egy kicsit több tapasztalattal, természetesen, de a CS50 projekt végső nézd valami nagyon, mint ez. API Szuper erő a mennyiségű erőfeszítést, hogy figyelembe. Az utolsó dolog, amit megyek át egy néhány API tág. Nem leszek, amennyire beléjük amennyiben mit csinálnak pontosan, de adok Önnek egy ötlet, hogy mi van odakint. 2 nagyon hasznos is, ha érdekel az adatok elemzése és vizualizáció vagy ilyesmi, amelyek Freebase és a Wikipedia. Wikipedia-feltehetőleg mindannyian tudjátok, egy ingyenes online enciklopédia, és ez valójában egy API, így ha azt szeretnénk, hogy, például, kap minden a szövegek és a cikkek polip akkor nagyon könnyen csinálni. Csak mondd hé, Wikipedia API, szeretném az adatokat vissza, mint ez, és azt szeretném, hogy ebben a formátumban, és a cikket szeretném a polip, és nagyon hamar meg fog adni vissza ezt az információt. Ez lehet igazán hasznos, ha azt szeretnénk, hogy valamiféle Szótár ez egy jobb nézőt a Wikipedia, vagy valami ilyesmi. Freebase egyfajta hasonló, bár ez egy kicsit nehezebb, mint amennyire API. Freebase olyan, mint a Wikipedia, hogy ez egy online enciklopédia amely sok-sok különböző adatokat mindenféle különböző témák, de ez tárolt relációs adatbázis, amely némileg eltér Wikipedia. Wikipedia a tárgyak és tárgyak kapcsolódnak egyéb cikkek, de a legtöbb, ha az adatokat polip, megy a polip cikket, hogy az adatok, és van egy csomó szöveg mintegy polipok, így ez nagyszerű. Freebase dolgozik egy kicsit bonyolultabb módon, hogy a minden kapcsolódik egy másik. Más szóval, ha keresik octopus akkor van egy csomó kategória társul hozzá. Például, egy állat, él víz alatt, van egy bizonyos testhőmérséklet. Nem tudom. És mindezen kategóriák linkeket más helyeken, ahol lehet menni látni a dolgokat, hogy ugyanebben a kategóriában. Más szóval, a polip adathalmaz tartalmazna egy linket a megadott adatok az összes állatot, és ez hadd mozoghatunk az adatbázis nagyon gyorsan. Ez nagyon hasznos lehet, ha csinálsz valami hasonló összehasonlításokat. Más szóval, mivel egy bizonyos dolog, szeretné látni mi más ez kapcsolatban, és mi mást ez nem kapcsolódik. Ez a fajta dolog. Ez hasznos lehet számos módon. Ha keres nagyobb kihívást jelent, és ahhoz, hogy meg néhány bonyolultabb dolgot Én úgy vesz egy pillantást a Freebase API. De nagyrészt, Wikipedia egy nagyon egyszerű hely, hogy menjen, amennyire csak egyre információt. Egy másik helyen, hogy fogom nézni a Last.fm, és én tényleg megyek a helyszínre abban az esetben, néhány ember nem ismeri, de a Last.fm alapvetően egy zenei ízek és ajánlásokat honlapján. Tudod, hogy egy fiókot. Kezdje feltöltés zenét a zenelejátszó a honlap, és alapvetően kezd így zenét ajánlások alapján, amit hallgatni. Például, ha megy, hogy a profil oldalon, ez az enyém, láthatjuk, hogy van egy a legutóbb hallgatott zeneszámokat. Láthatjuk összesített kedvenc művészek, minden ilyesmi, és újra, van egy nagy API mögött Last.fm,  és tudod használni, hogy nem sok-sok nagyon jó dolog. Például, elmegyek egy ismerősnek oldalára, aki ezt a Last.fm Tools weboldalon. Ez valójában egy platform, ami épült Last.fm API, és ez egy sor nagyon érdekes dolgokat. Ha jelentkezzen be a felhasználói nevemet, például Tudom kérik, hogy létrehoz egy tag felhő, például, és hogy mit fog csinálni az add vissza a képet a a különböző műfajok és a fajta dolog, hogy szeretem hallgatni. Hogyan csinálja ezt? Nagyon alapvetően azt mondja, hogy a Last.fm API itt a felhasználótól. Szeretném tudni, hogy a műfaj minden dal, amit valaha hallgattam, és meg tudod csinálni, hogy azáltal, hogy egy nagyon egyszerű AJAX hívást a Last.fm API. Kapsz vissza egy nagy listát, és akkor nyilván néhány más dolgot tesznek hogy átalakítsuk azt egy szót felhő, de láthatjuk összesített nagyon könnyen megközelíthető, és nagyon könnyen használható. Tényleg szép egy sor dolgot. Azt hiszem, ez az összes azt mondom összességében. Még egy utolsó dolog fogok említeni mintegy API általában az, hogy a akkor néha befut valami úgynevezett sebességkorlátozást, valamint azt az elképzelést, sebességmeghatározó ez nem akarsz visszaélni API. Más szóval, ez tényleg jó, hogy sok ilyen weboldalak API-k hogy mehetsz és használata ingyenes. Azonban, ha így több millió vagy milliárd kérelmek naponta, Például, ha elakad egy végtelen ciklusba, ami végtelenül lekérdezése valamilyen API-és kapok vissza a hatalmas mennyiségű adat, Nyilvánvaló, hogy ez nem jó, akkor mi van a sok API tennie, hogy ezt az arányt korlátozó funkció hogy azt mondja, csak akkor tudjuk, hogy 1000 kéréseket naponta IP-címét, vagy valami ilyesmi. És ha csinálsz egy csomó vizsgálatok és az ilyesmit, akkor néha befut, hogy, és hirtelen leáll leszopott és azt mondják, nem, én nem így többé adatokat. Mit akarok a játszani a szabályokat. Azt szeretnénk, hogy győződjön meg arról, hogy olvassa el az API spec figyelmesen. Ha van egyes szabályok társulnak hozzá, mint te csak akkor tud X lekérdezések naponta vagy akár csak a hozzáférést egy az adatbázis egy részének egy bizonyos számú alkalommal vagy valami ilyesmi, azt szeretnénk, hogy győződjön meg róla, hogy tapadnak. Mindaddig, amíg játszani az említett szabályokat, akkor valószínűleg egy nagyon szép időt API-k. A teljes elvihető API nagyon, nagyon hasznos. Van egy API-t szinte minden nagyobb webes szolgáltatás odakint. Elég sok olyan része a Google Tools Suite, a Google Maps, a Google Earth, Gmail, a Google Naptár, mindezen dolgok API. Használhatod őket, hogy mind a ketten az adatokat a szerver és adatokat küldeni a szerverre. Más szóval, ha akarod, hogy egy naptár alkalmazás, amely lehet frissíteni valakinek a Google Calendar, van egy API-e. Ha azt szeretnénk, hogy győződjön meg valamit, ami fogja mondani, hogy hol a helyét egy bizonyos cím akkor használja a Google Maps API-e. API fantasztikusan hasznos, és ők mindenütt. Ha érdekel valami ötlet, ott talán egy kapcsolódó API segítségével kap egy csomó adat nagyon gyorsan és nagyon egyszerűen. Ha még mindig keres egy projekt, vagy ha egyszerűen csak szeretne játszani körül valami általában API érdemes csinál. Köszönöm, és örülök, hogy válaszoljon a kérdésekre, hogy ti esetleg. Oké, köszi. [CS50.TV]