[Powered by Google Translate] [Seminar] [API A Programmer-in Giriş] [Billy Janitsch] [Harvard Universiteti] [Tommy MacWilliam] [Bu CS50 edir.] [CS50.TV] Salam, hər kəs, mən Billy oldum və mən bu gün, API söhbət etmək gedirəm və ya proqram proqramlaşdırma interfeys, xüsusi CS50 son layihələr kontekstində şey ki, sort edir. Ümumiyyətlə hansı bir API? Çox geniş baxımından, bu, 2 ədəd imkan verir ki, bir orta insan növ var proqram bir-biri ilə ünsiyyət. Bu çox geniş müəyyən bir növ və biz aradığınız nə üçün müvafiq deyil. Biz həqiqətən istəyirik faydalı orta torpaq bəzi növ haradasa bazası bir növ ünsiyyət. Burada bir chart, və əsasən fikir biz ərizə və biz bir verilənlər bazası məlumat almaq istəyirəm lakin biz birbaşa verilənlər bazası sorğu istəmirəm. Əvəzində biz orta insan, API bu cür ilə getmək istəyirəm. Ki, arxasında ideyası chart ədəd 2 və 3 həm çox çətin və messy olacaq. Başqa sözlə, API bazası querying zaman, yəqin ki, SQL masalar və stuff ki, növ bütün istifadə edəcək və biz, ümumi CS50 bu barədə bir az öyrəndim, lakin sonra Bir ağrı bir az var fark etdik. Siz edirik xüsusilə zaman ki, çox, çox mürəkkəb və messy alır kompleks sorğu və şey ki, sort. Biz həqiqətən istəyirik faydalı və sadə yolla bir növ edir ki, məlumat almaq və chart haqqında ədəd 1 və 4 arxasında fikir üçün. Başqa sözlə, bizim üçün nə üçün API demək həqiqətən sadə şəkildə istədiyiniz və geri ki, məlumat almaq üçün həqiqətən sadə yolu. Məlumatlar adətən göndərilən və qəbul edir ki, əsas yol var JSON və ya JavaScript Obyekt Notation olan. Bu qədər siz API üçün sorğu göndərmək necə bir az fərqli ola bilər. Başqa sözlə, siz data bəzi müəyyən istəyirsinizsə, necə ki, data bir az fərqli ola bilər almaq üçün API demək. Adətən şəbəkə tələbi bir növ edilməsi daxildir. Başqa sözlə, URL bir növ daxil API demək olacaq ki, istədiyiniz, amma data demək olar ki, həmişə geri göndərilir dəqiq nə başqa sözlə, JSON sayı 4. JSON nə dəqiq deyil? Mən JavaScript Obyekt Notation etdi. Bu əsasən data ötürücü və qəbul üçün universal standart var. Ideyası şeyi bu 3 kateqoriyalar var. Siz diziler, hashmaps və primitives var. Siz CS50 bir az baxdı sonra Diziler və hashmaps, lakin növ onlar nə çox ciddi mənada kazanılmış etdik. Başqa sözlə, diziler ilə, onlar bound yazın olduğunuz bilirik ki, belə ki, yalnız bütün array ərzində gedir növü bir növ var. JSON şey ki, sort ilə daha çox yumşaq edir. Əsasən fikir, bu obyekt tikintisi edir Bu 3 şeyi heç ibarət ola bilər və onlara çox olanlar ibarət ola bilər və onlar iç içə bilər. JSON bir nümunə İşdə sort ki, burada bu buruq Mötərizədə sizin hashmap təmsil edir və hashmap əsasən əsas bir növ bir harita edir dəyər bir növ edir. Siz, biz xassələri əsas var ki, burada görürsünüz və bir sıra üzərində təsvir edir, bu bütün şey. Biz bu əsas isAwesome olan hashmap bir element, bax başqa sözlə gerçək bir ibtidai dəyəri xəritələr, bir boolean. Primitives strings ola bilər. Onlar integers ola bilər. Onlar belə bir şey bools ola bilər. Və siz, xassələri xal bu 2 strings var ki, bu serialın məzmunu bax öz-özünə oxşar və gözəl. Bu JSON 2 xassələri və biz JSON zəhmli görürük. Ki, baxmaq üçün bir az daha yaxından mən tikintisi gedirəm burada JSON daha kompleks nümunəsidir. Nin, məsələn, bir sıra yalnız bir boş sıra başlamaq edək. Lakin qazma növ, buna görə biz, bir az onu doldurmaq olacaq Dediyim kimi, JSON-ci diziler, bound yazın olunur biz də, hi ki, burada bir simli ola bilər və ki, serialın bir element var. Və beləcə, bir neçə mappings var gedir ki, burada bir hashmapping əlavə edə bilər. Bu adı simli Billy bir mapping etmək olacaq. Biz adı Billy bir mapping var və biz bir harita var mavi üçün sevimli rəngi. Bu əsasən JSON yaxşı bir misal var. Bu cür içinə-whoops, bu, müxtəlif hissələrinin orada bütün bir vergül ehtiyac olur. Yenə, bu, bütün bağlı yazın deyil, belə ki, hər hansı növ ola bilər bir şey içərisində istədiyiniz və ideya o özünü oxşar edir. Başqa sözlə, burada bu hüququ bu bütün şey kimi, bir JSON obyekt, bu kimi, belə ki, bir ibtidai obyekti ola ola bilər bir sıra obyekt və ya bir hashmap obyekti ola bilər. Gördüyünüz növ kimi, JSON belə çox var ki, həqiqətən, həqiqətən faydalıdır. Siz JSON saxlanılır təsəvvür edə bilər ki, hər hansı mümkün data ola bilər. Bu API istifadə etmək üçün, həqiqətən, gözəl dil edir ki, olduqca çox olursa, istədiyiniz nə data o deməkdir ki, çünki JSON onu geri almaq üçün bir yol var olacaq. Şey bu cür JSON xüsusilə yaxşı ki, bir neçə xüsusiyyətləri. Gördüyünüz kimi, CS50 ilə iş etdik ki, çox şey müqayisədə bu da yazmaq çox asan oxumaq və nisbətən çox asandır. Əgər siz edirəm ki, nümunə edirdi kimi Siz, onu indent bilər siz həqiqətən də görmək olar ki, bir gözəl, yaraşıqlı version verir. Ancaq bundan başqa, bir kompüter üçün oxumaq və yazmaq üçün də asandır. Başqa sözlə, bu, kodlamak üçün analiz etmək üçün asan və asan ki, bu qədər narahat data oxu kimi olduqca sürətli deməkdir ki, və JSON həqiqətən tez generated bilər. Müxtəlif JSON hissələri və şey ki, sort daxil olmaq üçün də çox asandır. Bu gözəl, və bundan başqa, o, özünü oxşar ki, başqa sözlə, siz JSON ərzində JSON ərzində JSON ola bilər ki, data saxlanılması üçün həqiqətən gözəldir. API ilə iş ümumiyyətlə həqiqətən faydalı olduğunu bir hissəsi jQuery edir. Siz JavaScript bir az öyrəndim, bir gözəl yolu bir web ərzində HTML və CSS manipulyasiya. Lakin bu cür düz JavaScript kodu bir ağrı ola bilər JavaScript həqiqətən verbose dil əsasən, çünki. Siz sintaksis bir çox öyrənmək üçün, və yalnız çox sadə şeyə bu kodu alır, belə ki, jQuery JavaScript üçün kitabxana edir. Başqa sözlə, bu yük edə bilər ki, bir JavaScript faylı var və sonra müəyyən şeyə jQuery funksiyaları istifadə edin. Və jQuery əsasən həyat bütövlükdə çox asan edir. Bu jQuery bir neçə xətləri JavaScript xətləri yüzlərlə yazmaq nə asanlaşdırır. Çünki adətən API kullanıyorsanız, xüsusilə faydalıdır API'ler daxil olacaq necə, AJAX sorğu edilməsi ilə və mən David mühazirə qeyd etdi inanıram ki, AJAX sorğu siz server bir növ bir şəbəkə xahiş edirik zaman ümumiyyətlə və məlumat bir növ geri almaq və dərhal bir səhifə yenilənməsi. Düz JavaScript xətlərinin crazy nömrələri edəcək alaraq başlıqlarını bütün doğrulamak və stuff ki, növ bütün etmək, jQuery, AJAX adlı həqiqətən sadə funksiyası var və AJAX etmək bütün, siz API vermək istədiyiniz parametrləri vermək deyil API yeri və konfiqurasiya etmək istəyirəm ki, variantlardan heç bir əlavə sort. Bu şey bu cür həqiqətən, həqiqətən gözəl və çox yararlıdır. Yəni biz API bizim əlləri çirkin almaq başlamaq üçün lazım olan bütün var. Mən bir neçə nümunə yetişdirmək və onların müxtəlif xassələri tədqiq gedirəm və nə onlar müxtəlif şeylər üçün faydalı istəyirik. Mən, həqiqətən, sizə göstərmək lazımdır ilk şey mən çalışıram ki, bir şey mənim tədqiqat laboratoriyasında olan, bir Ngram Viewer edir və əsasən bir Ngram Viewer ideyası siz söz bir növ üçün axtarış edə bilərsiniz və ya söz və zamanla mətn müəyyən ortaya necə tez-tez görürük. Burada Bu, misal körpələrin Bu data sıra ki, 1920-ci və 2000-ci arasında Nyu-Yorkda doğulub. Biz, adı Jennifer üçün, misal üçün, axtarış edə bilərsiniz və biz, həqiqətən, bütün çox istifadə edilmişdir pre-1960-cı illərdə görmək və sonra biz onu daha çox istifadə olmaq oldu sonrakı illərdə nəzərə almaq kimi. Biz Jennifer müqayisə əgər biz də, misal üçün, belə, Tomas müqayisə edə bilərsiniz biz, Tomas tarix boyu olduqca geniş yayılmış olmuşdur bilərsiniz Jennifer isə daha yeni bir ad. Biz şey bu cür edə bilər. Bu necə tətbiq çalışır? Əsasən, bu API vasitəsilə işləyir. Yəni, biz burada müəyyən parametrləri var. Biz, həqiqətən, aradığınız nə parametrləri var , bu adları, və sonra bir neçə digər xüsusiyyətləri Y ox və X ox kimi. Siz uzaq kimi biz bir neçə müxtəlif variantları bilərsiniz vaxt istifadə qətnamə və şey ki, sort. Biz qədər biz əslində bazası istədiyiniz data kimi variantları var və biz geri faydalı şəkildə məlumat almaq istəyirəm. Biz bazasında querying, əgər bunu bir ağrı ola və adətən, birbaşa sort olacaq körpə adları haqqında ehtimalla bu məlumatlar, haradasa bir verilənlər bazası yaşayır çünki və həqiqətən özünüz sorğu etmək çətin olacaq və data qayıtmaq üçün nə dəqiq qərar. Başqa sözlə, biz yalnız bu halda Jennifer və Tomas qayğı və biz yalnız müəyyən bir ox və stuff ki, sort bütün qayğı. Biz bu ətrafında alıram? Bir az daha bu API qazmaq üçün Mən sizə bu platforma bir nümunə göstərmək lazımdır bir az fərqli data set istifadə edir. Bu data set yerinə körpə adları olan, yalnız faktiki olaraq bütün deyil Açıq Kitabxana dərc bazası çap olan son 100 və ya il ərzində nəşr mətnləri nəhəng bir mənbəyidir. Ideyası biz, milyonlarla və mətn milyonlarla bu compository var İndi da müxtəlif söz və söz üçün axtarış edə bilərsiniz Burada bir az fərqli əvvəlki Məsələn dəyişir misal var Ki, biz bu 3 axtarış sualınız olan siz göstərdi müharibə, müharibə və guerre olan müharibə üçün Fransız söz. Və biz ümumi məlumat bazasının 3 müxtəlif bölmələrdə axtarış edirik. Başqa sözlə, bu ilk sorğu biz yalnız ABŞ-da aradığınız yalnız Böyük Britaniyada ikinci, yalnız və yalnız Fransada nəşr işləri üçüncü. Biz bəzi maraqlı nümunələri ortaya baxın. Məsələn, sağ ətrafında burada olan- oops, mən ox bir az qədər messed, lakin burada doğru bu intervalında bilərsiniz Vətəndaş müharibəsi ətrafında Amerika sayında böyük sünbül var lakin belə bir böyük, digər iki sünbül və açıq-aydın, çünki Amerika Vətəndaş müharibəsi o nöqtədə baş edilib. Biz, bəzi cool stuff bilərsiniz lakin nə biz, həqiqətən, qayğı bu verileri var necə. Bir az bu app pərdə arxasında aparacağıq. A səliqəli oyun Saytda və növ çalışırıq əgər bilmək istəyirəm pərdə arxasında neler, siz geliştirici alətləri açmaq olar. Mən Chrome-nin Developer Tools istifadə gedirəm və bu almaq siz kontrol, shift, J, və JavaScript konsol götürür edə bilərsiniz. Burada bir neçə sekmeleri var. Onlar müxtəlif şərtlər altında olduqca faydalı ola bilər, ancaq şəbəkə qayğı nişanı indi, mən həqiqətən ki, iş almaq üçün yenilemek üçün var. Oh, sorry. Bu təsadüfi nümunə vermək bəyənir. OK, biz əvəzinə bu misal istifadə edəcəyik. Bu fikir, bu API burada var olduğunu və API qaytarılması dəqiq nə edə bilərsiniz. Bu proqram sorğu göndərib edən API nə geri almaq edilir. Mənə bir az zoom edək və biz əsasən yalnız JSON əsas dəyər cüt bir sıra var edə bilərsiniz. Başqa sözlə, biz dəyərlər Xəritəçəkmə ki, burada bu hashmap var. Başqa sözlə, bu dəyərlərə il Xəritəçəkmə edir. 1765-ci ildə biz ilk axtarış nə sözü 90 dəfə istifadə olunur 1 milyon həyata, belə ki, biz bu nəticə geri alırıq. Biz burada bu kiçik nəticə mövzu var, çünki, məhz JSON deyil burada bu bütün obyekt yalnız bir böyük böyük JSON damcı olduğunu lakin bildiriş. Biz bu bütün element olan burada bir sıra var və siz bütün element orada bitir görürəm ki, sonra biz böyük bir element yoxdur ki, sonuna bütün yol aşağı düşür və burada bitir. Biz, bu 2 obyektləri ilə həqiqətən böyük array var və həmin obyektlərin hər bir hashmap edir. Siz bir harita var o hashmaps hər biri bilərsiniz bu göstərici 0 dəyəri və başqa hashmap bu dəyər dəyərinin, yenidən Y ox dəyərlərə X ox dəyərləri əks olunur. Siz, JSON ümumi mürəkkəb bir az olur, lakin bilərsiniz həqiqətən çox faydalıdır və bu, nisbətən daxil olmaq üçün çox asandır notation digər müxtəlif formaları. Bizdə həqiqətən almaq üçün API data gönderiyorsanız nə kimi, Mən bir az burada geri sonuna getmək üçün gedirəm. Bu web app qarşılıqlı bütün idarə ki, böyük JavaScript fayl və biz bu ən barədə qayğı yoxdur, ancaq bəzi qayğı yoxdur. Məsələn, biz bu buildQuery funksiyası qayğı və bu funksiya ideyasının, bu səhifə ətrafında axtarır əsasən istifadəçi, başqa sözlə, sorğu istəyir nə həyata figuring, onlar giriş onların axtarış sözü var olduğu qutuları yoxlanılması, müxtəlif Y və onlar seçilmiş və şey ki, növ bütün etdik ki, X ox dəyərlər yoxlanılması, və mən sonra API off göndərə bilərsiniz bu sorğu dəyəri, tüpürmək olacaq. Bu mürəkkəb görünür və bu, olduqca mürəkkəbdir amma-in yoxdur ki, mən artıq bu yapýyorum gedirəm, nə böyük-dir Mən tam olaraq bu sorğu dəyər çap Konsol almaq üçün gidiyorum ki, bu API off göndərilməsi ki. Yəni burada həqiqətən var. Bağışlayın, bu, çox şey nəticələri. Ancaq bu burada, biz qayğı nə bu obyekt. Bu sorğu obyektidir. Başqa sözlə, bu, web proqram API göndərilməsi dəqiq nə və s-nin bir az daxili baxaq, və biz burada bir neçə dəyərləri var bax. Biz milyon sözlə hər hadisələr olan, bu sayı növü görmək olan biz burada Y oxu seçdiyiniz məhz budur. Ki, gələn var harada. Biz müəyyən məlumat bazası var deməkdir bazası dəyəri var Bu data yaşayan və biz xüsusi məlumatların daxil olmaq üçün istədiyiniz Məsələn üçün körpə adları data fərqli. Sonra bu qruplar dəyəri biz fərqli olaraq il axtarmaq istəyirsinizsə ki, hansı hər hansı digər X ox dəyər. Sonra bir metodu, bir API çox şeyi edəcək. Başqa sözlə, bu API, həmçinin digər növ məlumat, qayıda bilər lakin bu halda, biz Y ox dəyərlərə X ox dəyərlər ki, birdən istəyirəm. Yəni ki, nə bu danışanlardan nə və biz 2 dəyərləri olan bu axtarış məhdudiyyətlər sıra var. Birincisi biz burada görmək nə, hansı dəyərlərin bütün başında ilk kiçik qutu içində. Başqa sözlə, biz sözü döyüş üçün baxmaq istəyirəm, və biz bu filtrelemek istəyirsinizsə Amerika ədəbiyyatı ərzində ingilis mətnləri ilə. Biz USA olan bu ölkə var. Biz ingilis olan bir dil var, belə ki, biz bu müxtəlif yerlərində bütün bütün biz istəyirik nə API izah olunur. Biz geri almaq data hələ bilmirəm ancaq data müəyyən forma almaq üçün gedir ki, bilirik. Bu, məsələn, mürəkkəb tərəfində sort edir və siz mütləq bir API bu kompleks istifadə edilə bilməz lakin bu API'ler nə edə çeşidi və güc göstərməkdir. Yəni, nisbətən sadə sorğu sistemi istifadə edərək biz əsasən bir giriş qutusuna var müxtəlif yerlərdə bir neçə digər seçiciler ilə. Mənə burada geri kiçiltmək edək. Biz bir neçə müxtəlif metadata Marka ilə giriş qutusuna var və biz Y ox və X ox Marka var. Biz həqiqətən ki, bir çox sahələrdə yoxdur və biz API bir növ sorğu edirik çox asanlıqla görə bilərsiniz və geri məlumat almaq və bu chart onu qoymaq daha sonra bir faydalı şəkildə keçirmək üçün gedir. Uşaqlar üçün bir az daha yaxından tanış ola bilər ki, başqa bir misal baxmaq biz Facebook çevirmək olacaq. Facebook API, Facebook Qrafik adlanır və əsasən o deməkdir ki, nə Facebook bu veritabanını kimi görür ki, bütün bir-birinə müəyyən münasibətlər var ki, müxtəlif hissələri lot. Yəni, mən Facebook bir istifadəçi deyiləm, mən profil var və mən də müəyyən dostları var və onların hər bir profil var və dostlarım hər müxtəlif şərhlər olan divar var və bu şərhlər hər sevir və bir şey ki, sort bütün var. Facebook müxtəlif yerlərində çox var. Bu, bir natarazcasına kompleks API, və siz onu ilə edə bilərsiniz ton var lakin istifadə etmək əslində olduqca sadə. Mən graph.facebook.com / billyjanitsch gedərək həyata başlamaq gedirəm mənim unikal hesab adı və hesabı adı da olacaq söz bir növ siz seçdiyiniz halda, və ya yalnız ədəd bir simli ola bilər. Biz geri almaq olduqca əsas məlumat. Biz Billy, Janitsch bir adı, bir adı var ki, bax. Mən, bir Facebook ID var. Mən kişi deyiləm ki, mən dil qəbulu var bilər British İngilis dili. Yəni, biz burada çox əsas məlumat görüyorsunuz. Bu, çox deyil, lakin bu, bizim orada nə bir fikir vermək yoxdur. Biz məsələn, David Malan üçün eyni şey edə bilərsiniz. Mən onun adını dmalan olduğunu düşünürəm. Biz Davuda Malan unikal ID var bax. O, soyadı, adı, atasının adı, soyadı var. Biz də o kişi və ABŞ İngilis, onun dil dəsti var ki, bax. Yəni, biz burada olduqca əsas məlumat görüyorsunuz. Biz başqa bir şey kontrol cəhd əgər İndi, nə olar? Gəlin mən David Malan Facebook bəyəndim nə maraqlı deyiləm deyirlər. I / sevir edə bilərsiniz. İndi biz bir problem daxil etdik. Biz çıxış mö'cüzə deyir ki, səhv bir növ var Bu vəsaitin tələb etmək tələb olunur. Bu barədə düşünmək, bu qəribə olardı, çünki Lakin, əslində mənada edir Facebook verilənlər bazası hər bir hissəsi daxil ola bilər yalnız sadə API bir növ ki, sağ? Başqa sözlə, ehtimalla sizin məlumat istəyən hər kəs tərəfindən istifadə edilə bilməz. Bu səhv o deməkdir ki, nə dəqiq deyil. Bəzi API onların məlumat əldə etmək üçün müəyyən icazələrin tələb edir. Facebook kimi və daha çox inkişaf etmiş API, müəyyən icazələrin müəyyən şeyə tələb edəcək. Mən David Malan haqqında əsas məlumat görə bilərsiniz. Mən, o kişi ki, o, ABŞ-da yaşayan bilərsiniz amma həqiqətən keçmiş bir şey görmək mümkün deyil. İndi bu ətrafında almaq üçün, Facebook bu gözəl alət var olan graph API explorer, və ki, fikir sizin sort bilər öz haqq-hesab əsasında özünüz üçün icazələrin etmək və sonra xüsusi hesabı bilərsiniz şeyi bilərsiniz. Məsələn, əgər graph.facebook.com/billyjanitsch/likes- whoops, mən burada mənim simge revalidate var danışarlar. Okay. Mən bunu varsa, indi mən geri bu obyekt almaq böyük görmək I kateqoriya Oyunlar və Oyuncaqlar olan hovuz əriştə, istəyirəm ki, deyir. Mən kateqoriya Animal olan walruses kimi. Bunlar mənim faktiki Facebook likes var. Onlar utancaq cür edirik. Amma biz bu data bütün JSON-ci ildə geri bilərsiniz. Bu olduqca oxunaqlı deyil. Başqa sözlə, biz, bir sıra bir növ məlumatların bu mapping var və bu serialın hər element eşler bir hashmap edir bir kimi adı və bir kimi kateqoriyası ilə. Hər kimi unikal ID var. Biz əldə edə bilərsiniz ki, məlumatların müxtəlif şeyi bütün növ var və bir CS50 yekun layihə üçün Facebook API istifadə ilgileniyorsanız və ya bir şey üçün həqiqətən çox doable ki kimi. Əsasən siz identifikasiyası şey ətrafında almaq necə Facebook edir bir OAuth adlı sistem, və ya Open Authentication istifadə edir və mən OAuth və ya müxtəlif tipli çünki indi onu almaq istəmirəm identifikasiyası və müxtəlif API arasında bir çox fərqli çalışır Mən hər bir üzərində gedən uzun vaxt sərf edə bilər lakin onlar həqiqətən olduqca özünü izahlı istəyirik. Google Facebook API Əgər çox oxunaqlı deyil. Bütün spec var. Məsələn, bu, Facebook API üçün sənədləşdirmə edir və mən User səhifə Ben bilərsiniz, belə ki, mən hər şeyi müxtəlif növləri haqqında məlumat əldə edə bilərsiniz qədər məlumat almaq üçün mövcud olan və həmçinin Mən onlara daxil olmaq üçün müxtəlif icazə lazımdır. Gördük ki, biz, adı və ya gender olmaq üçün icazələrin ehtiyac yoxdur lakin kənarda biz çox şey üçün icazələri lazımdır. Bu səhifə, daha doğrusu, bu veb də necə almaq sizə xəbər verəcəkdir özünüzü kimlik etmək üçün bir mö'cüzə. Ən autentifikasiya sisteminin simge bir növ istifadə Bu unikal dəyəri olan həqiqətən uzun və təsadüfi string ki, aldığı və bu yolla onlar sizinlə edirik ki, sorğu şərik bilər. Başqa sözlə, onlar öz məlumatları ilə şübhəli bir şey məşğul deyilik bilirik. Onlar əldə etdiyiniz dəqiq bilirik. Ayrıca məlumat keçirmək üçün icazə var. Etdiyiniz Əgər Facebook app və app müəyyən istifadəçisi var və bu istifadəçilər, app, onların profil müəyyən hissələri daxil etmək üçün imkan sonra nə API açarı və ya app istifadə ki mö'cüzə o istifadəçilər üçün məlumat əldə edə biləcəklər. Bu mürəkkəb səs bilər, lakin çox pis deyil Əgər Facebook istifadə etmək istəyirsinizsə, və yüksək gəlir ki, siz onların API ilə ətrafında oynayan hesab edir. Bu, çox sərin var, siz müxtəlif çox şey edə bilərsiniz. Istifadəçi bu icazələri verir Əgər belə API geri bilər və mən həqiqətən bu istifadəçi divar yazı istəyirəm, və ya mən onlara bir fotoşəkil göndərmək olsun ki, Sizin news feed sizi bəzən o annoying şeyi almaq lazımdır niyə və ki Dostuna qəribə site və ya kimi bir şey bir növ bu video seyr etmişdir etdi. Ki, app ki, şəxsin divar yazmaq üçün giriş verilmiş olmasıdır. Ideyası ümumilikdə Facebook API olduqca mürəkkəbdir, həm də həqiqətən faydalı. Əlbəttə siz hələ yekun layihə üçün arıyorsanız həyata yoxlanılması dəyər. Mən artıq getmək gedirəm ki, API bir suite CS50 API edir. Mənə burada zoom edək. CS50 həqiqətən API bir sıra birlikdə verilib bir yekun layihə üçün və ya sadəcə edirik ki, bir şey üçün istifadə edə bilərsiniz ki. Və onlar əsasən Harvard əlaqədar istəyirik, və onlar HUDS menyusundan fərqli Məsələn, bu Harvard Hadisələr API üçün, sizə bir siyahısına daxil imkan müxtəlif Harvard gedir ki, hadisələr və şeyi ki, sort. Və biz, bu hər hansı bir basın və bir spec əldə edə bilərsiniz Əgər hər hansı bir API tapa bilərsiniz və fikir olan siz bilirsiniz imkan verir, A, xüsusilə nə API tələb etmək və necə tələb etmək. Başqa sözlə, mən sabah olur ki, bütün hadisələr istəyirsinizsə sonra, açıq-aydın bir müəyyən formatda istəyirəm ki, tarix vermək var və B, onu mənə geri vermək olacaq dəqiq nə mənə olacaq. Mən bu JSON obyekt qayıtmaq üçün gedirəm deyəcəklər Gördüyünüz və ya kimi, müxtəlif formatları var. Siz də, misal üçün, bir CSV kimi məlumatlar ola bilər. Amma siz ki, data siz geri almaq zaman baxmaq niyyətindədir dəqiq necə belə ki, bu, müəyyən şeylər edə bilərsiniz. Biz API sorğu istəyirsinizsə Biz aşağı diyirləyin və misal üçün bax bilər təqvim almaq üçün, biz bu URL istifadə edə bilərsiniz və biz məhz istədiyiniz data olacaq müəyyən parametrləri verir. Və beləcə, biz geri müəyyən formatda data istəyirsinizsə, sonra biz bir CSV data çıxış üçün xahiş edə bilər və biz API keçən olduğunuz başqa bir parametr var. Orada nə sərin şeyi çox. Mən mütləq CS50 API həyata yoxlanılması məsləhətdir. Mən bir az xüsusilə bu Harvard Qida API baxmaq gedirəm. Mən, həqiqətən, tasarladık bir şey, bu Harvard Noms haqqinda olan gün üçün HUDS menyu almaq üçün CS50 Qida API istifadə edir. Və məsləhət məktəb insanlar üçün HUDS Harvard yemək xidmət edir. Nə almaq biz nahar bax gün üçün yemək bütün olan bu səhifə. Biz bir neçə müxtəlif kateqoriyalar var. Biz lobya və bütün taxıl stansiyası var. Biz qəhvəyi düyü stansiyası var. Biz bu neçə ərzaq məhsulları var batch üçün bilərsiniz. Biz onlara basın, onda biz qidalanma məlumat almaq. Siz merak edilmiş halda bu, qreypfrut üçün qidalanma məlumat bax. Və yenə də, biz burada bir az geri sonuna daxil PEER olacaq və bu məlumat almaq üçün bunu tam olaraq nə görmək. Və əslində bütün çox mürəkkəb ola çıxır. Bu fayl, bir az messy görünür, lakin bu bütün veb idarə olunur unutmayın və mən aşağı diyirləyin əgər biz bu dəyişikliyi data funksiyası görürük. İndi, aydın olmaq, bu, CoffeeScript yazılır yəqin ki, əvvəl görməmişik bir dil olan. Bu pseudocode sanki Lakin bu, olduqca oxunaqlı deyil, mən onun vasitəsilə gəzmək lazımdır. Change tarixi, bu tarixi dəyəri almaq niyyətində olan bir funksiyası və bu da biz çox qayğı olmayan bir ilk etmək olacaq. Amma əhəmiyyətli olan, bu tarix var ki, və tarix biz üçün ərzaq məhsullarının bütün tələb etmək istəyirəm ki, gün. Və sonra, biz burada sintaksis bir az var bax hansı əsasən oxunaqlı formata ki, tarixi təhlil edilir. Başqa sözlə, API müəyyən formatda tarix tələb edir. Siz yalnız Noyabr 16, 2012 AD deyə bilmərəm. Bu ilə nə deyil. Bu xüsusi formatda tarixi istəyir. Biz burada yapýyorsun bütün, tam ki, format o verir bir il dəyər və sonra bir tire, bir ay dəyər ki, başqa tire və tarixi dəyəri. Və biz də biz data JSON istehsal olmaq istəyirik deyirlər. İndi biz bu AJAX xahiş edirik, və bayaq qeyd etdiyim kimi jQuery siz bütün daxil olan bu super faydalı AJAX funksiyası var bir neçə burada parametrləri, və geri tam olaraq istədiyiniz nə verəcək. Biz buna getmək istədiyiniz URL CS50 Qida API ki, izah edirik olan biz spec əldə. Biz JSON və məlumatlar istəyirəm ki, biz biz burada müəyyən etdiyiniz Bu data vermək olacaq. Bu üçün ərzaq istədiyiniz gün. Və sonra biz bütün, uğurlar funksiyası bir növ müəyyən edir olan API məlumatlar qayıtdıqdan nə olur əsasən. Başqa sözlə, biz istəyirik ki, parametrlərin bütün up paketlenmiş sonra Bu halda, biz istəyirik ki, gün və biz JSON onu istəyirəm ki, bu da və biz indi API, tamam deyib, API üçün yola burada data, mən sizin üçün geri var edilir. Biz verilmiş deməkdir uğur funksiyası var ki, API uğurla bəzi data qaytarır, biz nə etməliyəm? Və biz bütün bu yeniləmə menyu funksiyası zəng ki, həyata çevirir API qayıdıb nə ilə, belə ki, axtarış edə bilərsiniz və biz edirik burada yeni sintaksis bir dəstə istifadə etdiyini görmək HTML yeniləmək və bu yeni data daxil. Bu imkan verir, biz hər tərəfdən bu oxlar var, biz basın və indi biz növbəti gün üçün data geçirdiğiniz və yenidən növbəti gün üçün, və hər zaman ki, tarixi dəyər yenilənməsi və API querying oldu Bəzi məlumatlara geri almaq və site onu qoymuşdur. Yine,, super, super faydalı görürük. Bu app birlikdə hack mənə bir neçə saat davam etdi və mən açıq-aydın bir az daha çox təcrübə, ancaq CS50 yekun layihə çox bu kimi bir şey baxa bilərsiniz. API onlar edirlər səy məbləği üçün güclü Super olunur. Mən artıq getmək gedirəm son şey geniş bir neçə API edir. Mən qədər onlar xüsusi nə kimi onlara daxil qədər almaq deyil amma siz orada nə bir fikir vermək lazımdır. 2 həqiqətən faydalı olanlar, siz analiz və ya vizual ilgileniyorsanız və ya kimi bir şey varsa, Freebase və Wikipedia var. Wikipedia-ehtimalla Bildiyiniz-bir pulsuz online ensiklopediya, və həqiqətən, misal üçün, istədiyiniz əgər, bir API var mətnləri bütün ahtapot üçün məqalələr almaq siz çox asanlıqla bunu edə bilər. Just hey ki, Wikipedia API, mən bu kimi geri data istərdim və mən bu formatda bu istərdim, mən istədiyiniz məqalə ahtapot edir və çox tez məlumat geri verəcək. Site bir növ etmək istəyirəm ki, əgər həqiqətən faydalı ola bilər ki, Vikipediya və ya kimi bir şey daha yaxşı görüntüleyici var. O qədər API kimi bir az çətindir, baxmayaraq Freebase, oxşar sortudur. Freebase bir online ensiklopediya var ki, Wikipedia kimi ki, çox və müxtəlif mövzular bütün növləri haqqında müxtəlif məlumatların çox şey lakin bu Wikipedia qədər fərqli olan bir relational verilənlər bazası, saxlanılan var. Vikipediya, digər məmulatlar bağlı öz məqalə və yazılar var lakin çox hissəsi üçün, əgər ahtapot üçün məlumat istəyirəm Siz ahtapot maddə getmək ki, məlumat almaq və siz mətn bir dəstə var octopuses haqqında, böyük ki, belə. Freebase ki, bir az daha mürəkkəb şəkildə işləyir hər şey bir-birinə bağlıdır. Yəni, əgər biz ahtapot aradığınız sonra Bugün kateqoriyalar bir dəstə var. Məsələn, bir heyvan, bu, sualtı yaşayır bir müəyyən bədən istiliyi var. Bilmirəm. Və bu kateqoriyaların bütün getmək bilər başqa yerlərə bağlantılar eyni kateqoriya ilə şeyi görmək. Digər sözlə, ilbizlər data dəsti, bütün heyvanlar üçün müəyyən məlumat üçün bir keçid ola bilər və mənə həqiqətən tez bazası ətrafında hərəkət imkan olardı. Siz müqayisə kimi bir şey edirik, bu çox faydalı ola bilər. Başqa sözlə, müəyyən bir şey verilmiş, siz görmək istəyirəm bununla bağlı və buna bağlı deyil nə oldu. Başqa nə Şey ki, sort. Bu yolla bir sıra faydalı ola bilər. Bir problem daha arıyorsanız və daha mürəkkəb şeyi etmək üçün əgər Mən Freebase API nəzər alaraq hesab edirəm. Amma əsasən Wikipedia qədər məlumat əldə kimi getmək üçün bir çox sadə bir yerdir. Mən baxmaq lazımdır ki, başqa bir yerdə Last.fm və mən həqiqətən site to gedirəm halda, bəzi insanlar tanış olmayan, lakin Last.fm əsasən bir musiqi zövqə və tövsiyələr haqqinda. Siz hesab edə bilər. Siz musiqi oyunçu yükleme musiqi başlaya bilərsiniz saytına və əsasən bu musiqi tövsiyələr verilməsi başlayacaq Sizə qulaq asmaq nə əsaslanır. Sizin profilinize gedin Məsələn, səhifə-bu mina deyil Siz son musiqi dinləyən bir siyahısı var edə bilərsiniz. Siz ümumi sevimli rəssamların şey ki, sort, bütün bilərsiniz və yenə Last.fm arxasında böyük bir API var  və çox və həqiqətən sərin şeyi çox etmək üçün istifadə edə bilərsiniz. Məsələn, mən bu Last.fm Tools veb olan dostunuza səhifə gedəcəyəm. Bu, əslində Last.fm API inşa ki, bir platforma və bu, olduqca maraqlı şeylər bir sıra edir. Məsələn, mənim istifadəçi adı ilə daxil edin Mən, məsələn, bir tag cloud yaratmaq üçün xahiş edə bilər və nə ki, nə bir şəkil mənə geri vermək deyil bütün müxtəlif janrları, mən qulaq asmaq istəyirəm ki, bir şey ki, sort. Necə bunu edir? Çox əsasən o burada Last.fm API söyləyərək oldu bu istifadəçi var. Mən onlar qulaq etdik ki, hər mahnı janrının bilmək istərdim və Last.fm API üçün olduqca sadə AJAX zəng edərək bunu edə bilərsiniz. Siz açıq-aydın bir digər məhsulları aparılır sonra bir böyük siyahısını geri almaq və olacaq bir söz bulud çevrilsin, lakin ümumi bilərsiniz daxil olmaq üçün çox asan və istifadə üçün çox asandır. Şeyi bir sıra həqiqətən gözəl. Mən ümumi demək lazımdır haqqında bütün düşünürəm. Mən ümumi API haqqında qeyd edəcəyik son bir şey ki, siz, bəzən dərəcəsi məhdudlaşdıran deyilən bir şey daxil olacaq və dərəcəsi məhdudlaşdırılması ideyası API'ler sui istəmirəm. Başqa sözlə, bu web sites bir çox API ki, həqiqətən gözəl siz getmək və pulsuz istifadə edə bilərsiniz. Lakin, milyonlarla ya gündə sorğu milyardlarla edirik, əgər misal üçün, sonsuz querying ki, sonsuz loop yapışdırılmalıdır edirsinizsə bir API növ və məlumatların böyük məbləği geri almaq, aşkar yaxşı deyil, bu dərəcəsi xüsusiyyət məhdudlaşdıran var API bir çox nə belə ki, siz yalnız IP-ünvanı və ya kimi bir şey gündə 1000 sorğu edə bilər deyir. Və test bir çox və bir şey ki, sort edirik, əgər Siz bəzən ki, daxil olacaq, və birdən-birə bu bağlamaq olacaq və demək, mən sizi bir daha məlumat verən deyiləm. Nə istəyirəm qaydaları ilə oynamaq edir. Siz diqqətlə API spec oxumaq əmin etmək istəyirəm. Bu kimi əlavə müəyyən qaydaları vardır yalnız gündə X sorğu edə bilər və ya yalnız verilənlər bazası bir hissəsi dəfə müəyyən sayda əldə edə bilərsiniz və ya siz qalmaq əmin etmək istəyirəm ki, kimi bir şey. Kimi uzun o qaydaları ərzində oynamaq kimi yəqin API istifadə edərək, həqiqətən, gözəl vaxt lazımdır. Ümumi paket API, həqiqətən, həqiqətən faydalı edir. Bir API orada demək olar ki, hər böyük web xidmət üçün var. Google Tools Suite, Google Maps, Google Earth, və olduqca çox hər hansı bir hissəsi Gmail, Google Calendar, o şeyi bütün API var. Siz server həm GET data onları istifadə və server məlumat göndərmək bilər. Bir təqvim app etmək istəyirdi əgər başqa sözlə, yeniləyə bilər ki, kimsə Google Calendar, üçün bir API var. Siz demək olacaq ki, bir şey etmək istəyirsinizsə müəyyən ünvanı yeri sizin üçün Google Maps API istifadə edə bilərsiniz. API fantastik faydalı, onlar hər yerdə edirik. Siz fikir bir növ istəyirsinizsə, siz bir çox veri almaq üçün istifadə edə bilərsiniz bir API ilə bağlı yəqin ki, var çox tez və çox sadəcə. Siz hələ bir layihənin və ya istəyirsinizsə, yalnız ətrafında oynamaq istəyirəm ümumi bir şey ilə API mütləq bunu layiqdir. Thanks, sizə uşaqlar ola bilər ki, hər hansı suallara cavab xoşbəxt deyiləm. OK, bir çox təşəkkür edir. [CS50.TV]