[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]