1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminarium] [programisty Wprowadzenie do API] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Harvard University] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [To jest CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Cześć wszystkim, jestem Billy, a dziś mam zamiar mówić o API, 5 00:00:12,100 --> 00:00:15,220 lub interfejsów programowania aplikacji, 6 00:00:15,220 --> 00:00:20,040 szczególnie w kontekście CS50 ostatecznych projektów i tego typu rzeczy. 7 00:00:20,040 --> 00:00:22,490 W ogóle co to jest API? 8 00:00:22,490 --> 00:00:25,530 Bardzo szeroko, to jest coś w rodzaju środku człowieka, która umożliwia 2 sztuk 9 00:00:25,530 --> 00:00:28,610 oprogramowania do komunikowania się ze sobą. 10 00:00:28,610 --> 00:00:32,530 To rodzaj bardzo szerokiej definicji i nie jest istotne, że za to, co mamy do czynienia. 11 00:00:32,530 --> 00:00:35,450 Co naprawdę chcemy to jakiś użyteczny ziemi środkowej 12 00:00:35,450 --> 00:00:40,570 komunikować się z jakiejś bazy gdzieś. 13 00:00:40,570 --> 00:00:43,310 >> Oto wykres, i zasadniczo chodzi o to, 14 00:00:43,310 --> 00:00:46,790 jesteśmy wniosek, a my chcemy, aby uzyskać dane z bazy danych, 15 00:00:46,790 --> 00:00:49,570 ale my nie chcemy zapytanie bezpośrednio. 16 00:00:49,570 --> 00:00:52,710 Zamiast tego chcemy przejść przez tego rodzaju środku człowieka, API. 17 00:00:52,710 --> 00:00:55,440 Ideą to numery 2 i 3 na wykresie 18 00:00:55,440 --> 00:00:57,750 są zarówno będzie bardzo skomplikowany i bałagan. 19 00:00:57,750 --> 00:00:59,960 Innymi słowy, gdy API zapytań do bazy danych, 20 00:00:59,960 --> 00:01:03,300 to pewnie będzie za pomocą tabel SQL i wszystkie tego rodzaju rzeczy, 21 00:01:03,300 --> 00:01:05,489 i dowiedzieliśmy się trochę o niej w CS50, ale ogólnie, 22 00:01:05,489 --> 00:01:07,590 zauważyłeś, że jest to trochę uciążliwe. 23 00:01:07,590 --> 00:01:10,590 To staje się bardzo, bardzo skomplikowane i plączą, zwłaszcza, gdy robisz 24 00:01:10,590 --> 00:01:12,530 złożonych zapytań i tego typu rzeczy. 25 00:01:12,530 --> 00:01:15,960 >> Co naprawdę chcemy to jakiś sposób użyteczny i prosty 26 00:01:15,960 --> 00:01:19,780 aby uzyskać te dane, i to jest idea liczb 1 i 4 na wykresie. 27 00:01:19,780 --> 00:01:23,600 Innymi słowy, chcemy naprawdę prosty sposób, aby powiedzieć, co API, aby uzyskać dla nas 28 00:01:23,600 --> 00:01:27,760 i bardzo prosty sposób, aby uzyskać dane z powrotem. 29 00:01:27,760 --> 00:01:33,020 Jest jeden główny sposób, aby dane te zazwyczaj wysyłane i odbierane, 30 00:01:33,020 --> 00:01:36,490 co jest JSON lub JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 , Które mogą się różnić nieco w miarę jak wysłać żądanie do API. 32 00:01:40,370 --> 00:01:43,210 Innymi słowy, jeśli chcesz trochę pewną ilość danych, 33 00:01:43,210 --> 00:01:46,670 jak powiesz API do zdobycia, że ​​dane mogą się różnić trochę. 34 00:01:46,670 --> 00:01:49,210 Zazwyczaj dotyczy to co jakieś polecenia sieciowego. 35 00:01:49,210 --> 00:01:53,130 Innymi słowy, dostęp do jakiegoś adresu URL, który powie API 36 00:01:53,130 --> 00:01:56,190 dokładnie, co chcesz, ale dane jest prawie zawsze wysyłane z powrotem, 37 00:01:56,190 --> 00:01:59,530 innymi słowy, nr 4 w JSON. 38 00:01:59,530 --> 00:02:01,030 >> Co to jest JSON dokładnie? 39 00:02:01,030 --> 00:02:03,030 Jak powiedziałem, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Jest to w zasadzie uniwersalny standard do nadawania i odbierania danych. 41 00:02:07,090 --> 00:02:11,410 Chodzi o to, że masz te 3 kategorie rzeczy. 42 00:02:11,410 --> 00:02:13,540 Masz tablice, hashmaps i prymitywów. 43 00:02:13,540 --> 00:02:16,580 Tablice i hashmaps masz oglądali trochę w CS50, 44 00:02:16,580 --> 00:02:19,870 ale ty jakby dostał bardzo ścisłym znaczeniu, jakie są. 45 00:02:19,870 --> 00:02:22,780 Innymi słowy, z tablicami i wiesz, że oni wpisać ograniczenie, 46 00:02:22,780 --> 00:02:26,560 tak masz tylko jeden rodzaj typu, że idzie na całej tablicy. 47 00:02:26,560 --> 00:02:29,310 JSON jest dużo bardziej wyrozumiali dla tego rodzaju rzeczy. 48 00:02:29,310 --> 00:02:33,590 Zasadniczo pomysł jest skonstruować ten obiekt, 49 00:02:33,590 --> 00:02:36,270 które składa się z jednego z tych 3 rzeczy 50 00:02:36,270 --> 00:02:39,470 i może składać się z wielu te z nich, i mogą być zagnieżdżone. 51 00:02:39,470 --> 00:02:42,110 >> Oto rodzaj przykład JSON, 52 00:02:42,110 --> 00:02:47,910 co te nawiasy klamrowe tutaj reprezentowania HashMap, 53 00:02:47,910 --> 00:02:51,400 i hashmap jest zasadniczo mapowanie z jakimś kluczem 54 00:02:51,400 --> 00:02:53,340 do jakiejś wartości. 55 00:02:53,340 --> 00:02:56,440 Zobaczysz tu, że mamy klucz właściwości, 56 00:02:56,440 --> 00:02:59,600 i to mapowanie na tablicy, co jest ta cała sprawa. 57 00:02:59,600 --> 00:03:04,120 Widzimy kolejny element hashmap, który jest ten klucz isAwesome, 58 00:03:04,120 --> 00:03:07,370 które mapy do prymitywnej wartości prawdziwe, innymi słowy, wartość logiczna. 59 00:03:07,370 --> 00:03:09,420 Prymitywy mogą być łańcuchami. Mogą być liczbami całkowitymi. 60 00:03:09,420 --> 00:03:11,960 Mogą być bools, coś w tym stylu. 61 00:03:11,960 --> 00:03:18,410 I widzisz zawartość tej tablicy, która ma właściwości punktów 2 sznurki w nim, 62 00:03:18,410 --> 00:03:20,050 self-podobne i wspaniałe. 63 00:03:20,050 --> 00:03:27,410 Są 2 właściwości JSON, i widzimy, że JSON jest niesamowite. 64 00:03:27,410 --> 00:03:30,060 Spojrzeć na to trochę bardziej będę konstruować 65 00:03:30,060 --> 00:03:32,870 bardziej złożony przykład JSON tutaj. 66 00:03:32,870 --> 00:03:37,000 >> Zacznijmy od tablicy, na przykład, tylko pustą tablicę. 67 00:03:37,000 --> 00:03:39,180 Ale to jakby nudne, więc mamy zamiar wypełnić go trochę, 68 00:03:39,180 --> 00:03:43,420 i tak jak mówiłem, tablice w JSON są typu ograniczenie, 69 00:03:43,420 --> 00:03:46,400 więc mogliśmy mieć ciąg tutaj, co jest hi, 70 00:03:46,400 --> 00:03:49,330 i to jest kolejny element tej tablicy. 71 00:03:49,330 --> 00:03:53,450 I podobnie, możemy dodać hashmapping tutaj, co się dzieje, aby mieć kilka odwzorowań. 72 00:03:53,450 --> 00:04:00,470 To będzie mieć mapowanie z nazwy do łańcucha Billy'ego. 73 00:04:00,470 --> 00:04:04,590 Mamy mapowanie z nazwy do Billy'ego, i mamy mapowanie 74 00:04:04,590 --> 00:04:10,860 ulubiony kolor na niebieski. 75 00:04:10,860 --> 00:04:12,700 To jest w zasadzie dobry przykład JSON. 76 00:04:12,700 --> 00:04:18,160 To niby ma do-whoops, wymaga przecinka tam-wszystkie z różnych części. 77 00:04:18,160 --> 00:04:21,140 Ponownie, to nie jest zobowiązany wpisać na wszystkich, więc można mieć wszelkiego rodzaju typy 78 00:04:21,140 --> 00:04:24,710 wewnątrz cokolwiek chcesz, a pomysł jest to samo-podobny. 79 00:04:24,710 --> 00:04:28,830 Innymi słowy, to tutaj jest obiekt JSON, jak cała ta sprawa, 80 00:04:28,830 --> 00:04:33,200 jak to jest właśnie to, więc można mieć prymitywny być obiekt, 81 00:04:33,200 --> 00:04:35,680 array być obiekt lub hashmap być obiekt. 82 00:04:35,680 --> 00:04:40,270 >> Jak można rodzaj zob. JSON jest naprawdę przydatne, to jest tak wszechstronny. 83 00:04:40,270 --> 00:04:45,860 Możesz mieć ewentualnych danych, które można wyobrazić sobie przechowywanych w JSON. 84 00:04:45,860 --> 00:04:47,900 To sprawia, że ​​naprawdę ładny język w użyciu API 85 00:04:47,900 --> 00:04:50,770 bo to dość dużo oznacza, że ​​nie ważne co dane, które chcesz 86 00:04:50,770 --> 00:04:54,270 tam będzie jakiś sposób, aby ją odzyskać w JSON. 87 00:04:54,270 --> 00:04:58,600 Kilka właściwości, które sprawiają, JSON szczególnie dobre do tego typu rzeczy. 88 00:04:58,600 --> 00:05:02,270 Jak widać, w porównaniu do wielu rzeczy, że już pracowałem w CS50 89 00:05:02,270 --> 00:05:06,040 jest stosunkowo bardzo łatwy do odczytu, a także bardzo łatwe do napisania. 90 00:05:06,040 --> 00:05:09,700 Możesz tiret to jeśli chcesz, jak robię w tym przykładzie, 91 00:05:09,700 --> 00:05:12,990 co daje ładny, ładny wersję można zobaczyć naprawdę dobrze. 92 00:05:12,990 --> 00:05:17,150 Ale co więcej, jest to również łatwe do odczytu i zapisu dla komputera. 93 00:05:17,150 --> 00:05:19,870 Innymi słowy, jest to łatwe do analizowania i łatwe do kodowania, 94 00:05:19,870 --> 00:05:23,820 co oznacza, że ​​jest to dość szybko w miarę czytania danych osobowych, 95 00:05:23,820 --> 00:05:26,460 i JSON mogą być generowane naprawdę szybko. 96 00:05:26,460 --> 00:05:30,300 >> Jest również bardzo łatwy dostęp do różnych części JSON i tego typu rzeczy. 97 00:05:30,300 --> 00:05:33,320 To miłe, a ponadto fakt, że to samo-podobny, 98 00:05:33,320 --> 00:05:36,090 Innymi słowy, fakt, że można mieć w ciągu JSON JSON ciągu JSON 99 00:05:36,090 --> 00:05:40,040 jest naprawdę miły dla przechowywania danych. 100 00:05:40,040 --> 00:05:45,490 Innym elementem, który jest na ogół bardzo przydatna w pracy z API jest jQuery. 101 00:05:45,490 --> 00:05:49,290 Nauczyłeś się trochę języka JavaScript, który jest miły sposób 102 00:05:49,290 --> 00:05:53,710 do manipulowania HTML i CSS w witrynie. 103 00:05:53,710 --> 00:05:57,190 Ale może trochę być ból do kodu w czystym JavaScripcie 104 00:05:57,190 --> 00:05:59,810 głównie dlatego, że JavaScript jest naprawdę język verbose. 105 00:05:59,810 --> 00:06:03,020 Musisz się wiele nauczyć składni, i po prostu zrobić bardzo proste rzeczy 106 00:06:03,020 --> 00:06:07,590 zajmuje dużo kodu, więc jQuery to biblioteka do JavaScriptu. 107 00:06:07,590 --> 00:06:09,800 Innymi słowy, jest to plik JavaScript, który można ładować 108 00:06:09,800 --> 00:06:12,730 a następnie za pomocą funkcji jQuery zrobić pewne rzeczy. 109 00:06:12,730 --> 00:06:15,670 I jQuery w zasadzie sprawia, że ​​życie dużo łatwiejsze. 110 00:06:15,670 --> 00:06:20,390 Upraszcza to co zajęłoby setki linii w JavaScript do kilku linii w jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Jest to szczególnie przydatne, jeśli korzystasz z API, ponieważ zazwyczaj 112 00:06:24,430 --> 00:06:27,600 jak będziesz dostęp do API jest złożenie żądań AJAX, 113 00:06:27,600 --> 00:06:30,130 i wierzę, że David wspomniał w wykładzie, że żądania AJAX 114 00:06:30,130 --> 00:06:33,120 generalnie gdy robisz żądanie sieciowe do jakiegoś serwera 115 00:06:33,120 --> 00:06:37,760 i powrót jakiś danych i aktualizacja strony natychmiast. 116 00:06:37,760 --> 00:06:41,840 Mając na uwadze, że w czystym JavaScript zajmie szalone numery linii 117 00:06:41,840 --> 00:06:44,620 do sprawdzania wszystkich nagłówków i zrobić wszystkie tego rodzaju rzeczy, 118 00:06:44,620 --> 00:06:46,810 jQuery ma bardzo prostą funkcję zwaną AJAX, 119 00:06:46,810 --> 00:06:51,760 i wszystko, co musisz zrobić, to dać w AJAX parametry, które chcesz dać API 120 00:06:51,760 --> 00:06:56,830 lokalizacja API oraz wszelkie dodatkowe rodzaju opcji, które chcesz skonfigurować. 121 00:06:56,830 --> 00:07:02,480 To jest bardzo, bardzo miły i bardzo przydatne do tego typu rzeczy. 122 00:07:02,480 --> 00:07:06,970 To wszystko, czego potrzebujesz, aby zacząć nasze ręce brudne w API. 123 00:07:06,970 --> 00:07:10,220 >> Mam zamiar przywołać kilka przykładów i odkrywać ich różne właściwości 124 00:07:10,220 --> 00:07:13,150 i dlaczego są one przydatne do różnych rzeczy. 125 00:07:13,150 --> 00:07:15,570 Pierwszą rzeczą, którą tak naprawdę pokazać, jest coś, pracuję nad 126 00:07:15,570 --> 00:07:18,310 w moim laboratorium badawczego, który jest Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 iw zasadzie idea Viewer Ngram to możesz poszukać jakiegoś słowa 128 00:07:23,270 --> 00:07:28,840 lub wyrażenie i zobaczyć, jak często to się w pewnym zbiorze tekstów w czasie. 129 00:07:28,840 --> 00:07:33,160 Ten przykład tutaj jest to zbiór danych niemowląt 130 00:07:33,160 --> 00:07:36,480 które urodziły się w Nowym Jorku w latach 1920 i 2000. 131 00:07:36,480 --> 00:07:40,090 Możemy wyszukiwania, na przykład, w odniesieniu do nazwy Jennifer, 132 00:07:40,090 --> 00:07:44,400 i widzimy, że pre-1960 to naprawdę nie był używany aż tak dużo, 133 00:07:44,400 --> 00:07:48,900 i jak dostać się do późniejszych lat to staje się coraz częściej używane. 134 00:07:48,900 --> 00:07:53,680 Możemy również zrobić porównań, więc jeśli porównamy Jennifer, na przykład, Thomas, 135 00:07:53,680 --> 00:07:56,520 widzimy Thomas był dość rozpowszechniony w całej historii, 136 00:07:56,520 --> 00:07:58,780 natomiast Jennifer jest nowsza nazwa. 137 00:07:58,780 --> 00:08:00,590 Możemy zrobić coś takiego. 138 00:08:00,590 --> 00:08:02,460 >> Jak działa ta aplikacja? 139 00:08:02,460 --> 00:08:06,030 Zasadniczo, to działa za pośrednictwem API. 140 00:08:06,030 --> 00:08:08,660 Innymi słowy, mamy pewne parametry tutaj. 141 00:08:08,660 --> 00:08:11,360 Mamy parametry co mamy rzeczywiście szukają, 142 00:08:11,360 --> 00:08:13,720 które są te nazwy, a następnie mamy kilka innych właściwości, 143 00:08:13,720 --> 00:08:16,570 jak osi Y i osi X. 144 00:08:16,570 --> 00:08:18,440 Widać mamy kilka różnych opcji w zakresie 145 00:08:18,440 --> 00:08:20,860 rozdzielczość czasowa w użyciu i tego typu rzeczy. 146 00:08:20,860 --> 00:08:26,700 Mamy te opcje w miarę tego, jakie dane naprawdę chcemy z bazy danych, 147 00:08:26,700 --> 00:08:29,400 i chcemy, aby uzyskać dane z powrotem w jakiś użyteczny sposób. 148 00:08:29,400 --> 00:08:34,020 Zwykle, jeśli byliśmy odpytywanie bazy danych bezpośrednio byłoby coś w rodzaju być ból zrobić 149 00:08:34,020 --> 00:08:38,970 bo przypuszczalnie to dane o imionach dla dzieci żyje w jakiejś bazie danych gdzieś, 150 00:08:38,970 --> 00:08:42,789 i byłoby bardzo skomplikowane musiał zapytać go ręcznie 151 00:08:42,789 --> 00:08:45,830 i zdecydować, co dokładnie dane powrócić. 152 00:08:45,830 --> 00:08:49,300 Innymi słowy, tylko o Jennifer i Thomas w tym przypadku, 153 00:08:49,300 --> 00:08:53,410 i interesują nas tylko na pewnej osi i wszystkie tego rodzaju rzeczy. 154 00:08:53,410 --> 00:08:55,720 >> Jak możemy to obejść? 155 00:08:55,720 --> 00:09:01,200 Kopać w tym API trochę pokażę wam kolejny przykład tej platformie 156 00:09:01,200 --> 00:09:04,490 który wykorzystuje nieco inny zestaw danych. 157 00:09:04,490 --> 00:09:09,950 Ten zestaw danych, zamiast nazwiska dziecka, jest właściwie tylko cały 158 00:09:09,950 --> 00:09:12,460 drukowanie bazy danych publikacja Open Library, 159 00:09:12,460 --> 00:09:18,410 która jest gigantem źródłem tekstów publikowanych przez ostatnie 100 lat i tak. 160 00:09:18,410 --> 00:09:23,540 Chodzi o to, mamy tę compository miliony i miliony tekstu, 161 00:09:23,540 --> 00:09:27,420 które możemy teraz szukać różnych słów i zwrotów w. 162 00:09:27,420 --> 00:09:30,840 Oto przykład, który waha się nieco inaczej niż w poprzednim przykładzie 163 00:09:30,840 --> 00:09:33,350 Pokazałem ci, co mamy te 3 zapytania, 164 00:09:33,350 --> 00:09:36,290 Wojna, wojna, a francuskie słowo do wojny, która jest guerre. 165 00:09:36,290 --> 00:09:40,380 A my wyszukiwania w 3 różnych sekcji ogólnej bazy. 166 00:09:40,380 --> 00:09:45,080 Innymi słowy, w tym pierwszego zapytania jesteśmy tylko szukają w USA, 167 00:09:45,080 --> 00:09:51,150 w drugim tylko w Wielkiej Brytanii, a trzeci tylko z prac opublikowanych w Francji. 168 00:09:51,150 --> 00:09:53,120 Widzimy kilka ciekawych wzorów emerge. 169 00:09:53,120 --> 00:09:58,180 Na przykład, widzimy tu prawo, które- 170 00:09:58,180 --> 00:10:02,410 oops, I zawiedli osi trochę, ale można zobaczyć w tym zakresie o 171 00:10:02,410 --> 00:10:05,730 wokół wojny domowej znajduje się duży skok w amerykańskiej edycji 172 00:10:05,730 --> 00:10:08,340 ale nie taki duży skok w dwóch pozostałych, a to oczywiście dlatego, 173 00:10:08,340 --> 00:10:10,880 wojny secesyjnej działo się w tym punkcie. 174 00:10:10,880 --> 00:10:13,890 >> Widzimy jakieś fajne rzeczy tam, 175 00:10:13,890 --> 00:10:17,070 ale to, co naprawdę dbają o to, jak mamy te dane. 176 00:10:17,070 --> 00:10:21,320 Wezmę cię za kulisami w tej aplikacji w trochę. 177 00:10:21,320 --> 00:10:24,540 Neat Sztuką jest jeśli pracujesz z witryną i rodzaju chcą wiedzieć 178 00:10:24,540 --> 00:10:27,430 , co dzieje się za kulisami, można otworzyć narzędzia programistyczne. 179 00:10:27,430 --> 00:10:30,200 Mam zamiar używać Chrome narzędzi programistycznych, a aby dostać się do tych, 180 00:10:30,200 --> 00:10:35,160 można zrobić Control, Shift, J, i która zabierze Cię do konsoli JavaScript. 181 00:10:35,160 --> 00:10:37,420 Istnieje kilka karty. 182 00:10:37,420 --> 00:10:39,680 Wszystkie one mogą być bardzo przydatne w różnych okolicznościach, ale dbam o sieci 183 00:10:39,680 --> 00:10:44,150 Zakładka teraz, i rzeczywiście trzeba odświeżyć, aby ta pracę. 184 00:10:44,150 --> 00:10:50,180 O, przepraszam. 185 00:10:50,180 --> 00:10:52,320 Lubi dać przykład losowo. 186 00:10:52,320 --> 00:10:54,700 Okay, będziemy korzystać z tego przykładu, a nie wtedy. 187 00:10:54,700 --> 00:11:01,330 >> Chodzi o to, że to jest API tutaj 188 00:11:01,330 --> 00:11:05,330 i można zobaczyć dokładnie to, co API powraca. 189 00:11:05,330 --> 00:11:10,220 To jest to, co aplikacja jest powrót z API, które wysłał do tego wniosku. 190 00:11:10,220 --> 00:11:13,680 Pozwól mi przybliżyć trochę, 191 00:11:13,680 --> 00:11:18,340 i możemy po prostu zobaczyć to tylko seria kluczowych par wartości w formacie JSON. 192 00:11:18,340 --> 00:11:23,220 Innymi słowy, mamy tutaj, że ten HashMap Mapping wartości. 193 00:11:23,220 --> 00:11:26,440 Innymi słowy, Mapping lat wartości. 194 00:11:26,440 --> 00:11:32,600 W 1765 roku, co słowo początkowo szukał jest używany 90 razy 195 00:11:32,600 --> 00:11:35,810 z 1 mln euro, więc wracamy ten wynik. 196 00:11:35,810 --> 00:11:40,280 To nie jest dokładnie to, JSON, ponieważ mamy ten mały nagłówek wynik tutaj 197 00:11:40,280 --> 00:11:45,630 ale zauważ, że cały ten obiekt jest tu po prostu świetne, duże blob JSON. 198 00:11:45,630 --> 00:11:51,070 Mamy tu tablicę, która zawiera cały ten element, 199 00:11:51,070 --> 00:11:55,590 i widać, że cały element kończy się tam, a następnie mamy kolejny wielki element, 200 00:11:55,590 --> 00:11:59,430 że idzie w dół do końca, i że kończy się tutaj. 201 00:11:59,430 --> 00:12:02,200 Mamy naprawdę dużą tablicę z 2 obiektów w nim, 202 00:12:02,200 --> 00:12:04,630 a każdy z tych obiektów jest HashMap. 203 00:12:04,630 --> 00:12:07,340 Można zobaczyć w ramach każdej z tych hashmaps mamy odwzorowanie 204 00:12:07,340 --> 00:12:12,700 tej wartości indeksu na 0 i wartość ta jest wartością do innego hashmap, 205 00:12:12,700 --> 00:12:18,360 co znowu jest mapowanie wartości osi X do wartości osi Y. 206 00:12:18,360 --> 00:12:20,970 >> Widać JSON dostaje trochę skomplikowane trochę, ale ogólnie rzecz biorąc, 207 00:12:20,970 --> 00:12:24,190 to rzeczywiście bardzo przydatne, i to jest bardzo łatwy dostęp w porównaniu do 208 00:12:24,190 --> 00:12:27,390 inne różne formy zapisu. 209 00:12:27,390 --> 00:12:30,550 Jeśli chodzi o to, co mamy rzeczywiście wysyłanie danych z API do zdobycia, 210 00:12:30,550 --> 00:12:34,690 Mam zamiar iść do tylnego końca trochę tutaj. 211 00:12:34,690 --> 00:12:39,850 To jest duży plik JavaScript, który jest obsługa wszystkich interakcji w aplikacji internetowej, 212 00:12:39,850 --> 00:12:44,810 i tak nie obchodzi większość z tego, ale dbają o niektóre z nich. 213 00:12:44,810 --> 00:12:47,410 Na przykład, dbamy o tej funkcji buildQuery, 214 00:12:47,410 --> 00:12:50,670 a pomysł tej funkcji jest w zasadzie to wygląda na stronie, 215 00:12:50,670 --> 00:12:53,750 dowiedzieć się, co użytkownik chce zapytać, innymi słowy, 216 00:12:53,750 --> 00:12:57,090 sprawdzając te pola, gdzie oni wejściowych swoje kryteria wyszukiwania, 217 00:12:57,090 --> 00:13:01,380 sprawdzając różne wartości Y i osi X, że już wybrane i wszystkie tego typu rzeczy, 218 00:13:01,380 --> 00:13:06,650 i to będzie wypluwać tego zapytania wartości, które można następnie wysłać off do API. 219 00:13:06,650 --> 00:13:09,180 >> To bardzo skomplikowane, i to jest dość skomplikowane 220 00:13:09,180 --> 00:13:18,090 ale to, co mam zamiar zrobić w rzeczywistości, mam już to robią, co jest dobre, 221 00:13:18,090 --> 00:13:21,640 jest to, że mam zamiar dostać się do konsoli do wydrukowania dokładnie tego zapytania wartość 222 00:13:21,640 --> 00:13:28,110 że to wysyłając do API. 223 00:13:28,110 --> 00:13:30,870 To jest właściwie tutaj. Przykro nam, wyprowadza dużo rzeczy. 224 00:13:30,870 --> 00:13:33,690 Ale to jest to, co nam zależy, obiekt tutaj. 225 00:13:33,690 --> 00:13:35,300 To jest kwerenda obiektu. 226 00:13:35,300 --> 00:13:40,670 Innymi słowy, jest to dokładnie to, co aplikacja internetowa wysyła do API, 227 00:13:40,670 --> 00:13:45,730 a więc zajrzyjmy do wnętrza trochę, i widzimy, mamy kilka wartości tutaj. 228 00:13:45,730 --> 00:13:48,710 Widzimy mamy ten typ licznika, który jest zdarzenia na milion słów 229 00:13:48,710 --> 00:13:51,460 która jest dokładnie to, co wybraliśmy w osi Y tutaj. 230 00:13:51,460 --> 00:13:53,740 To tam, że to pochodzi. 231 00:13:53,740 --> 00:13:58,010 Mamy wartość bazy danych, co oznacza, że ​​jest jakaś pewna baza 232 00:13:58,010 --> 00:14:01,610 że dane jest życie, a my chcemy mieć do nich dostęp w szczególności 233 00:14:01,610 --> 00:14:04,950 w przeciwieństwie do danych nazw, na przykład dla niemowląt. 234 00:14:04,950 --> 00:14:08,320 Następnie mamy tę wartość grupy, 235 00:14:08,320 --> 00:14:12,090 który mówi, że chcemy, aby wyszukiwać roku, w przeciwieństwie do 236 00:14:12,090 --> 00:14:16,030 inna wartość osi X. 237 00:14:16,030 --> 00:14:19,040 Następnie mamy metodę, która niektóre API będzie zrobić wiele rzeczy. 238 00:14:19,040 --> 00:14:22,360 Innymi słowy, to API może również zwrócić inne rodzaje danych, 239 00:14:22,360 --> 00:14:27,740 ale w tym przypadku chcemy, aby mapowanie wartości osi X do wartości osi Y. 240 00:14:27,740 --> 00:14:30,730 To, co mówi, że to do zrobienia, 241 00:14:30,730 --> 00:14:35,020 i mamy tę tablicę ograniczenia wyszukiwania, które zawiera 2 wartości. 242 00:14:35,020 --> 00:14:40,720 Pierwszym z nich jest to, co widzimy tutaj, co jest wszystkie wartości 243 00:14:40,720 --> 00:14:43,020 zawarte w tym pierwszym polu trochę na górze. 244 00:14:43,020 --> 00:14:47,570 >> Innymi słowy, chcemy spojrzeć na walkę słów, i chcemy odfiltrować 245 00:14:47,570 --> 00:14:51,920 przez angielskich tekstów w literaturze amerykańskiej. 246 00:14:51,920 --> 00:14:54,590 Mamy w tym kraju, który jest USA. 247 00:14:54,590 --> 00:14:59,130 Mamy język, który jest po angielsku, więc mamy te wszystkie różne części 248 00:14:59,130 --> 00:15:02,690 że wszyscy mówią API dokładnie to, czego chcą. 249 00:15:02,690 --> 00:15:04,940 Nie wiemy, co dane, że wrócimy jeszcze, 250 00:15:04,940 --> 00:15:10,970 ale wiemy, że dane zajmie pewną formę. 251 00:15:10,970 --> 00:15:13,650 W tym przykładzie jest na rodzaju skomplikowanych strony 252 00:15:13,650 --> 00:15:16,180 i niekoniecznie będzie przy użyciu interfejsu API tego kompleksu, 253 00:15:16,180 --> 00:15:20,600 , ale jest to, aby pokazać Ci zasięg i siłę, co API może zrobić. 254 00:15:20,600 --> 00:15:24,980 Innymi słowy, przy użyciu stosunkowo prostego układu, że w zasadzie ma zapytania pole wprowadzania 255 00:15:24,980 --> 00:15:29,490 z kilku selektorów innych w różnych miejscach. 256 00:15:29,490 --> 00:15:32,010 >> Pozwól Powiększ tutaj. 257 00:15:32,010 --> 00:15:37,720 Mamy pole wprowadzania z kilku wyborów różnych metadanych, 258 00:15:37,720 --> 00:15:40,610 i mamy oś Y i wybór osi X. 259 00:15:40,610 --> 00:15:42,830 Właściwie nie ma, że ​​wiele pól, 260 00:15:42,830 --> 00:15:46,210 i widzimy, bardzo łatwo jesteśmy w stanie wywołać jakieś API 261 00:15:46,210 --> 00:15:48,510 i uzyskać dane z powrotem, a następnie umieścić go na tym wykresie 262 00:15:48,510 --> 00:15:52,080 który następnie będzie wyświetlić w użyteczny sposób. 263 00:15:52,080 --> 00:15:54,970 Spojrzeć na inny przykład, że może być nieco bardziej zaznajomieni z wami 264 00:15:54,970 --> 00:15:56,510 będziemy zwracać się do Facebooka. 265 00:15:56,510 --> 00:15:59,440 API Facebooka jest nazywany wykres Facebook, 266 00:15:59,440 --> 00:16:04,390 iw zasadzie co to znaczy jest Facebook widzi siebie jako tego ogromnej bazy danych 267 00:16:04,390 --> 00:16:08,000 z wielu różnych części, które wszystkie mają pewne związki siebie. 268 00:16:08,000 --> 00:16:11,070 Innymi słowy, jestem użytkownikiem na Facebooku, więc mam profil, 269 00:16:11,070 --> 00:16:14,310 i mają pewne przyjaciół, a każdy z nich ma profil, 270 00:16:14,310 --> 00:16:17,580 i każdy z moich znajomych ma ścianę, która ma różne uwagi na to, 271 00:16:17,580 --> 00:16:20,800 a każda z tych uwag ma sympatie i wszystkie tego rodzaju rzeczy. 272 00:16:20,800 --> 00:16:23,100 >> Jest wiele różnych części do Facebook. 273 00:16:23,100 --> 00:16:26,670 To niezwykle skomplikowane API, a tam ton, które można zrobić z nim, 274 00:16:26,670 --> 00:16:28,450 ale w rzeczywistości jest bardzo prosty w użyciu. 275 00:16:28,450 --> 00:16:33,680 Mam zamiar zacząć od zamiar graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 który jest moim unikalna nazwa konta i nazwa konta będzie albo 277 00:16:38,430 --> 00:16:43,710 jakieś słowa, jeśli wybrałeś go, lub może po prostu być ciąg liczb. 278 00:16:43,710 --> 00:16:46,360 Co wracamy jest dość podstawowe informacje. 279 00:16:46,360 --> 00:16:50,460 Widzimy, że mam na imię, co jest Billy, nazwisko, które jest Janitsch. 280 00:16:50,460 --> 00:16:53,370 Jest to unikatowy identyfikator, Facebook, które mam. 281 00:16:53,370 --> 00:16:57,920 Można zobaczyć, że jestem mężczyzną i że mam ustawienia języka 282 00:16:57,920 --> 00:17:01,290 do brytyjskiego angielskiego. 283 00:17:01,290 --> 00:17:03,490 Innymi słowy, widzimy bardzo podstawowych informacji tutaj. 284 00:17:03,490 --> 00:17:08,670 To nie jest zbyt wiele, ale to nie daje nam wyobrażenie o tym, co tam jest. 285 00:17:08,670 --> 00:17:10,849 >> Możemy zrobić to samo dla Davida Malan, na przykład. 286 00:17:10,849 --> 00:17:13,599 Myślę, że jego imię jest dmalan. 287 00:17:13,599 --> 00:17:16,369 Widzimy David Malan ma unikatowy identyfikator. 288 00:17:16,369 --> 00:17:19,300 Ma nazwisko, imię, imię, nazwisko. 289 00:17:19,300 --> 00:17:24,210 Widzimy także, że jest mężczyzną i ma swój zestaw do języka amerykańskiego angielskiego. 290 00:17:24,210 --> 00:17:26,869 Innymi słowy, widzimy dość podstawowe informacje tutaj. 291 00:17:26,869 --> 00:17:28,860 A teraz, co się stanie, jeśli staramy się sprawdzić coś jeszcze? 292 00:17:28,860 --> 00:17:33,060 Powiedzmy, że jestem zainteresowany tym, co się lubi David Malan na Facebooku. 293 00:17:33,060 --> 00:17:36,860 Mogę zrobić / lubi. Teraz musimy uruchomić na problem. 294 00:17:36,860 --> 00:17:39,280 Mamy jakąś błędzie token dostępu 295 00:17:39,280 --> 00:17:41,660 powinien zażądać tego zasobu. 296 00:17:41,660 --> 00:17:44,730 Ale jeśli myślisz o tym, że rzeczywiście ma sens, bo to byłoby dziwne 297 00:17:44,730 --> 00:17:47,830 jeśli można przejść każdy element bazy danych w Facebook 298 00:17:47,830 --> 00:17:50,170 tylko z jakiegoś prostego API, prawda? 299 00:17:50,170 --> 00:17:56,040 Innymi słowy, prawdopodobnie informacje nie mogą być dostępne dla każdego, kto chce. 300 00:17:56,040 --> 00:17:58,330 >> Ten błąd jest dokładnie tym, co to znaczy. 301 00:17:58,330 --> 00:18:03,630 Niektóre interfejsy API wymagają pewnych uprawnień w celu uzyskania dostępu do ich danych. 302 00:18:03,630 --> 00:18:06,940 A nawet bardziej zaawansowane API, podobnie jak Facebook jeden, 303 00:18:06,940 --> 00:18:09,840 będzie wymagać niektóre uprawnienia do robienia pewnych rzeczy. 304 00:18:09,840 --> 00:18:12,650 Widzę to podstawowe informacje na temat David Malan. 305 00:18:12,650 --> 00:18:15,950 Widzę, że jest mężczyzną i że mieszka w Stanach Zjednoczonych, 306 00:18:15,950 --> 00:18:19,270 ale naprawdę nie mogę nic zobaczyć, że w przeszłości. 307 00:18:19,270 --> 00:18:23,050 Aby obejść ten problem teraz, Facebook ma tę miłą narzędzia 308 00:18:23,050 --> 00:18:27,690 który jest wykresem API explorer, a pomysł, że to można sortować z 309 00:18:27,690 --> 00:18:31,880 uzupełnić uprawnienia dla siebie na podstawie własnego konta 310 00:18:31,880 --> 00:18:35,680 a następnie przeglądać rzeczy, które specjalnie na koncie może wyświetlać. 311 00:18:35,680 --> 00:18:45,120 Na przykład, jeśli mam zrobić graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 ups, chyba muszę ponownie zatwierdzać mój znak tutaj. 313 00:18:53,510 --> 00:18:55,950 Okay. 314 00:18:55,950 --> 00:19:01,740 Jeśli zrobić to jeszcze raz, świetnie, teraz widzę, że mam do tego obiektu z powrotem 315 00:19:01,740 --> 00:19:06,300 która mówi, że lubię makaron basen, które są w kategorii Gry i zabawki. 316 00:19:06,300 --> 00:19:08,620 Chciałbym morsy, które są w Animal kategorii. 317 00:19:08,620 --> 00:19:10,180 Są to moje rzeczywiste likes Facebook. 318 00:19:10,180 --> 00:19:13,280 Są trochę krępujące. 319 00:19:13,280 --> 00:19:16,090 >> Ale widzimy, że dane te są zwracane w formacie JSON. 320 00:19:16,090 --> 00:19:18,160 To dość czytelny. 321 00:19:18,160 --> 00:19:20,970 Innymi słowy, mamy to mapowanie danych do jakiejś tablicy, 322 00:19:20,970 --> 00:19:25,220 i każdy element tej tablicy jest hashmap który odwzorowuje 323 00:19:25,220 --> 00:19:28,530 nazwa jak i kategoria jak. 324 00:19:28,530 --> 00:19:31,240 Każdy jak ma unikatowy identyfikator. 325 00:19:31,240 --> 00:19:34,510 Istnieje wiele różnych rzeczy danych, które możemy uzyskać, 326 00:19:34,510 --> 00:19:37,980 i jeśli jesteś zainteresowany pomocą Facebook API dla CS50 projektu końcowego 327 00:19:37,980 --> 00:19:40,720 lub coś w tym stylu to całkiem wykonalne. 328 00:19:40,720 --> 00:19:44,260 Zasadniczo, jak można dostać się wokół rzeczy uwierzytelniania jest Facebook 329 00:19:44,260 --> 00:19:48,030 korzysta z systemu o nazwie OAuth lub otworzyć uwierzytelniania, 330 00:19:48,030 --> 00:19:52,870 i nie chcę, aby dostać się do niego teraz, bo OAuth lub inny rodzaj 331 00:19:52,870 --> 00:19:56,060 uwierzytelniania zazwyczaj różnią się znacznie między różnymi API, 332 00:19:56,060 --> 00:19:58,320 więc mogłem spędzić długi czas dzieje się każdego z nich, 333 00:19:58,320 --> 00:20:01,170 ale są faktycznie dość oczywiste. 334 00:20:01,170 --> 00:20:04,050 >> Jeśli Google Facebook API jest bardzo czytelny. 335 00:20:04,050 --> 00:20:06,670 Jest cała spec. 336 00:20:06,670 --> 00:20:10,210 Na przykład, jest to dokumentacja do Facebook API 337 00:20:10,210 --> 00:20:14,170 i widać, że jestem na stronie użytkownika, dzięki czemu można dowiedzieć się wszystkiego na temat różnych rodzajów rzeczy 338 00:20:14,170 --> 00:20:17,170 , które są dostępne, aby uzyskać w miarę dane 339 00:20:17,170 --> 00:20:21,550 a także różne uprawnienia, że ​​trzeba, aby uzyskać do nich dostęp. 340 00:20:21,550 --> 00:20:25,470 Jak widzieliśmy, nie potrzebujemy uprawnień dostępu nazwę lub płeć, 341 00:20:25,470 --> 00:20:29,380 ale poza tym, że jest konieczne uprawnienia do większości rzeczy. 342 00:20:29,380 --> 00:20:33,040 Ta strona, czy raczej, ta strona będzie również powiedzieć, jak dostać się 343 00:20:33,040 --> 00:20:35,640 znak, aby móc się autoryzować. 344 00:20:35,640 --> 00:20:39,290 Większość systemów uwierzytelniania użyć jakiegoś tokena 345 00:20:39,290 --> 00:20:42,880 gdzie masz tę unikalną wartość, która jest naprawdę długi i losowy ciąg znaków, 346 00:20:42,880 --> 00:20:46,240 iw ten sposób można je skojarzyć z wnioskiem, że robisz z tobą. 347 00:20:46,240 --> 00:20:50,560 Innymi słowy, oni wiedzą, że nie robisz nic podejrzanego z ich danymi. 348 00:20:50,560 --> 00:20:53,340 Wiedzą dokładnie, co dostajesz. 349 00:20:53,340 --> 00:20:56,180 Wiedzą również, że masz uprawnienia do wyświetlania tych informacji. 350 00:20:56,180 --> 00:20:59,110 >> Po dokonaniu Facebook app i Twoja aplikacja ma pewne użytkowników, 351 00:20:59,110 --> 00:21:03,380 oraz tych użytkowników, pozwoliły, że aplikacji na dostęp do niektórych części swojego profilu, 352 00:21:03,380 --> 00:21:07,790 wówczas cokolwiek klucz API lub token, że aplikacja korzysta 353 00:21:07,790 --> 00:21:11,090 będzie w stanie uzyskać dostępu do danych dla tych użytkowników. 354 00:21:11,090 --> 00:21:13,780 Może to wydawać skomplikowane, ale nie jest tak źle, 355 00:21:13,780 --> 00:21:16,810 a jeśli chcesz użyć Facebook Gorąco zalecamy 356 00:21:16,810 --> 00:21:18,990 pod gry z ich API. 357 00:21:18,990 --> 00:21:21,610 To bardzo fajne, i można zrobić wiele różnych rzeczy z nim. 358 00:21:21,610 --> 00:21:24,880 Jeśli użytkownik udziela te uprawnienia można nawet wrócić do API 359 00:21:24,880 --> 00:21:28,820 i powiedzieć, że chcesz faktycznie napisać do tego użytkownika ścianie, lub chcę mieć je zamieścić zdjęcie, 360 00:21:28,820 --> 00:21:32,390 i dlatego na wiadomości RSS będziesz czasami tych denerwujących rzeczy 361 00:21:32,390 --> 00:21:37,840 mówiąc znajomy obserwował ten film w jakimś dziwnym miejscu, albo coś takiego. 362 00:21:37,840 --> 00:21:43,120 To dlatego, że aplikacja została przyznana dostęp do wysyłania na ścianie tej osoby. 363 00:21:43,120 --> 00:21:48,350 Pomysł ogólnie, Facebook API jest dość skomplikowany, ale również bardzo przydatne. 364 00:21:48,350 --> 00:21:53,220 Na pewno warto sprawdzić, jeśli nadal szuka ostatecznego projektu. 365 00:21:53,220 --> 00:21:57,930 >> Kolejny zestaw API, które mam zamiar iść na to CS50 API. 366 00:21:57,930 --> 00:22:00,070 Pozwól mi przybliżyć tutaj. 367 00:22:00,070 --> 00:22:03,390 CS50 rzeczywiście ułożyła cały szereg interfejsów API 368 00:22:03,390 --> 00:22:07,080 że można użyć do ostatecznego projektu lub po prostu na wszystko, co robisz. 369 00:22:07,080 --> 00:22:12,830 I są one głównie związane z Harvardu, a różnią się one w menu Huds, 370 00:22:12,830 --> 00:22:17,780 na przykład, do tej Harvard Events API, które pozwoli Ci uzyskać dostęp do listy 371 00:22:17,780 --> 00:22:21,290 różnych zdarzeń, które dzieje się na Harvardzie i tego typu rzeczy. 372 00:22:21,290 --> 00:22:24,510 I tak możemy kliknąć na jednym z nich i uzyskać specyfikację dla niego, 373 00:22:24,510 --> 00:22:28,090 której będziesz w stanie znaleźć jakiegokolwiek API, a pomysł jest 374 00:22:28,090 --> 00:22:33,920 że pozwala wiesz, co konkretnie zwrócić z API i jak się o nią zwrócą. 375 00:22:33,920 --> 00:22:37,370 Innymi słowy, jeśli chcę, wszystkie wydarzenia, które dzieją się jutro 376 00:22:37,370 --> 00:22:42,550 następnie muszę oczywiście dać mu tę datę, które chcę w określonym formacie, 377 00:22:42,550 --> 00:22:46,030 i B, to powiedz mi dokładnie, co to da się do mnie. 378 00:22:46,030 --> 00:22:48,590 To znaczy mam zamiar wrócić ci ten obiekt JSON, 379 00:22:48,590 --> 00:22:50,960 lub jak widać, istnieją różne formaty. 380 00:22:50,960 --> 00:22:54,050 >> Można również zwrócić dane w formacie CSV, na przykład. 381 00:22:54,050 --> 00:22:57,620 Ale wiesz, jak dokładnie, że dane będzie wyglądać kiedy dostaniesz ją z powrotem 382 00:22:57,620 --> 00:23:00,610 więc można się spodziewać do robienia pewnych rzeczy z nim. 383 00:23:00,610 --> 00:23:07,240 Możemy przewijania i zobacz, na przykład, jeśli chcemy kwerendy API 384 00:23:07,240 --> 00:23:11,500 aby kalendarz, możemy używać tego konkretnego adresu URL 385 00:23:11,500 --> 00:23:16,480 i nadać mu pewne parametry, które będą dane, które chcemy dokładnie. 386 00:23:16,480 --> 00:23:19,540 I podobnie, jeśli chcemy dane z powrotem w określonym formacie, 387 00:23:19,540 --> 00:23:23,790 to możemy poprosić go do wyprowadzania danych w pliku CSV, 388 00:23:23,790 --> 00:23:27,700 i to po prostu inny parametr, że jesteśmy przechodząc do API. 389 00:23:27,700 --> 00:23:29,210 Dużo fajnych rzeczy do zrobienia. 390 00:23:29,210 --> 00:23:32,550 Zdecydowanie polecam sprawdzić na CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Będę patrzeć na tego API Harvard Żywności w szczególności na trochę. 392 00:23:36,000 --> 00:23:39,870 Jedna rzecz, jaką faktycznie przeznaczone jest to Harvard strona Noms, 393 00:23:39,870 --> 00:23:44,930 który używa CS50 API Jedzenie pobrać Huds menu na dany dzień. 394 00:23:44,930 --> 00:23:50,400 I dla osób przedłużających szkolnych, Huds jest usługa jadalnia na Harvardzie. 395 00:23:50,400 --> 00:23:55,130 Co masz jest ta strona, która zawiera wszystkie posiłki na dzień, więc widzimy lunch. 396 00:23:55,130 --> 00:23:58,130 Mamy kilka różnych kategorii. Mamy Bean i całej stacji ziarna. 397 00:23:58,130 --> 00:24:00,340 Mamy brązowy stację ryżu. 398 00:24:00,340 --> 00:24:03,360 Widzimy na brunch mamy te kilka produktów spożywczych. 399 00:24:03,360 --> 00:24:07,030 Jeśli klikniemy na nich, to możemy uzyskać informacji o wartości odżywczej. 400 00:24:07,030 --> 00:24:12,240 Widzisz to jest informacja żywieniowa dla grejpfrutów, w razie gdybyś się zastanawiał. 401 00:24:12,240 --> 00:24:14,870 I znowu mamy zamiar zajrzeć do tylnego końca tutaj trochę 402 00:24:14,870 --> 00:24:18,530 i zobaczyć, co dokładnie to robi, aby uzyskać te dane. 403 00:24:18,530 --> 00:24:21,710 I okazuje się w rzeczywistości nie jest bardzo złożony w ogóle. 404 00:24:21,710 --> 00:24:28,720 Ten plik wygląda trochę brudny, ale należy pamiętać, że to zajmuje całą stronę, 405 00:24:28,720 --> 00:24:34,130 i jeśli przewiń widzimy tę funkcję danych zmian. 406 00:24:34,130 --> 00:24:36,630 >> Teraz, żeby było jasne, to jest napisane w CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 który jest językiem, który prawdopodobnie nie widział. 408 00:24:39,570 --> 00:24:44,810 Ale to dość czytelny, więc będę chodzić po nim, jakby to było pseudokod. 409 00:24:44,810 --> 00:24:49,080 Zmiana daty to funkcja, która zajmie w tej wartości dat, 410 00:24:49,080 --> 00:24:51,740 i to również zamiar podjąć w pierwszym, które nie dbają o jak najwięcej. 411 00:24:51,740 --> 00:24:54,110 Ale najważniejsze jest to, że ten termin, 412 00:24:54,110 --> 00:25:00,080 i ta data jest dzień, że chcemy zwrócić wszystkie elementy żywności dla. 413 00:25:00,080 --> 00:25:04,030 A potem widzisz mamy trochę składni tutaj 414 00:25:04,030 --> 00:25:09,000 który jest w zasadzie parsowania tę datę na format czytelny. 415 00:25:09,000 --> 00:25:11,920 Innymi słowy, API wymaga datę w określonym formacie. 416 00:25:11,920 --> 00:25:17,390 Nie można po prostu powiedzieć, 16 listopada 2012 AD. 417 00:25:17,390 --> 00:25:20,320 To nie będzie wiedział, co z tym zrobić. Chce datę w określonym formacie. 418 00:25:20,320 --> 00:25:23,230 Wszystko robimy tutaj daje to dokładnie, że format, 419 00:25:23,230 --> 00:25:26,520 co roku wartość i następnie myślnik, wartość miesiąca, 420 00:25:26,520 --> 00:25:29,420 kolejny myślnik oraz wartość data. 421 00:25:29,420 --> 00:25:34,910 I my również powiedzieć, że dane mają być wyprowadzane w formacie JSON. 422 00:25:34,910 --> 00:25:37,560 >> Teraz robimy to żądanie AJAX, a jak już wcześniej wspomniano, 423 00:25:37,560 --> 00:25:41,680 jQuery ma to super przydatnych funkcji AJAX, który wszystko, co musisz zrobić, to podać 424 00:25:41,680 --> 00:25:45,780 kilka parametrów i tutaj, a ona da Ci dokładnie to, czego chcą. 425 00:25:45,780 --> 00:25:50,490 Mówimy to, że adres URL chcemy iść do to CS50 API Food, 426 00:25:50,490 --> 00:25:52,270 które mamy od spec. 427 00:25:52,270 --> 00:25:56,730 Mówimy, że chcemy, aby dane w formacie JSON i że 428 00:25:56,730 --> 00:25:59,490 mamy zamiar dać mu te dane, które mamy zdefiniowane tutaj. 429 00:25:59,490 --> 00:26:02,670 To jest dzień chcemy elementy żywności dla. 430 00:26:02,670 --> 00:26:07,790 A potem wszystko, co musimy zrobić, to określić jakąś funkcję sukcesu, 431 00:26:07,790 --> 00:26:11,980 które jest w zasadzie to, co się dzieje, kiedy API zwraca te dane. 432 00:26:11,980 --> 00:26:15,490 Innymi słowy, mamy pakowane wszystkie parametry, które chcemy, 433 00:26:15,490 --> 00:26:20,530 która w tym przypadku jest to, że na dzień oraz, że ma to, że chcemy w JSON 434 00:26:20,530 --> 00:26:23,840 i wysłał go do API, więc teraz API mówi, dobrze, 435 00:26:23,840 --> 00:26:26,350 tu jest twoje dane, dostałem go z powrotem do Ciebie. 436 00:26:26,350 --> 00:26:29,930 Mamy funkcję sukces, co oznacza, zważywszy że API 437 00:26:29,930 --> 00:26:32,230 pomyślnie zwraca jakieś dane, co mamy z nim zrobić? 438 00:26:32,230 --> 00:26:35,980 >> I okazuje się, że wszystko, co robimy jest wywołanie tej funkcji menu aktualizacji 439 00:26:35,980 --> 00:26:42,680 z tym, co API wrócił, więc możemy wyszukiwać że 440 00:26:42,680 --> 00:26:47,970 i widzę, że wszystko co robimy jest za pomocą pęczku nowej składni tutaj 441 00:26:47,970 --> 00:26:52,220 do aktualizacji HTML i wstawić nowych danych. 442 00:26:52,220 --> 00:26:56,580 Co pozwala to mamy te strzałki po obu stronach, i możemy kliknąć, 443 00:26:56,580 --> 00:27:01,060 a teraz mamy do czynienia z danymi do następnego dnia i znowu na następny dzień, 444 00:27:01,060 --> 00:27:04,820 i za każdym razem jest to aktualizacja, że ​​wartość daty i sprawdzenia API, 445 00:27:04,820 --> 00:27:07,510 powrót niektórych danych i umieszczenie go na stronie. 446 00:27:07,510 --> 00:27:10,590 Ponownie widać, super, super przydatny. 447 00:27:10,590 --> 00:27:14,410 Ta aplikacja zajęło mi kilka godzin do włamywanie razem 448 00:27:14,410 --> 00:27:20,140 a ja mam trochę więcej doświadczenia, oczywiście, ale swoją CS50 końcowego projektu 449 00:27:20,140 --> 00:27:22,870 może wyglądać bardzo podobnie do tego. 450 00:27:22,870 --> 00:27:29,540 >> API są potężny w wysokości nakładu, że podejmą. 451 00:27:29,540 --> 00:27:32,800 Ostatnią rzeczą, mam zamiar iść na to jeszcze kilka API szeroko. 452 00:27:32,800 --> 00:27:35,480 Nie będzie się w nim w zakresie aż do co konkretnie, 453 00:27:35,480 --> 00:27:38,740 ale dam ci pomysł, co tam jest. 454 00:27:38,740 --> 00:27:42,700 2 bardzo przydatne z nich, jeśli jesteś zainteresowany w analizie danych i wizualizacji 455 00:27:42,700 --> 00:27:45,960 lub coś w tym stylu, to Freebase i Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-zapewne wszyscy wiecie, to darmowa encyklopedia, 457 00:27:49,800 --> 00:27:53,230 i faktycznie ma API, więc jeśli chcesz, na przykład, 458 00:27:53,230 --> 00:27:56,250 uzyskać wszystkie teksty i artykuły dla ośmiornicy 459 00:27:56,250 --> 00:27:58,030 można bardzo łatwo zrobić. 460 00:27:58,030 --> 00:28:02,300 Wystarczy powiedzieć, hej, Wikipedia API, chciałbym dane zwrócone jak ta, 461 00:28:02,300 --> 00:28:07,010 i chciałbym go w tym formacie, a artykuł chciałbym to ośmiornica, 462 00:28:07,010 --> 00:28:09,820 i bardzo szybko będzie oddać te informacje. 463 00:28:09,820 --> 00:28:12,230 To może być bardzo przydatne, jeśli chcesz, aby jakieś strony 464 00:28:12,230 --> 00:28:16,200 to lepsza przeglądarka dla Wikipedii czy coś takiego. 465 00:28:16,200 --> 00:28:21,350 >> Freebase jest trochę podobna, choć to nieco trudniejsze w miarę API. 466 00:28:21,350 --> 00:28:24,390 Freebase jest jak w Wikipedii, że jest to encyklopedia online 467 00:28:24,390 --> 00:28:29,050 który zawiera wiele, wiele różnych danych na temat wszelkiego rodzaju różnych tematów, 468 00:28:29,050 --> 00:28:33,150 ale to jest przechowywane w relacyjnej bazie danych, która jest nieco inna z Wikipedii. 469 00:28:33,150 --> 00:28:36,410 Wikipedia ma swoje artykuły i artykuły związane z innych artykułów, 470 00:28:36,410 --> 00:28:38,860 ale w przeważającej części, jeśli chcesz dane do ośmiornicy, 471 00:28:38,860 --> 00:28:41,990 przejdź do artykułu ośmiornicy, uzyskać te dane, a masz kilka tekstów 472 00:28:41,990 --> 00:28:43,830 o ośmiornic, więc to świetnie. 473 00:28:43,830 --> 00:28:46,870 Freebase działa w nieco bardziej skomplikowany sposób, w który 474 00:28:46,870 --> 00:28:48,930 wszystko się do siebie. 475 00:28:48,930 --> 00:28:52,620 Innymi słowy, jeśli mamy poszukiwaniu ośmiornicy 476 00:28:52,620 --> 00:28:54,940 to ma kilka kategorii z nią związanych. 477 00:28:54,940 --> 00:28:57,920 >> Na przykład, to jest zwierząt, żyje wodą, 478 00:28:57,920 --> 00:28:59,710 ma pewną temperaturę ciała. 479 00:28:59,710 --> 00:29:01,210 Nie wiem. 480 00:29:01,210 --> 00:29:04,230 I wszystkie z tych kategorii znajdują się odnośniki do innych miejsc, gdzie można przejść 481 00:29:04,230 --> 00:29:06,640 widzieć rzeczy z tym samej kategorii. 482 00:29:06,640 --> 00:29:13,450 Innymi słowy, zbiór danych ośmiornica będzie zawierać link do danych określonych dla wszystkich zwierząt, 483 00:29:13,450 --> 00:29:16,790 i że pozwolił mi poruszać się w bazie danych bardzo szybko. 484 00:29:16,790 --> 00:29:21,740 Może to być bardzo przydatne, jeśli robisz coś w porównaniach. 485 00:29:21,740 --> 00:29:24,490 Innymi słowy, ponieważ pewne rzeczy, które chcesz przejrzeć 486 00:29:24,490 --> 00:29:27,890 co jeszcze jest to związane i zobaczyć, co jeszcze nie jest to związane. 487 00:29:27,890 --> 00:29:30,700 Tego rodzaju rzeczy. Może to być użyteczne w wielu aspektach. 488 00:29:30,700 --> 00:29:34,250 Jeśli szukasz większe wyzwanie i być w stanie zrobić kilka rzeczy bardziej złożonych 489 00:29:34,250 --> 00:29:38,740 Uważam przyjrzeniu wolnej zasady API. 490 00:29:38,740 --> 00:29:44,670 Ale w dużej mierze, Wikipedia jest bardzo proste miejsce, aby przejść w miarę uzyskiwania informacji. 491 00:29:44,670 --> 00:29:48,340 Innym miejscem, że będę patrzeć na to Last.fm, a ja faktycznie się przejść do witryny 492 00:29:48,340 --> 00:29:53,800 w przypadku, niektórzy ludzie nie są znane, ale Last.fm jest zasadniczo muzyka 493 00:29:53,800 --> 00:29:57,220 gusta i website zalecenia. 494 00:29:57,220 --> 00:29:59,000 Możesz zrobić konto. 495 00:29:59,000 --> 00:30:04,250 Możesz zacząć muzykę Przekazywanie z odtwarzacza muzyki 496 00:30:04,250 --> 00:30:08,020 na stronie internetowej, a przede wszystkim zacznie daje rekomendacje muzyczne 497 00:30:08,020 --> 00:30:10,030 na podstawie czego słuchać. 498 00:30:10,030 --> 00:30:14,270 >> Na przykład, jeśli pójdziesz do swojego profilu na stronie-to jest moje- 499 00:30:14,270 --> 00:30:18,180 widać masz listę ostatnio słuchałem utworów. 500 00:30:18,180 --> 00:30:22,550 Możesz zobaczyć ogólny ulubionych artystów, wszystkie tego rodzaju rzeczy, 501 00:30:22,550 --> 00:30:25,280 i znowu, istnieje duża API za Last.fm, 502 00:30:25,280 --> 00:30:29,360  i można go użyć do zrobienia wiele, wiele rzeczy, naprawdę fajne. 503 00:30:29,360 --> 00:30:38,870 Na przykład, ja pójdę do kolegi, który ma strony tej witryny Narzędzia Last.fm. 504 00:30:38,870 --> 00:30:42,380 To jest rzeczywiście inna platforma, która jest zbudowana na Last.fm API 505 00:30:42,380 --> 00:30:45,420 i robi kilka ładnych ciekawych rzeczy. 506 00:30:45,420 --> 00:30:50,260 Jeśli mogę się zalogować z moją nazwą użytkownika, na przykład, 507 00:30:50,260 --> 00:30:53,110 Można zwrócić do generowania chmurę znacznika, na przykład 508 00:30:53,110 --> 00:30:56,480 i co to będzie zrobić, to dać mnie obraz 509 00:30:56,480 --> 00:30:59,850 wszystkie różne gatunki i tego typu rzeczy, które lubię słuchać. 510 00:30:59,850 --> 00:31:01,410 Jak to się robi? 511 00:31:01,410 --> 00:31:05,670 Bardzo zasadzie to mówi do Last.fm API tutaj tego użytkownika. 512 00:31:05,670 --> 00:31:10,710 Chciałbym wiedzieć, gatunek każdej piosence, że kiedykolwiek słuchał, 513 00:31:10,710 --> 00:31:15,130 i można zrobić, że przez całkiem proste wywołanie AJAX do Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Wrócisz dużą listę, a następnie oczywiście kilka innych rzeczy się robi 515 00:31:18,990 --> 00:31:22,280 przekształcić go w chmurze słów, ale widać ogólny 516 00:31:22,280 --> 00:31:25,850 to jest bardzo łatwo dostępny i łatwy w użyciu. 517 00:31:25,850 --> 00:31:30,750 Naprawdę miły dla wielu rzeczy. 518 00:31:30,750 --> 00:31:35,940 >> Myślę, że to wszystko powiem ogólnie. 519 00:31:35,940 --> 00:31:39,040 Ostatnią rzeczą, którą wspominam o API w ogóle jest to, że 520 00:31:39,040 --> 00:31:41,840 będziesz czasami uruchomić do czegoś, co nazywa ograniczanie przepustowości, 521 00:31:41,840 --> 00:31:44,940 a pomysł ograniczania przepustowości jest to, nie chcę nadużywać API. 522 00:31:44,940 --> 00:31:48,130 Innymi słowy, jest to naprawdę miłe, że wiele z tych witryn mają API 523 00:31:48,130 --> 00:31:51,070 że można przejść i korzystanie za darmo. 524 00:31:51,070 --> 00:31:54,460 Jednak jeśli robisz miliony czy miliardy żądań dziennie, 525 00:31:54,460 --> 00:31:57,610 na przykład, jeśli utkniesz w nieskończonej pętli, która jest nieskończenie zapytaniem 526 00:31:57,610 --> 00:32:00,680 jakieś API i powrót ogromną ilość danych, 527 00:32:00,680 --> 00:32:04,570 oczywiście, że nie jest dobre, więc to, co wiele API zrobić to nie ta stawka ograniczenie funkcji 528 00:32:04,570 --> 00:32:09,970 mówi, że można wykonywać tylko 1.000 wniosków dziennie na adres IP lub coś podobnego. 529 00:32:09,970 --> 00:32:12,540 A jeśli robisz wiele testów i tego typu rzeczy, 530 00:32:12,540 --> 00:32:14,890 będziesz czasami uruchomić w tym, i nagle się wyłącza cię 531 00:32:14,890 --> 00:32:18,280 i powiedzieć nie, nie dam ci więcej danych. 532 00:32:18,280 --> 00:32:20,000 >> Co chcesz zrobić, to grać zgodnie z zasadami. 533 00:32:20,000 --> 00:32:22,950 Chcesz się upewnić, że zapoznanie się z API Spec ostrożnie. 534 00:32:22,950 --> 00:32:26,330 Jeśli ma pewne zasady z nim związane, jak ty mogą jedynie X zapytań na dzień 535 00:32:26,330 --> 00:32:30,000 czy można mieć dostęp tylko do części bazy danych określoną liczbę razy 536 00:32:30,000 --> 00:32:32,900 czy coś, że chcesz się upewnić, że trzymać się tego. 537 00:32:32,900 --> 00:32:38,360 Jak długo grasz w tych zasad prawdopodobnie będziesz mieć naprawdę miło czas przy użyciu API. 538 00:32:38,360 --> 00:32:42,030 Twoja ogólna takeaway jest API są naprawdę przydatne. 539 00:32:42,030 --> 00:32:45,610 >> Jest API do niemal dowolnej usługi dużym internetowej tam. 540 00:32:45,610 --> 00:32:50,700 Prawie każda część pakietu narzędzi Google, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 Gmail, Google Calendar, wszystkie te rzeczy mają API. 542 00:32:54,390 --> 00:32:58,280 Można ich używać zarówno do pobierania danych z serwera i wysłać dane do serwera. 543 00:32:58,280 --> 00:33:00,870 Innymi słowy, jeśli chcesz złożyć aplikację kalendarza, który może aktualizować 544 00:33:00,870 --> 00:33:04,190 czyjaś Kalendarz Google, istnieje API do tego. 545 00:33:04,190 --> 00:33:07,810 Jeśli chcesz, aby coś, co powie ci, gdzie 546 00:33:07,810 --> 00:33:12,530 lokalizacja określonego adresu to możesz użyć Google Maps API do tego. 547 00:33:12,530 --> 00:33:15,860 API są fantastycznie przydatne i są wszędzie. 548 00:33:15,860 --> 00:33:18,700 Jeśli jesteś zainteresowany w jakiejś idei, 549 00:33:18,700 --> 00:33:22,170 prawdopodobnie jest związane z API, które można użyć, aby uzyskać dużo danych 550 00:33:22,170 --> 00:33:25,060 bardzo szybko i bardzo prosto. 551 00:33:25,060 --> 00:33:28,140 >> Jeśli wciąż szukasz projektu lub jeśli po prostu chcesz się bawić 552 00:33:28,140 --> 00:33:31,820 coś w ogóle, API są zdecydowanie warto to zrobić. 553 00:33:31,820 --> 00:33:37,200 Dzięki, a ja z przyjemnością odpowie na wszelkie pytania, że ​​chłopaki mogą mieć. 554 00:33:37,200 --> 00:33:44,900 Ok, dzięki. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]