[Powered by Google Translate] [Seminarium] [programisty Wprowadzenie do API] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [To jest CS50.] [CS50.TV] Cześć wszystkim, jestem Billy, a dziś mam zamiar mówić o API, lub interfejsów programowania aplikacji, szczególnie w kontekście CS50 ostatecznych projektów i tego typu rzeczy. W ogóle co to jest API? Bardzo szeroko, to jest coś w rodzaju środku człowieka, która umożliwia 2 sztuk oprogramowania do komunikowania się ze sobą. To rodzaj bardzo szerokiej definicji i nie jest istotne, że za to, co mamy do czynienia. Co naprawdę chcemy to jakiś użyteczny ziemi środkowej komunikować się z jakiejś bazy gdzieś. Oto wykres, i zasadniczo chodzi o to, jesteśmy wniosek, a my chcemy, aby uzyskać dane z bazy danych, ale my nie chcemy zapytanie bezpośrednio. Zamiast tego chcemy przejść przez tego rodzaju środku człowieka, API. Ideą to numery 2 i 3 na wykresie są zarówno będzie bardzo skomplikowany i bałagan. Innymi słowy, gdy API zapytań do bazy danych, to pewnie będzie za pomocą tabel SQL i wszystkie tego rodzaju rzeczy, i dowiedzieliśmy się trochę o niej w CS50, ale ogólnie, zauważyłeś, że jest to trochę uciążliwe. To staje się bardzo, bardzo skomplikowane i plączą, zwłaszcza, gdy robisz złożonych zapytań i tego typu rzeczy. Co naprawdę chcemy to jakiś sposób użyteczny i prosty aby uzyskać te dane, i to jest idea liczb 1 i 4 na wykresie. Innymi słowy, chcemy naprawdę prosty sposób, aby powiedzieć, co API, aby uzyskać dla nas i bardzo prosty sposób, aby uzyskać dane z powrotem. Jest jeden główny sposób, aby dane te zazwyczaj wysyłane i odbierane, co jest JSON lub JavaScript Object Notation. , Które mogą się różnić nieco w miarę jak wysłać żądanie do API. Innymi słowy, jeśli chcesz trochę pewną ilość danych, jak powiesz API do zdobycia, że ​​dane mogą się różnić trochę. Zazwyczaj dotyczy to co jakieś polecenia sieciowego. Innymi słowy, dostęp do jakiegoś adresu URL, który powie API dokładnie, co chcesz, ale dane jest prawie zawsze wysyłane z powrotem, innymi słowy, nr 4 w JSON. Co to jest JSON dokładnie? Jak powiedziałem, JavaScript Object Notation. Jest to w zasadzie uniwersalny standard do nadawania i odbierania danych. Chodzi o to, że masz te 3 kategorie rzeczy. Masz tablice, hashmaps i prymitywów. Tablice i hashmaps masz oglądali trochę w CS50, ale ty jakby dostał bardzo ścisłym znaczeniu, jakie są. Innymi słowy, z tablicami i wiesz, że oni wpisać ograniczenie, tak masz tylko jeden rodzaj typu, że idzie na całej tablicy. JSON jest dużo bardziej wyrozumiali dla tego rodzaju rzeczy. Zasadniczo pomysł jest skonstruować ten obiekt, które składa się z jednego z tych 3 rzeczy i może składać się z wielu te z nich, i mogą być zagnieżdżone. Oto rodzaj przykład JSON, co te nawiasy klamrowe tutaj reprezentowania HashMap, i hashmap jest zasadniczo mapowanie z jakimś kluczem do jakiejś wartości. Zobaczysz tu, że mamy klucz właściwości, i to mapowanie na tablicy, co jest ta cała sprawa. Widzimy kolejny element hashmap, który jest ten klucz isAwesome, które mapy do prymitywnej wartości prawdziwe, innymi słowy, wartość logiczna. Prymitywy mogą być łańcuchami. Mogą być liczbami całkowitymi. Mogą być bools, coś w tym stylu. I widzisz zawartość tej tablicy, która ma właściwości punktów 2 sznurki w nim, self-podobne i wspaniałe. Są 2 właściwości JSON, i widzimy, że JSON jest niesamowite. Spojrzeć na to trochę bardziej będę konstruować bardziej złożony przykład JSON tutaj. Zacznijmy od tablicy, na przykład, tylko pustą tablicę. Ale to jakby nudne, więc mamy zamiar wypełnić go trochę, i tak jak mówiłem, tablice w JSON są typu ograniczenie, więc mogliśmy mieć ciąg tutaj, co jest hi, i to jest kolejny element tej tablicy. I podobnie, możemy dodać hashmapping tutaj, co się dzieje, aby mieć kilka odwzorowań. To będzie mieć mapowanie z nazwy do łańcucha Billy'ego. Mamy mapowanie z nazwy do Billy'ego, i mamy mapowanie ulubiony kolor na niebieski. To jest w zasadzie dobry przykład JSON. To niby ma do-whoops, wymaga przecinka tam-wszystkie z różnych części. Ponownie, to nie jest zobowiązany wpisać na wszystkich, więc można mieć wszelkiego rodzaju typy wewnątrz cokolwiek chcesz, a pomysł jest to samo-podobny. Innymi słowy, to tutaj jest obiekt JSON, jak cała ta sprawa, jak to jest właśnie to, więc można mieć prymitywny być obiekt, array być obiekt lub hashmap być obiekt. Jak można rodzaj zob. JSON jest naprawdę przydatne, to jest tak wszechstronny. Możesz mieć ewentualnych danych, które można wyobrazić sobie przechowywanych w JSON. To sprawia, że ​​naprawdę ładny język w użyciu API bo to dość dużo oznacza, że ​​nie ważne co dane, które chcesz tam będzie jakiś sposób, aby ją odzyskać w JSON. Kilka właściwości, które sprawiają, JSON szczególnie dobre do tego typu rzeczy. Jak widać, w porównaniu do wielu rzeczy, że już pracowałem w CS50 jest stosunkowo bardzo łatwy do odczytu, a także bardzo łatwe do napisania. Możesz tiret to jeśli chcesz, jak robię w tym przykładzie, co daje ładny, ładny wersję można zobaczyć naprawdę dobrze. Ale co więcej, jest to również łatwe do odczytu i zapisu dla komputera. Innymi słowy, jest to łatwe do analizowania i łatwe do kodowania, co oznacza, że ​​jest to dość szybko w miarę czytania danych osobowych, i JSON mogą być generowane naprawdę szybko. Jest również bardzo łatwy dostęp do różnych części JSON i tego typu rzeczy. To miłe, a ponadto fakt, że to samo-podobny, Innymi słowy, fakt, że można mieć w ciągu JSON JSON ciągu JSON jest naprawdę miły dla przechowywania danych. Innym elementem, który jest na ogół bardzo przydatna w pracy z API jest jQuery. Nauczyłeś się trochę języka JavaScript, który jest miły sposób do manipulowania HTML i CSS w witrynie. Ale może trochę być ból do kodu w czystym JavaScripcie głównie dlatego, że JavaScript jest naprawdę język verbose. Musisz się wiele nauczyć składni, i po prostu zrobić bardzo proste rzeczy zajmuje dużo kodu, więc jQuery to biblioteka do JavaScriptu. Innymi słowy, jest to plik JavaScript, który można ładować a następnie za pomocą funkcji jQuery zrobić pewne rzeczy. I jQuery w zasadzie sprawia, że ​​życie dużo łatwiejsze. Upraszcza to co zajęłoby setki linii w JavaScript do kilku linii w jQuery. Jest to szczególnie przydatne, jeśli korzystasz z API, ponieważ zazwyczaj jak będziesz dostęp do API jest złożenie żądań AJAX, i wierzę, że David wspomniał w wykładzie, że żądania AJAX generalnie gdy robisz żądanie sieciowe do jakiegoś serwera i powrót jakiś danych i aktualizacja strony natychmiast. Mając na uwadze, że w czystym JavaScript zajmie szalone numery linii do sprawdzania wszystkich nagłówków i zrobić wszystkie tego rodzaju rzeczy, jQuery ma bardzo prostą funkcję zwaną AJAX, i wszystko, co musisz zrobić, to dać w AJAX parametry, które chcesz dać API lokalizacja API oraz wszelkie dodatkowe rodzaju opcji, które chcesz skonfigurować. To jest bardzo, bardzo miły i bardzo przydatne do tego typu rzeczy. To wszystko, czego potrzebujesz, aby zacząć nasze ręce brudne w API. Mam zamiar przywołać kilka przykładów i odkrywać ich różne właściwości i dlaczego są one przydatne do różnych rzeczy. Pierwszą rzeczą, którą tak naprawdę pokazać, jest coś, pracuję nad w moim laboratorium badawczego, który jest Viewer Ngram, iw zasadzie idea Viewer Ngram to możesz poszukać jakiegoś słowa lub wyrażenie i zobaczyć, jak często to się w pewnym zbiorze tekstów w czasie. Ten przykład tutaj jest to zbiór danych niemowląt które urodziły się w Nowym Jorku w latach 1920 i 2000. Możemy wyszukiwania, na przykład, w odniesieniu do nazwy Jennifer, i widzimy, że pre-1960 to naprawdę nie był używany aż tak dużo, i jak dostać się do późniejszych lat to staje się coraz częściej używane. Możemy również zrobić porównań, więc jeśli porównamy Jennifer, na przykład, Thomas, widzimy Thomas był dość rozpowszechniony w całej historii, natomiast Jennifer jest nowsza nazwa. Możemy zrobić coś takiego. Jak działa ta aplikacja? Zasadniczo, to działa za pośrednictwem API. Innymi słowy, mamy pewne parametry tutaj. Mamy parametry co mamy rzeczywiście szukają, które są te nazwy, a następnie mamy kilka innych właściwości, jak osi Y i osi X. Widać mamy kilka różnych opcji w zakresie rozdzielczość czasowa w użyciu i tego typu rzeczy. Mamy te opcje w miarę tego, jakie dane naprawdę chcemy z bazy danych, i chcemy, aby uzyskać dane z powrotem w jakiś użyteczny sposób. Zwykle, jeśli byliśmy odpytywanie bazy danych bezpośrednio byłoby coś w rodzaju być ból zrobić bo przypuszczalnie to dane o imionach dla dzieci żyje w jakiejś bazie danych gdzieś, i byłoby bardzo skomplikowane musiał zapytać go ręcznie i zdecydować, co dokładnie dane powrócić. Innymi słowy, tylko o Jennifer i Thomas w tym przypadku, i interesują nas tylko na pewnej osi i wszystkie tego rodzaju rzeczy. Jak możemy to obejść? Kopać w tym API trochę pokażę wam kolejny przykład tej platformie który wykorzystuje nieco inny zestaw danych. Ten zestaw danych, zamiast nazwiska dziecka, jest właściwie tylko cały drukowanie bazy danych publikacja Open Library, która jest gigantem źródłem tekstów publikowanych przez ostatnie 100 lat i tak. Chodzi o to, mamy tę compository miliony i miliony tekstu, które możemy teraz szukać różnych słów i zwrotów w. Oto przykład, który waha się nieco inaczej niż w poprzednim przykładzie Pokazałem ci, co mamy te 3 zapytania, Wojna, wojna, a francuskie słowo do wojny, która jest guerre. A my wyszukiwania w 3 różnych sekcji ogólnej bazy. Innymi słowy, w tym pierwszego zapytania jesteśmy tylko szukają w USA, w drugim tylko w Wielkiej Brytanii, a trzeci tylko z prac opublikowanych w Francji. Widzimy kilka ciekawych wzorów emerge. Na przykład, widzimy tu prawo, które- oops, I zawiedli osi trochę, ale można zobaczyć w tym zakresie o wokół wojny domowej znajduje się duży skok w amerykańskiej edycji ale nie taki duży skok w dwóch pozostałych, a to oczywiście dlatego, wojny secesyjnej działo się w tym punkcie. Widzimy jakieś fajne rzeczy tam, ale to, co naprawdę dbają o to, jak mamy te dane. Wezmę cię za kulisami w tej aplikacji w trochę. Neat Sztuką jest jeśli pracujesz z witryną i rodzaju chcą wiedzieć , co dzieje się za kulisami, można otworzyć narzędzia programistyczne. Mam zamiar używać Chrome narzędzi programistycznych, a aby dostać się do tych, można zrobić Control, Shift, J, i która zabierze Cię do konsoli JavaScript. Istnieje kilka karty. Wszystkie one mogą być bardzo przydatne w różnych okolicznościach, ale dbam o sieci Zakładka teraz, i rzeczywiście trzeba odświeżyć, aby ta pracę. O, przepraszam. Lubi dać przykład losowo. Okay, będziemy korzystać z tego przykładu, a nie wtedy. Chodzi o to, że to jest API tutaj i można zobaczyć dokładnie to, co API powraca. To jest to, co aplikacja jest powrót z API, które wysłał do tego wniosku. Pozwól mi przybliżyć trochę, i możemy po prostu zobaczyć to tylko seria kluczowych par wartości w formacie JSON. Innymi słowy, mamy tutaj, że ten HashMap Mapping wartości. Innymi słowy, Mapping lat wartości. W 1765 roku, co słowo początkowo szukał jest używany 90 razy z 1 mln euro, więc wracamy ten wynik. To nie jest dokładnie to, JSON, ponieważ mamy ten mały nagłówek wynik tutaj ale zauważ, że cały ten obiekt jest tu po prostu świetne, duże blob JSON. Mamy tu tablicę, która zawiera cały ten element, i widać, że cały element kończy się tam, a następnie mamy kolejny wielki element, że idzie w dół do końca, i że kończy się tutaj. Mamy naprawdę dużą tablicę z 2 obiektów w nim, a każdy z tych obiektów jest HashMap. Można zobaczyć w ramach każdej z tych hashmaps mamy odwzorowanie tej wartości indeksu na 0 i wartość ta jest wartością do innego hashmap, co znowu jest mapowanie wartości osi X do wartości osi Y. Widać JSON dostaje trochę skomplikowane trochę, ale ogólnie rzecz biorąc, to rzeczywiście bardzo przydatne, i to jest bardzo łatwy dostęp w porównaniu do inne różne formy zapisu. Jeśli chodzi o to, co mamy rzeczywiście wysyłanie danych z API do zdobycia, Mam zamiar iść do tylnego końca trochę tutaj. To jest duży plik JavaScript, który jest obsługa wszystkich interakcji w aplikacji internetowej, i tak nie obchodzi większość z tego, ale dbają o niektóre z nich. Na przykład, dbamy o tej funkcji buildQuery, a pomysł tej funkcji jest w zasadzie to wygląda na stronie, dowiedzieć się, co użytkownik chce zapytać, innymi słowy, sprawdzając te pola, gdzie oni wejściowych swoje kryteria wyszukiwania, sprawdzając różne wartości Y i osi X, że już wybrane i wszystkie tego typu rzeczy, i to będzie wypluwać tego zapytania wartości, które można następnie wysłać off do API. To bardzo skomplikowane, i to jest dość skomplikowane ale to, co mam zamiar zrobić w rzeczywistości, mam już to robią, co jest dobre, jest to, że mam zamiar dostać się do konsoli do wydrukowania dokładnie tego zapytania wartość że to wysyłając do API. To jest właściwie tutaj. Przykro nam, wyprowadza dużo rzeczy. Ale to jest to, co nam zależy, obiekt tutaj. To jest kwerenda obiektu. Innymi słowy, jest to dokładnie to, co aplikacja internetowa wysyła do API, a więc zajrzyjmy do wnętrza trochę, i widzimy, mamy kilka wartości tutaj. Widzimy mamy ten typ licznika, który jest zdarzenia na milion słów która jest dokładnie to, co wybraliśmy w osi Y tutaj. To tam, że to pochodzi. Mamy wartość bazy danych, co oznacza, że ​​jest jakaś pewna baza że dane jest życie, a my chcemy mieć do nich dostęp w szczególności w przeciwieństwie do danych nazw, na przykład dla niemowląt. Następnie mamy tę wartość grupy, który mówi, że chcemy, aby wyszukiwać roku, w przeciwieństwie do inna wartość osi X. Następnie mamy metodę, która niektóre API będzie zrobić wiele rzeczy. Innymi słowy, to API może również zwrócić inne rodzaje danych, ale w tym przypadku chcemy, aby mapowanie wartości osi X do wartości osi Y. To, co mówi, że to do zrobienia, i mamy tę tablicę ograniczenia wyszukiwania, które zawiera 2 wartości. Pierwszym z nich jest to, co widzimy tutaj, co jest wszystkie wartości zawarte w tym pierwszym polu trochę na górze. Innymi słowy, chcemy spojrzeć na walkę słów, i chcemy odfiltrować przez angielskich tekstów w literaturze amerykańskiej. Mamy w tym kraju, który jest USA. Mamy język, który jest po angielsku, więc mamy te wszystkie różne części że wszyscy mówią API dokładnie to, czego chcą. Nie wiemy, co dane, że wrócimy jeszcze, ale wiemy, że dane zajmie pewną formę. W tym przykładzie jest na rodzaju skomplikowanych strony i niekoniecznie będzie przy użyciu interfejsu API tego kompleksu, , ale jest to, aby pokazać Ci zasięg i siłę, co API może zrobić. Innymi słowy, przy użyciu stosunkowo prostego układu, że w zasadzie ma zapytania pole wprowadzania z kilku selektorów innych w różnych miejscach. Pozwól Powiększ tutaj. Mamy pole wprowadzania z kilku wyborów różnych metadanych, i mamy oś Y i wybór osi X. Właściwie nie ma, że ​​wiele pól, i widzimy, bardzo łatwo jesteśmy w stanie wywołać jakieś API i uzyskać dane z powrotem, a następnie umieścić go na tym wykresie który następnie będzie wyświetlić w użyteczny sposób. Spojrzeć na inny przykład, że może być nieco bardziej zaznajomieni z wami będziemy zwracać się do Facebooka. API Facebooka jest nazywany wykres Facebook, iw zasadzie co to znaczy jest Facebook widzi siebie jako tego ogromnej bazy danych z wielu różnych części, które wszystkie mają pewne związki siebie. Innymi słowy, jestem użytkownikiem na Facebooku, więc mam profil, i mają pewne przyjaciół, a każdy z nich ma profil, i każdy z moich znajomych ma ścianę, która ma różne uwagi na to, a każda z tych uwag ma sympatie i wszystkie tego rodzaju rzeczy. Jest wiele różnych części do Facebook. To niezwykle skomplikowane API, a tam ton, które można zrobić z nim, ale w rzeczywistości jest bardzo prosty w użyciu. Mam zamiar zacząć od zamiar graph.facebook.com / billyjanitsch, który jest moim unikalna nazwa konta i nazwa konta będzie albo jakieś słowa, jeśli wybrałeś go, lub może po prostu być ciąg liczb. Co wracamy jest dość podstawowe informacje. Widzimy, że mam na imię, co jest Billy, nazwisko, które jest Janitsch. Jest to unikatowy identyfikator, Facebook, które mam. Można zobaczyć, że jestem mężczyzną i że mam ustawienia języka do brytyjskiego angielskiego. Innymi słowy, widzimy bardzo podstawowych informacji tutaj. To nie jest zbyt wiele, ale to nie daje nam wyobrażenie o tym, co tam jest. Możemy zrobić to samo dla Davida Malan, na przykład. Myślę, że jego imię jest dmalan. Widzimy David Malan ma unikatowy identyfikator. Ma nazwisko, imię, imię, nazwisko. Widzimy także, że jest mężczyzną i ma swój zestaw do języka amerykańskiego angielskiego. Innymi słowy, widzimy dość podstawowe informacje tutaj. A teraz, co się stanie, jeśli staramy się sprawdzić coś jeszcze? Powiedzmy, że jestem zainteresowany tym, co się lubi David Malan na Facebooku. Mogę zrobić / lubi. Teraz musimy uruchomić na problem. Mamy jakąś błędzie token dostępu powinien zażądać tego zasobu. Ale jeśli myślisz o tym, że rzeczywiście ma sens, bo to byłoby dziwne jeśli można przejść każdy element bazy danych w Facebook tylko z jakiegoś prostego API, prawda? Innymi słowy, prawdopodobnie informacje nie mogą być dostępne dla każdego, kto chce. Ten błąd jest dokładnie tym, co to znaczy. Niektóre interfejsy API wymagają pewnych uprawnień w celu uzyskania dostępu do ich danych. A nawet bardziej zaawansowane API, podobnie jak Facebook jeden, będzie wymagać niektóre uprawnienia do robienia pewnych rzeczy. Widzę to podstawowe informacje na temat David Malan. Widzę, że jest mężczyzną i że mieszka w Stanach Zjednoczonych, ale naprawdę nie mogę nic zobaczyć, że w przeszłości. Aby obejść ten problem teraz, Facebook ma tę miłą narzędzia który jest wykresem API explorer, a pomysł, że to można sortować z uzupełnić uprawnienia dla siebie na podstawie własnego konta a następnie przeglądać rzeczy, które specjalnie na koncie może wyświetlać. Na przykład, jeśli mam zrobić graph.facebook.com/billyjanitsch/likes- ups, chyba muszę ponownie zatwierdzać mój znak tutaj. Okay. Jeśli zrobić to jeszcze raz, świetnie, teraz widzę, że mam do tego obiektu z powrotem która mówi, że lubię makaron basen, które są w kategorii Gry i zabawki. Chciałbym morsy, które są w Animal kategorii. Są to moje rzeczywiste likes Facebook. Są trochę krępujące. Ale widzimy, że dane te są zwracane w formacie JSON. To dość czytelny. Innymi słowy, mamy to mapowanie danych do jakiejś tablicy, i każdy element tej tablicy jest hashmap który odwzorowuje nazwa jak i kategoria jak. Każdy jak ma unikatowy identyfikator. Istnieje wiele różnych rzeczy danych, które możemy uzyskać, i jeśli jesteś zainteresowany pomocą Facebook API dla CS50 projektu końcowego lub coś w tym stylu to całkiem wykonalne. Zasadniczo, jak można dostać się wokół rzeczy uwierzytelniania jest Facebook korzysta z systemu o nazwie OAuth lub otworzyć uwierzytelniania, i nie chcę, aby dostać się do niego teraz, bo OAuth lub inny rodzaj uwierzytelniania zazwyczaj różnią się znacznie między różnymi API, więc mogłem spędzić długi czas dzieje się każdego z nich, ale są faktycznie dość oczywiste. Jeśli Google Facebook API jest bardzo czytelny. Jest cała spec. Na przykład, jest to dokumentacja do Facebook API i widać, że jestem na stronie użytkownika, dzięki czemu można dowiedzieć się wszystkiego na temat różnych rodzajów rzeczy , które są dostępne, aby uzyskać w miarę dane a także różne uprawnienia, że ​​trzeba, aby uzyskać do nich dostęp. Jak widzieliśmy, nie potrzebujemy uprawnień dostępu nazwę lub płeć, ale poza tym, że jest konieczne uprawnienia do większości rzeczy. Ta strona, czy raczej, ta strona będzie również powiedzieć, jak dostać się znak, aby móc się autoryzować. Większość systemów uwierzytelniania użyć jakiegoś tokena gdzie masz tę unikalną wartość, która jest naprawdę długi i losowy ciąg znaków, iw ten sposób można je skojarzyć z wnioskiem, że robisz z tobą. Innymi słowy, oni wiedzą, że nie robisz nic podejrzanego z ich danymi. Wiedzą dokładnie, co dostajesz. Wiedzą również, że masz uprawnienia do wyświetlania tych informacji. Po dokonaniu Facebook app i Twoja aplikacja ma pewne użytkowników, oraz tych użytkowników, pozwoliły, że aplikacji na dostęp do niektórych części swojego profilu, wówczas cokolwiek klucz API lub token, że aplikacja korzysta będzie w stanie uzyskać dostępu do danych dla tych użytkowników. Może to wydawać skomplikowane, ale nie jest tak źle, a jeśli chcesz użyć Facebook Gorąco zalecamy pod gry z ich API. To bardzo fajne, i można zrobić wiele różnych rzeczy z nim. Jeśli użytkownik udziela te uprawnienia można nawet wrócić do API i powiedzieć, że chcesz faktycznie napisać do tego użytkownika ścianie, lub chcę mieć je zamieścić zdjęcie, i dlatego na wiadomości RSS będziesz czasami tych denerwujących rzeczy mówiąc znajomy obserwował ten film w jakimś dziwnym miejscu, albo coś takiego. To dlatego, że aplikacja została przyznana dostęp do wysyłania na ścianie tej osoby. Pomysł ogólnie, Facebook API jest dość skomplikowany, ale również bardzo przydatne. Na pewno warto sprawdzić, jeśli nadal szuka ostatecznego projektu. Kolejny zestaw API, które mam zamiar iść na to CS50 API. Pozwól mi przybliżyć tutaj. CS50 rzeczywiście ułożyła cały szereg interfejsów API że można użyć do ostatecznego projektu lub po prostu na wszystko, co robisz. I są one głównie związane z Harvardu, a różnią się one w menu Huds, na przykład, do tej Harvard Events API, które pozwoli Ci uzyskać dostęp do listy różnych zdarzeń, które dzieje się na Harvardzie i tego typu rzeczy. I tak możemy kliknąć na jednym z nich i uzyskać specyfikację dla niego, której będziesz w stanie znaleźć jakiegokolwiek API, a pomysł jest że pozwala wiesz, co konkretnie zwrócić z API i jak się o nią zwrócą. Innymi słowy, jeśli chcę, wszystkie wydarzenia, które dzieją się jutro następnie muszę oczywiście dać mu tę datę, które chcę w określonym formacie, i B, to powiedz mi dokładnie, co to da się do mnie. To znaczy mam zamiar wrócić ci ten obiekt JSON, lub jak widać, istnieją różne formaty. Można również zwrócić dane w formacie CSV, na przykład. Ale wiesz, jak dokładnie, że dane będzie wyglądać kiedy dostaniesz ją z powrotem więc można się spodziewać do robienia pewnych rzeczy z nim. Możemy przewijania i zobacz, na przykład, jeśli chcemy kwerendy API aby kalendarz, możemy używać tego konkretnego adresu URL i nadać mu pewne parametry, które będą dane, które chcemy dokładnie. I podobnie, jeśli chcemy dane z powrotem w określonym formacie, to możemy poprosić go do wyprowadzania danych w pliku CSV, i to po prostu inny parametr, że jesteśmy przechodząc do API. Dużo fajnych rzeczy do zrobienia. Zdecydowanie polecam sprawdzić na CS50 API. Będę patrzeć na tego API Harvard Żywności w szczególności na trochę. Jedna rzecz, jaką faktycznie przeznaczone jest to Harvard strona Noms, który używa CS50 API Jedzenie pobrać Huds menu na dany dzień. I dla osób przedłużających szkolnych, Huds jest usługa jadalnia na Harvardzie. Co masz jest ta strona, która zawiera wszystkie posiłki na dzień, więc widzimy lunch. Mamy kilka różnych kategorii. Mamy Bean i całej stacji ziarna. Mamy brązowy stację ryżu. Widzimy na brunch mamy te kilka produktów spożywczych. Jeśli klikniemy na nich, to możemy uzyskać informacji o wartości odżywczej. Widzisz to jest informacja żywieniowa dla grejpfrutów, w razie gdybyś się zastanawiał. I znowu mamy zamiar zajrzeć do tylnego końca tutaj trochę i zobaczyć, co dokładnie to robi, aby uzyskać te dane. I okazuje się w rzeczywistości nie jest bardzo złożony w ogóle. Ten plik wygląda trochę brudny, ale należy pamiętać, że to zajmuje całą stronę, i jeśli przewiń widzimy tę funkcję danych zmian. Teraz, żeby było jasne, to jest napisane w CoffeeScript, który jest językiem, który prawdopodobnie nie widział. Ale to dość czytelny, więc będę chodzić po nim, jakby to było pseudokod. Zmiana daty to funkcja, która zajmie w tej wartości dat, i to również zamiar podjąć w pierwszym, które nie dbają o jak najwięcej. Ale najważniejsze jest to, że ten termin, i ta data jest dzień, że chcemy zwrócić wszystkie elementy żywności dla. A potem widzisz mamy trochę składni tutaj który jest w zasadzie parsowania tę datę na format czytelny. Innymi słowy, API wymaga datę w określonym formacie. Nie można po prostu powiedzieć, 16 listopada 2012 AD. To nie będzie wiedział, co z tym zrobić. Chce datę w określonym formacie. Wszystko robimy tutaj daje to dokładnie, że format, co roku wartość i następnie myślnik, wartość miesiąca, kolejny myślnik oraz wartość data. I my również powiedzieć, że dane mają być wyprowadzane w formacie JSON. Teraz robimy to żądanie AJAX, a jak już wcześniej wspomniano, jQuery ma to super przydatnych funkcji AJAX, który wszystko, co musisz zrobić, to podać kilka parametrów i tutaj, a ona da Ci dokładnie to, czego chcą. Mówimy to, że adres URL chcemy iść do to CS50 API Food, które mamy od spec. Mówimy, że chcemy, aby dane w formacie JSON i że mamy zamiar dać mu te dane, które mamy zdefiniowane tutaj. To jest dzień chcemy elementy żywności dla. A potem wszystko, co musimy zrobić, to określić jakąś funkcję sukcesu, które jest w zasadzie to, co się dzieje, kiedy API zwraca te dane. Innymi słowy, mamy pakowane wszystkie parametry, które chcemy, która w tym przypadku jest to, że na dzień oraz, że ma to, że chcemy w JSON i wysłał go do API, więc teraz API mówi, dobrze, tu jest twoje dane, dostałem go z powrotem do Ciebie. Mamy funkcję sukces, co oznacza, zważywszy że API pomyślnie zwraca jakieś dane, co mamy z nim zrobić? I okazuje się, że wszystko, co robimy jest wywołanie tej funkcji menu aktualizacji z tym, co API wrócił, więc możemy wyszukiwać że i widzę, że wszystko co robimy jest za pomocą pęczku nowej składni tutaj do aktualizacji HTML i wstawić nowych danych. Co pozwala to mamy te strzałki po obu stronach, i możemy kliknąć, a teraz mamy do czynienia z danymi do następnego dnia i znowu na następny dzień, i za każdym razem jest to aktualizacja, że ​​wartość daty i sprawdzenia API, powrót niektórych danych i umieszczenie go na stronie. Ponownie widać, super, super przydatny. Ta aplikacja zajęło mi kilka godzin do włamywanie razem a ja mam trochę więcej doświadczenia, oczywiście, ale swoją CS50 końcowego projektu może wyglądać bardzo podobnie do tego. API są potężny w wysokości nakładu, że podejmą. Ostatnią rzeczą, mam zamiar iść na to jeszcze kilka API szeroko. Nie będzie się w nim w zakresie aż do co konkretnie, ale dam ci pomysł, co tam jest. 2 bardzo przydatne z nich, jeśli jesteś zainteresowany w analizie danych i wizualizacji lub coś w tym stylu, to Freebase i Wikipedia. Wikipedia-zapewne wszyscy wiecie, to darmowa encyklopedia, i faktycznie ma API, więc jeśli chcesz, na przykład, uzyskać wszystkie teksty i artykuły dla ośmiornicy można bardzo łatwo zrobić. Wystarczy powiedzieć, hej, Wikipedia API, chciałbym dane zwrócone jak ta, i chciałbym go w tym formacie, a artykuł chciałbym to ośmiornica, i bardzo szybko będzie oddać te informacje. To może być bardzo przydatne, jeśli chcesz, aby jakieś strony to lepsza przeglądarka dla Wikipedii czy coś takiego. Freebase jest trochę podobna, choć to nieco trudniejsze w miarę API. Freebase jest jak w Wikipedii, że jest to encyklopedia online który zawiera wiele, wiele różnych danych na temat wszelkiego rodzaju różnych tematów, ale to jest przechowywane w relacyjnej bazie danych, która jest nieco inna z Wikipedii. Wikipedia ma swoje artykuły i artykuły związane z innych artykułów, ale w przeważającej części, jeśli chcesz dane do ośmiornicy, przejdź do artykułu ośmiornicy, uzyskać te dane, a masz kilka tekstów o ośmiornic, więc to świetnie. Freebase działa w nieco bardziej skomplikowany sposób, w który wszystko się do siebie. Innymi słowy, jeśli mamy poszukiwaniu ośmiornicy to ma kilka kategorii z nią związanych. Na przykład, to jest zwierząt, żyje wodą, ma pewną temperaturę ciała. Nie wiem. I wszystkie z tych kategorii znajdują się odnośniki do innych miejsc, gdzie można przejść widzieć rzeczy z tym samej kategorii. Innymi słowy, zbiór danych ośmiornica będzie zawierać link do danych określonych dla wszystkich zwierząt, i że pozwolił mi poruszać się w bazie danych bardzo szybko. Może to być bardzo przydatne, jeśli robisz coś w porównaniach. Innymi słowy, ponieważ pewne rzeczy, które chcesz przejrzeć co jeszcze jest to związane i zobaczyć, co jeszcze nie jest to związane. Tego rodzaju rzeczy. Może to być użyteczne w wielu aspektach. Jeśli szukasz większe wyzwanie i być w stanie zrobić kilka rzeczy bardziej złożonych Uważam przyjrzeniu wolnej zasady API. Ale w dużej mierze, Wikipedia jest bardzo proste miejsce, aby przejść w miarę uzyskiwania informacji. Innym miejscem, że będę patrzeć na to Last.fm, a ja faktycznie się przejść do witryny w przypadku, niektórzy ludzie nie są znane, ale Last.fm jest zasadniczo muzyka gusta i website zalecenia. Możesz zrobić konto. Możesz zacząć muzykę Przekazywanie z odtwarzacza muzyki na stronie internetowej, a przede wszystkim zacznie daje rekomendacje muzyczne na podstawie czego słuchać. Na przykład, jeśli pójdziesz do swojego profilu na stronie-to jest moje- widać masz listę ostatnio słuchałem utworów. Możesz zobaczyć ogólny ulubionych artystów, wszystkie tego rodzaju rzeczy, i znowu, istnieje duża API za Last.fm,  i można go użyć do zrobienia wiele, wiele rzeczy, naprawdę fajne. Na przykład, ja pójdę do kolegi, który ma strony tej witryny Narzędzia Last.fm. To jest rzeczywiście inna platforma, która jest zbudowana na Last.fm API i robi kilka ładnych ciekawych rzeczy. Jeśli mogę się zalogować z moją nazwą użytkownika, na przykład, Można zwrócić do generowania chmurę znacznika, na przykład i co to będzie zrobić, to dać mnie obraz wszystkie różne gatunki i tego typu rzeczy, które lubię słuchać. Jak to się robi? Bardzo zasadzie to mówi do Last.fm API tutaj tego użytkownika. Chciałbym wiedzieć, gatunek każdej piosence, że kiedykolwiek słuchał, i można zrobić, że przez całkiem proste wywołanie AJAX do Last.fm API. Wrócisz dużą listę, a następnie oczywiście kilka innych rzeczy się robi przekształcić go w chmurze słów, ale widać ogólny to jest bardzo łatwo dostępny i łatwy w użyciu. Naprawdę miły dla wielu rzeczy. Myślę, że to wszystko powiem ogólnie. Ostatnią rzeczą, którą wspominam o API w ogóle jest to, że będziesz czasami uruchomić do czegoś, co nazywa ograniczanie przepustowości, a pomysł ograniczania przepustowości jest to, nie chcę nadużywać API. Innymi słowy, jest to naprawdę miłe, że wiele z tych witryn mają API że można przejść i korzystanie za darmo. Jednak jeśli robisz miliony czy miliardy żądań dziennie, na przykład, jeśli utkniesz w nieskończonej pętli, która jest nieskończenie zapytaniem jakieś API i powrót ogromną ilość danych, oczywiście, że nie jest dobre, więc to, co wiele API zrobić to nie ta stawka ograniczenie funkcji mówi, że można wykonywać tylko 1.000 wniosków dziennie na adres IP lub coś podobnego. A jeśli robisz wiele testów i tego typu rzeczy, będziesz czasami uruchomić w tym, i nagle się wyłącza cię i powiedzieć nie, nie dam ci więcej danych. Co chcesz zrobić, to grać zgodnie z zasadami. Chcesz się upewnić, że zapoznanie się z API Spec ostrożnie. Jeśli ma pewne zasady z nim związane, jak ty mogą jedynie X zapytań na dzień czy można mieć dostęp tylko do części bazy danych określoną liczbę razy czy coś, że chcesz się upewnić, że trzymać się tego. Jak długo grasz w tych zasad prawdopodobnie będziesz mieć naprawdę miło czas przy użyciu API. Twoja ogólna takeaway jest API są naprawdę przydatne. Jest API do niemal dowolnej usługi dużym internetowej tam. Prawie każda część pakietu narzędzi Google, Google Maps, Google Earth, Gmail, Google Calendar, wszystkie te rzeczy mają API. Można ich używać zarówno do pobierania danych z serwera i wysłać dane do serwera. Innymi słowy, jeśli chcesz złożyć aplikację kalendarza, który może aktualizować czyjaś Kalendarz Google, istnieje API do tego. Jeśli chcesz, aby coś, co powie ci, gdzie lokalizacja określonego adresu to możesz użyć Google Maps API do tego. API są fantastycznie przydatne i są wszędzie. Jeśli jesteś zainteresowany w jakiejś idei, prawdopodobnie jest związane z API, które można użyć, aby uzyskać dużo danych bardzo szybko i bardzo prosto. Jeśli wciąż szukasz projektu lub jeśli po prostu chcesz się bawić coś w ogóle, API są zdecydowanie warto to zrobić. Dzięki, a ja z przyjemnością odpowie na wszelkie pytania, że ​​chłopaki mogą mieć. Ok, dzięki. [CS50.TV]