1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Семінар] [Уводзіны ў праграмаванне інтэрфейсаў API] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Гарвардскі універсітэт] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Гэта CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Прывітанне, усім, я Білі, і сёння я буду казаць пра API, 5 00:00:12,100 --> 00:00:15,220 або інтэрфейсы прыкладнога праграмавання, 6 00:00:15,220 --> 00:00:20,040 у прыватнасці, у кантэксце CS50 канчатковага праекты і таму падобнае. 7 00:00:20,040 --> 00:00:22,490 Увогуле, што API? 8 00:00:22,490 --> 00:00:25,530 У вельмі шырокім сэнсе, гэта свайго роду пасярэднік, які дазваляе 2 шт 9 00:00:25,530 --> 00:00:28,610 праграмнае забеспячэнне для сувязі адзін з адным. 10 00:00:28,610 --> 00:00:32,530 Гэта свайго роду вельмі шырокае вызначэнне, і не тое, што адпаведныя за тое, што мы шукаем. 11 00:00:32,530 --> 00:00:35,450 Тое, што мы сапраўды хочам нейкая карысная сярэдзіна 12 00:00:35,450 --> 00:00:40,570 мець зносіны з нейкай базы дадзеных дзе-небудзь. 13 00:00:40,570 --> 00:00:43,310 >> Вось графік, і ў асноўным ідэя ў тым, што 14 00:00:43,310 --> 00:00:46,790 Мы прыкладанне, і мы хочам атрымаць дадзеныя з базы дадзеных, 15 00:00:46,790 --> 00:00:49,570 але мы не хочам, каб запыт да базы дадзеных напрамую. 16 00:00:49,570 --> 00:00:52,710 Замест гэтага мы хочам, каб прайсці праз такога роду сярэдні чалавек, API. 17 00:00:52,710 --> 00:00:55,440 Ідэя, якая нумарамі 2 і 3 на графік 18 00:00:55,440 --> 00:00:57,750 Абодва яны зьбіраюцца быць вельмі складанай і бруднай. 19 00:00:57,750 --> 00:00:59,960 Іншымі словамі, калі на інтэрфейс прыкладання запытаў да базе даных, 20 00:00:59,960 --> 00:01:03,300 гэта, верагодна, будзеце выкарыстоўваць SQL табліц, і ўсё такога роду рэчы, 21 00:01:03,300 --> 00:01:05,489 і мы даведаліся трохі аб ім у CS50, але ў цэлым, 22 00:01:05,489 --> 00:01:07,590 Вы заўважылі, што гэта трохі болю. 23 00:01:07,590 --> 00:01:10,590 Гэта становіцца вельмі, вельмі складаны і брудны, асабліва, калі вы робіце 24 00:01:10,590 --> 00:01:12,530 складаных запытаў і таму падобнае. 25 00:01:12,530 --> 00:01:15,960 >> Тое, што мы сапраўды хочам гэта нейкі карысны і просты спосаб 26 00:01:15,960 --> 00:01:19,780 каб атрымаць гэтыя дадзеныя, і гэта ідэя нумарамі 1 і 4 на графіцы. 27 00:01:19,780 --> 00:01:23,600 Іншымі словамі, мы хочам сапраўды просты спосаб расказаць API, што атрымаць для нас 28 00:01:23,600 --> 00:01:27,760 і сапраўды просты спосаб атрымаць гэтыя дадзеныя назад. 29 00:01:27,760 --> 00:01:33,020 Існуе адзін галоўны шлях, што гэтыя дадзеныя, як правіла, адпраўленыя і атрыманыя, 30 00:01:33,020 --> 00:01:36,490 які JSON, або JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 Гэта можа адрознівацца трохі, наколькі, як вы адправіць запыт API. 32 00:01:40,370 --> 00:01:43,210 Іншымі словамі, калі вы хочаце, каб некаторыя пэўную колькасць дадзеных, 33 00:01:43,210 --> 00:01:46,670 як вы кажаце API, каб атрымаць гэтыя дадзеныя могуць мяняцца няшмат. 34 00:01:46,670 --> 00:01:49,210 Звычайна гэта прадугледжвае стварэнне свайго роду сеткавы запыт. 35 00:01:49,210 --> 00:01:53,130 Іншымі словамі, доступ да нейкай URL, што збіраецца распавесці API 36 00:01:53,130 --> 00:01:56,190 менавіта тое, што вы хочаце, але дадзеныя амаль заўсёды адаслаў назад, 37 00:01:56,190 --> 00:01:59,530 Іншымі словамі, нумар 4 у JSON. 38 00:01:59,530 --> 00:02:01,030 >> Што такое JSON менавіта? 39 00:02:01,030 --> 00:02:03,030 Як я ўжо сказаў, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Гэта ў асноўным універсальны стандарт для перадачы і прыёму дадзеных. 41 00:02:07,090 --> 00:02:11,410 Ідэя складаецца ў тым, што ў вас ёсць гэтыя 3 катэгорыі рэчаў. 42 00:02:11,410 --> 00:02:13,540 У вас ёсць масівы, HashMaps, і прымітываў. 43 00:02:13,540 --> 00:02:16,580 Масівы і HashMaps вы глядзелі на трохі ў CS50, 44 00:02:16,580 --> 00:02:19,870 але ты накшталт атрымаў вельмі строгім сэнсе таго, што яны ёсць. 45 00:02:19,870 --> 00:02:22,780 Іншымі словамі, з масівамі вы ведаеце, што яны ўвесці мяжы, 46 00:02:22,780 --> 00:02:26,560 так што ў вас ёсць толькі адзін від тыпу, які ідзе па ўсім масіве. 47 00:02:26,560 --> 00:02:29,310 JSON з'яўляецца значна больш паблажлівыя да такога роду рэчы. 48 00:02:29,310 --> 00:02:33,590 У прынцыпе ідэя вам пабудаваць гэты аб'ект, 49 00:02:33,590 --> 00:02:36,270 якая можа складацца з любога з гэтых 3 рэчаў 50 00:02:36,270 --> 00:02:39,470 і можа складацца з некалькіх тыя з іх, і яны могуць быць укладзенымі. 51 00:02:39,470 --> 00:02:42,110 >> Вось накшталт прыкладу JSON, 52 00:02:42,110 --> 00:02:47,910 якіх гэтыя фігурныя дужкі тут прадстаўляць вашы HashMap, 53 00:02:47,910 --> 00:02:51,400 і HashMap ў асноўным адлюстраванне свайго роду ключ 54 00:02:51,400 --> 00:02:53,340 да нейкай каштоўнасцю. 55 00:02:53,340 --> 00:02:56,440 Вы ўбачыце тут, што ў нас ёсць ўласцівасці ключа, 56 00:02:56,440 --> 00:02:59,600 і гэта адлюстраванне на масіў, які ўсё гэта справа. 57 00:02:59,600 --> 00:03:04,120 Мы бачым яшчэ адзін элемент HashMap, што гэты ключ isAwesome, 58 00:03:04,120 --> 00:03:07,370 які адлюстроўвае на прымітыўным значэнні праўда, іншымі словамі, лагічнае значэнне. 59 00:03:07,370 --> 00:03:09,420 Прымітывы могуць быць радкамі. Яны могуць быць цэлымі лікамі. 60 00:03:09,420 --> 00:03:11,960 Яны могуць быць Bools, нічога падобнага. 61 00:03:11,960 --> 00:03:18,410 І вы бачыце змесціва гэтага масіва, які паказвае на ўласцівасці мае 2 радкі ў ім, 62 00:03:18,410 --> 00:03:20,050 автомодельному і выдатна. 63 00:03:20,050 --> 00:03:27,410 Тыя, у 2 ўласцівасці JSON, і мы бачым, што JSON з'яўляецца дзіўным. 64 00:03:27,410 --> 00:03:30,060 Каб глядзець на гэта больш уважліва я збіраюся пабудаваць 65 00:03:30,060 --> 00:03:32,870 Больш складаны прыклад JSON тут. 66 00:03:32,870 --> 00:03:37,000 >> Давайце пачнем з масівам, напрыклад, проста пусты масіў. 67 00:03:37,000 --> 00:03:39,180 Але гэта свайго роду сумна, таму мы збіраемся запоўніць яго крыху, 68 00:03:39,180 --> 00:03:43,420 і як я ўжо сказаў, масівы ў JSON маюць тып мяжы, 69 00:03:43,420 --> 00:03:46,400 такім чынам, мы маглі б таксама ёсць радок тут, што прывітанне, 70 00:03:46,400 --> 00:03:49,330 і гэта яшчэ адзін элемент гэтага масіва. 71 00:03:49,330 --> 00:03:53,450 А таксама, мы маглі б дадаць hashmapping тут, які будзе мець некалькі адлюстраванняў. 72 00:03:53,450 --> 00:04:00,470 Гэта будзе мець адлюстраванне назвы ў радок Білі. 73 00:04:00,470 --> 00:04:04,590 У нас ёсць адлюстраванне імя Білі, і мы маем адлюстраванне 74 00:04:04,590 --> 00:04:10,860 Любімы колер на сіні. 75 00:04:10,860 --> 00:04:12,700 Гэта ў асноўным добры прыклад JSON. 76 00:04:12,700 --> 00:04:18,160 Гэта збольшага трапляе ў-воклічы, патрэбна коска там-ўсё розныя яе часткі. 77 00:04:18,160 --> 00:04:21,140 Зноў жа, гэта не звязана ўвесці на ўсіх, так што вы можаце мець любыя тыпы 78 00:04:21,140 --> 00:04:24,710 ўнутры ўсё, што вы хочаце, і ідэя, што гэта автомодельному. 79 00:04:24,710 --> 00:04:28,830 Іншымі словамі, гэта прама тут з'яўляецца аб'ект JSON, як усё гэта справа, 80 00:04:28,830 --> 00:04:33,200 як толькі ў гэтым, так што вы можаце мець прымітыўную быць аб'ектам, 81 00:04:33,200 --> 00:04:35,680 Масіў быць аб'ектам або HashMap быць аб'ектам. 82 00:04:35,680 --> 00:04:40,270 >> Як вы можаце бачыць выгляд, JSON вельмі, вельмі карысная тым, што яна так універсальная. 83 00:04:40,270 --> 00:04:45,860 Вы можаце мець любое магчымае дадзеных, якія можна захоўваць у сабе JSON. 84 00:04:45,860 --> 00:04:47,900 Гэта робіць яго сапраўды добры мова для працы з API-інтэрфейсаў 85 00:04:47,900 --> 00:04:50,770 таму што гэта ў значнай ступені азначае, што незалежна ад дадзеных, якія вы хочаце 86 00:04:50,770 --> 00:04:54,270 там збіраецца быць нейкі спосаб, каб вярнуць яго ў JSON. 87 00:04:54,270 --> 00:04:58,600 Праз некалькі уласцівасцяў, якія робяць JSON асабліва добрая для такога роду рэчаў. 88 00:04:58,600 --> 00:05:02,270 Як вы можаце бачыць, у параўнанні з шмат рэчаў, якія вы ўжо працуеце ў CS50 89 00:05:02,270 --> 00:05:06,040 гэта параўнальна вельмі лёгка чытаюцца, а таксама вельмі лёгка пісаць. 90 00:05:06,040 --> 00:05:09,700 Вы можаце водступу гэта, калі вы хочаце, як я рабіў у тым, што, напрыклад, 91 00:05:09,700 --> 00:05:12,990 , Які дае вам добрую, даволі версія, якую вы можаце бачыць вельмі добра. 92 00:05:12,990 --> 00:05:17,150 Але акрамя таго, гэта таксама лёгка чытаць і пісаць на кампутары. 93 00:05:17,150 --> 00:05:19,870 Іншымі словамі, гэта лёгка разабраць і лёгка кадзіраваць, 94 00:05:19,870 --> 00:05:23,820 Гэта азначае, што яна даволі хутка па меры чытання дадзеных, то, 95 00:05:23,820 --> 00:05:26,460 і JSON могуць быць створаны вельмі хутка. 96 00:05:26,460 --> 00:05:30,300 >> Гэта таксама вельмі лёгка атрымаць доступ да розных частках JSON і таму падобнае. 97 00:05:30,300 --> 00:05:33,320 Гэта ўсё выдатна, і, акрамя таго, той факт, што гэта автомодельному, 98 00:05:33,320 --> 00:05:36,090 Іншымі словамі, той факт, што вы можаце мець у JSON JSON ў JSON 99 00:05:36,090 --> 00:05:40,040 сапраўды добрая для захоўвання дадзеных. 100 00:05:40,040 --> 00:05:45,490 Іншая частка, якая, як правіла, вельмі карысна ў працы з API-інтэрфейсаў з'яўляецца JQuery. 101 00:05:45,490 --> 00:05:49,290 Вы даведаліся трохі JavaScript, які з'яўляецца добрым спосабам 102 00:05:49,290 --> 00:05:53,710 маніпуляваць HTML і CSS межах аднаго сайта. 103 00:05:53,710 --> 00:05:57,190 Але гэта можа быць выгляд болю код у просты JavaScript, 104 00:05:57,190 --> 00:05:59,810 ў значнай ступені таму, што JavaScript з'яўляецца вельмі падрабязным мове. 105 00:05:59,810 --> 00:06:03,020 Вы павінны даведацца шмат сінтаксісу і проста зрабіць вельмі простыя рэчы 106 00:06:03,020 --> 00:06:07,590 гэта займае шмат кода, так JQuery гэта бібліятэка для JavaScript. 107 00:06:07,590 --> 00:06:09,800 Іншымі словамі, гэта наяўнасць файла, які можна загрузіць 108 00:06:09,800 --> 00:06:12,730 , А затым выкарыстоўваць JQuery функцыі, каб зрабіць пэўныя рэчы. 109 00:06:12,730 --> 00:06:15,670 І Jquery асноўным робіць вашу жыццё нашмат прасцей. 110 00:06:15,670 --> 00:06:20,390 Гэта спрашчае тое, што б сотні радкоў у JavaScript да некалькіх радкоў у jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Гэта асабліва карысна, калі вы выкарыстоўваеце API, таму што наогул 112 00:06:24,430 --> 00:06:27,600 як вы будзеце атрымліваць доступ да API-інтэрфейсаў, зрабіўшы AJAX запыты, 113 00:06:27,600 --> 00:06:30,130 і я лічу, Дэвід, згаданыя ў лекцыі, што AJAX запыты 114 00:06:30,130 --> 00:06:33,120 як правіла, калі вы робіце запыт сеткі на нейкі сервер 115 00:06:33,120 --> 00:06:37,760 і вяртанне свайго роду дадзеных і абнаўлення старонкі імгненна. 116 00:06:37,760 --> 00:06:41,840 У той час як у звычайным JavaScript, што б вар'ятам колькасцю ліній 117 00:06:41,840 --> 00:06:44,620 праверыць усе загалоўкі і рабіць усё такога роду рэчы, 118 00:06:44,620 --> 00:06:46,810 JQuery мае вельмі простую функцыю пад назвай AJAX, 119 00:06:46,810 --> 00:06:51,760 і ўсё, што вам трэба зрабіць, гэта даць AJAX параметры, якія вы хочаце даць API, 120 00:06:51,760 --> 00:06:56,830 Размяшчэнне API і любыя дадатковыя роду варыянты, якія вы хочаце наладзіць. 121 00:06:56,830 --> 00:07:02,480 Гэта вельмі, вельмі добра і вельмі карысна для такога роду рэчы. 122 00:07:02,480 --> 00:07:06,970 Гэта ўсё, што нам трэба, каб пачаць атрымліваць нашы рукі брудныя ў API. 123 00:07:06,970 --> 00:07:10,220 >> Я збіраюся падняць некалькі прыкладаў і даследаваць іх розных уласцівасцяў 124 00:07:10,220 --> 00:07:13,150 і чаму яны карысныя для розных відаў рэчаў. 125 00:07:13,150 --> 00:07:15,570 Першае, што я на самой справе паказаць вам, гэта тое, што я працую на 126 00:07:15,570 --> 00:07:18,310 на мой даследчую лабараторыю, якая прагляду Ngram, 127 00:07:18,310 --> 00:07:23,270 і ў асноўным ідэя прагляду Ngram, што вы можаце шукаць нейкія словы 128 00:07:23,270 --> 00:07:28,840 ці фразе і паглядзець, як часта яна з'явілася ў пэўным наборы тэксту з цягам часу. 129 00:07:28,840 --> 00:07:33,160 У гэтым прыкладзе вось гэтага набору дадзеных немаўлятаў 130 00:07:33,160 --> 00:07:36,480 , Якія нарадзіліся ў Нью-Ёрку ў перыяд паміж 1920 і 2000 гадамі. 131 00:07:36,480 --> 00:07:40,090 Мы можам шукаць, напрыклад, для імя Джэніфер, 132 00:07:40,090 --> 00:07:44,400 і мы бачым, што да 1960-х ён сапраўды не быў выкарыстаны так ужо і шмат, 133 00:07:44,400 --> 00:07:48,900 , А затым мы трапляем ў наступныя гады яна становіцца ўсё больш і больш выкарыстоўваецца. 134 00:07:48,900 --> 00:07:53,680 Мы можам таксама зрабіць параўнанне, таму калі мы параўнаем Джэніфер, напрыклад, Thomas, 135 00:07:53,680 --> 00:07:56,520 мы бачым, Томас быў даволі распаўсюджаным на працягу ўсёй гісторыі, 136 00:07:56,520 --> 00:07:58,780 у той час як Джэніфер з'яўляецца больш новым імем. 137 00:07:58,780 --> 00:08:00,590 Мы можам зрабіць такую ​​рэч. 138 00:08:00,590 --> 00:08:02,460 >> Як гэта прыкладанне працуе? 139 00:08:02,460 --> 00:08:06,030 У асноўным, ён працуе праз API. 140 00:08:06,030 --> 00:08:08,660 Іншымі словамі, у нас ёсць пэўныя параметры тут. 141 00:08:08,660 --> 00:08:11,360 У нас ёсць параметры таго, што мы на самай справе шукалі, 142 00:08:11,360 --> 00:08:13,720 якія гэтыя імёны, а то ў нас некалькі іншыя ўласцівасці, 143 00:08:13,720 --> 00:08:16,570 як па восі Y і восі X. 144 00:08:16,570 --> 00:08:18,440 Вы можаце бачыць, у нас ёсць некалькі розных варыянтаў, наколькі 145 00:08:18,440 --> 00:08:20,860 Часовае дазвол на выкарыстанне і таго падобнае. 146 00:08:20,860 --> 00:08:26,700 У нас ёсць гэтыя параметры да таго, што дадзеныя, мы на самай справе хочам ад базы дадзеных, 147 00:08:26,700 --> 00:08:29,400 і мы хочам, каб гэтыя дадзеныя назад у некаторай карысным спосабам. 148 00:08:29,400 --> 00:08:34,020 Звычайна, калі мы запытаў да базе даных наўпрост было б накшталт быць боль, каб зрабіць 149 00:08:34,020 --> 00:08:38,970 Меркавана таму, што гэта дадзеныя аб дзіцячых імёнаў жыве ў некаторай базе дадзеных дзе-небудзь, 150 00:08:38,970 --> 00:08:42,789 і гэта будзе сапраўды складана прыйдзецца запытаць яго ўручную 151 00:08:42,789 --> 00:08:45,830 і вырашыць, якія менавіта дадзеныя, каб вярнуцца. 152 00:08:45,830 --> 00:08:49,300 Іншымі словамі, мы клапоцімся толькі пра Джэніфер і Томаса у дадзеным выпадку, 153 00:08:49,300 --> 00:08:53,410 і мы клапоцімся толькі пра на пэўнай восі, і ўсё такога роду рэчы. 154 00:08:53,410 --> 00:08:55,720 >> Як мы можам абыйсці гэта? 155 00:08:55,720 --> 00:09:01,200 Каб капаць у гэтым API трохі больш я пакажу вам яшчэ адзін прыклад гэтай платформе 156 00:09:01,200 --> 00:09:04,490 , Якая выкарыстоўвае некалькі іншы набор дадзеных. 157 00:09:04,490 --> 00:09:09,950 Гэты набор дадзеных, замест таго, каб дзіцяці імя, на самай справе проста ўсё 158 00:09:09,950 --> 00:09:12,460 раздрукаваць базу дадзеных публікацыі адкрытага бібліятэкі, 159 00:09:12,460 --> 00:09:18,410 , Якая з'яўляецца гіганцкім крыніцай тэкстаў, апублікаваных на працягу апошніх 100 гадоў або каля таго. 160 00:09:18,410 --> 00:09:23,540 Ідэя ў тым, у нас ёсць гэтая compository мільёны і мільёны тэкст, 161 00:09:23,540 --> 00:09:27,420 якіх мы можам зараз шукаць розныя словы і фразы цалі 162 00:09:27,420 --> 00:09:30,840 Вось прыклад, які змяняецца мала адрозніваецца ад папярэдняга прыкладу 163 00:09:30,840 --> 00:09:33,350 Я паказаў вам, што ў нас ёсць гэтыя 3 пошукавых запытаў, 164 00:09:33,350 --> 00:09:36,290 Вайна, вайна, і французскія словы да вайны, якая гераў. 165 00:09:36,290 --> 00:09:40,380 І мы шукаем у межах 3 розных участках агульнай базе дадзеных. 166 00:09:40,380 --> 00:09:45,080 Іншымі словамі, у гэтым першым запыце мы толькі пошукам у ЗША, 167 00:09:45,080 --> 00:09:51,150 ў другой толькі ў Вялікабрытаніі, а трэці толькі з прац, апублікаваных у Францыі. 168 00:09:51,150 --> 00:09:53,120 Мы бачым некаторыя цікавыя заканамернасці. 169 00:09:53,120 --> 00:09:58,180 Напрыклад, мы бачым прама тут якая, 170 00:09:58,180 --> 00:10:02,410 ой, я пераблытала восі трохі, але вы можаце бачыць прама ў гэтай галіне тут 171 00:10:02,410 --> 00:10:05,730 вакол Грамадзянская вайна ёсць вялікі ўсплёск у амерыканскім выданні 172 00:10:05,730 --> 00:10:08,340 але не такі вялікі ўсплёск ў двух іншых, і гэта відавочна, таму што 173 00:10:08,340 --> 00:10:10,880 Грамадзянскай вайны ў ЗША, што адбываецца ў гэтай кропцы. 174 00:10:10,880 --> 00:10:13,890 >> Мы можам убачыць некаторыя класныя рэчы там, 175 00:10:13,890 --> 00:10:17,070 але тое, што мы сапраўды клапоцімся аб тым, як мы атрымалі гэтыя дадзеныя. 176 00:10:17,070 --> 00:10:21,320 Я вазьму цябе за кулісамі ў гэта прыкладанне ў няшмат. 177 00:10:21,320 --> 00:10:24,540 Спрытны трук, калі вы працуеце з сайтам і выгляд хочуць ведаць, 178 00:10:24,540 --> 00:10:27,430 што адбываецца за кулісамі, вы можаце адкрыць інструменты для распрацоўнікаў. 179 00:10:27,430 --> 00:10:30,200 Я збіраюся выкарыстоўваць інструменты Chrome распрацоўшчыкам, і, каб дабрацца да тых, 180 00:10:30,200 --> 00:10:35,160 Вы можаце зрабіць кантроль, зрух, J, і які даставіць вас на кансоль JavaScript. 181 00:10:35,160 --> 00:10:37,420 Ёсць некалькі ўкладак тут. 182 00:10:37,420 --> 00:10:39,680 Усе яны могуць быць вельмі карысныя пры розных абставінах, але я клапачуся аб сетцы 183 00:10:39,680 --> 00:10:44,150 Ўкладка прама цяпер, і я на самой справе трэба абнавіць, каб атрымаць гэта праца. 184 00:10:44,150 --> 00:10:50,180 Ой, прабачце. 185 00:10:50,180 --> 00:10:52,320 Ён любіць даваць выпадковы прыклад. 186 00:10:52,320 --> 00:10:54,700 Добра, мы будзем выкарыстоўваць гэты прыклад, а не тады. 187 00:10:54,700 --> 00:11:01,330 >> Ідэя ў тым, ці ёсць гэты API тут, 188 00:11:01,330 --> 00:11:05,330 і вы можаце ўбачыць менавіта тое, што API вяртаюцца. 189 00:11:05,330 --> 00:11:10,220 Гэта тое, што заяўка вяртаецца з API, адправіўшы гэтую просьбу. 190 00:11:10,220 --> 00:11:13,680 Дазвольце мне павялічыць трохі, 191 00:11:13,680 --> 00:11:18,340 і мы можам убачыць у асноўным гэта проста шэраг пар ключ-значэнне ў JSON. 192 00:11:18,340 --> 00:11:23,220 Іншымі словамі, у нас ёсць гэтая HashMap тут, што гэта адлюстраванне значэнняў. 193 00:11:23,220 --> 00:11:26,440 Іншымі словамі, гэта адлюстраванне гадоў значэння. 194 00:11:26,440 --> 00:11:32,600 У 1765 годзе ўсе, што слова, якое мы першапачаткова шукалі выкарыстоўваецца 90 раз 195 00:11:32,600 --> 00:11:35,810 з 1 млн., такім чынам, мы вяртаемся гэты вынік. 196 00:11:35,810 --> 00:11:40,280 Гэта не зусім JSON, так як у нас ёсць гэтая маленькая загаловак выніку тут, 197 00:11:40,280 --> 00:11:45,630 але зьвярніце ўвагу, што ўвесь гэты аб'ект тут проста вялізная кропля JSON. 198 00:11:45,630 --> 00:11:51,070 У нас ёсць масіў, які змяшчае тут увесь гэты элемент, 199 00:11:51,070 --> 00:11:55,590 і вы можаце бачыць, што ўвесь элемент заканчваецца там, а то ў нас яшчэ адзін вялікі элемент 200 00:11:55,590 --> 00:11:59,430 што праходзіць ўвесь шлях да канца, і што на гэтым сканчаецца. 201 00:11:59,430 --> 00:12:02,200 У нас ёсць вельмі вялікі масіў з 2-ма аб'ектамі ў ёй, 202 00:12:02,200 --> 00:12:04,630 і кожны з гэтых аб'ектаў з'яўляецца HashMap. 203 00:12:04,630 --> 00:12:07,340 Вы можаце бачыць, у межах кожнага з гэтых HashMaps мы маем адлюстраванне 204 00:12:07,340 --> 00:12:12,700 гэтага паказчыка значэнне 0 і значэнне гэтай велічыні на іншую HashMap, 205 00:12:12,700 --> 00:12:18,360 які зноў з'яўляецца адлюстраванне значэнняў па восі Х да значэнняў Y восі. 206 00:12:18,360 --> 00:12:20,970 >> Вы можаце бачыць, JSON становіцца крыху больш складана, але ў цэлым, 207 00:12:20,970 --> 00:12:24,190 гэта на самай справе вельмі карысная, і гэта вельмі лёгка атрымаць доступ параўнанні з 208 00:12:24,190 --> 00:12:27,390 іншыя розныя формы запісу. 209 00:12:27,390 --> 00:12:30,550 Што тычыцца таго, што мы на самай справе адпраўкі дадзеных API, каб атрымаць, 210 00:12:30,550 --> 00:12:34,690 Я збіраюся пайсці ў задняй частцы трохі тут. 211 00:12:34,690 --> 00:12:39,850 Гэта вялікі файл JavaScript які апрацоўвае ўсе ўзаемадзеяння вэб-прыкладанняў, 212 00:12:39,850 --> 00:12:44,810 і таму мы не клапоцімся пра большасць, але мы клапоцімся пра некаторыя з іх. 213 00:12:44,810 --> 00:12:47,410 Напрыклад, мы клапоцімся пра гэта BuildQuery функцыі, 214 00:12:47,410 --> 00:12:50,670 і ідэя гэтая функцыя ў асноўным гэта азіраючыся на старонцы, 215 00:12:50,670 --> 00:12:53,750 высветліць, што карыстач жадае, каб запытаць, іншымі словамі, 216 00:12:53,750 --> 00:12:57,090 праверкі гэтых скрынках, дзе яны ўводзяць свой ўмовы пошуку, 217 00:12:57,090 --> 00:13:01,380 праверкі розных Y і X восі значэнняў, якія яны абралі, і ўсё таму падобнае, 218 00:13:01,380 --> 00:13:06,650 і гэта будзе выплёўваць гэтага запыту значэння, якое затым можна адправіць у API. 219 00:13:06,650 --> 00:13:09,180 >> Гэта здаецца складаным, і гэта даволі складана 220 00:13:09,180 --> 00:13:18,090 але тое, што я збіраюся зрабіць, на самай справе, я ўжо раблю гэта, і гэта выдатна- 221 00:13:18,090 --> 00:13:21,640 у тым, што я збіраюся атрымаць кансоль, каб раздрукаваць менавіта тое значэнне запыту 222 00:13:21,640 --> 00:13:28,110 што гэта адпраўка да API. 223 00:13:28,110 --> 00:13:30,870 Гэта на самай справе прама тут. На жаль, яна выводзіць шмат рэчаў. 224 00:13:30,870 --> 00:13:33,690 Але гэта тое, што мы клапоцімся аб, гэты аб'ект прама тут. 225 00:13:33,690 --> 00:13:35,300 Гэта запыт аб'екта. 226 00:13:35,300 --> 00:13:40,670 Іншымі словамі, гэта менавіта тое, што вэб-прыкладанне пасылае на API, 227 00:13:40,670 --> 00:13:45,730 і таму давайце паглядзім ўнутр трохі, і мы бачым, у нас ёсць некалькі значэнняў тут. 228 00:13:45,730 --> 00:13:48,710 Мы бачым, у нас ёсць гэты лічыльнік тыпу, які з'яўляецца выпадкаў на мільён слоў, 229 00:13:48,710 --> 00:13:51,460 а гэта менавіта тое, што мы выбралі па восі Y сюды. 230 00:13:51,460 --> 00:13:53,740 Вось дзе што ідзе. 231 00:13:53,740 --> 00:13:58,010 У нас ёсць база дадзеных значэнне, што азначае, што ёсць нейкая пэўная база дадзеных 232 00:13:58,010 --> 00:14:01,610 што гэтыя дадзеныя жывем, і мы хочам атрымаць доступ да дадзеных, што канкрэтна 233 00:14:01,610 --> 00:14:04,950 у адрозненне ад дзіцячых імёнаў дадзеных, напрыклад. 234 00:14:04,950 --> 00:14:08,320 Тады мы маем гэтай групы значэнне, 235 00:14:08,320 --> 00:14:12,090 якія кажуць, што мы хочам шукаць у год, у адрозненне ад 236 00:14:12,090 --> 00:14:16,030 любое іншае значэнне восі X. 237 00:14:16,030 --> 00:14:19,040 Тады ў нас ёсць метад, які некаторыя API-інтэрфейсаў будзе зрабіць некалькі рэчаў. 238 00:14:19,040 --> 00:14:22,360 Іншымі словамі, гэта API можа вяртаць іншыя віды дадзеных, 239 00:14:22,360 --> 00:14:27,740 але ў гэтым выпадку, мы хочам, каб адлюстраванне значэнняў па восі Х да значэнняў Y восі. 240 00:14:27,740 --> 00:14:30,730 Гэта тое, што кажа, што ён там рабіць, 241 00:14:30,730 --> 00:14:35,020 і ў нас ёсць гэты масіў пошуку межаў, які утрымоўвае 2 значэння. 242 00:14:35,020 --> 00:14:40,720 Першае, што мы бачым тут, што ўсе значэння 243 00:14:40,720 --> 00:14:43,020 змяшчаюцца ў той першы скрыначку на самым версе. 244 00:14:43,020 --> 00:14:47,570 >> Іншымі словамі, мы хочам, каб шукаць словы бітва, і мы хочам, каб фільтраваць 245 00:14:47,570 --> 00:14:51,920 ад ангельскіх тэкстаў у амерыканскай літаратуры. 246 00:14:51,920 --> 00:14:54,590 У нас гэтая краіна, якая з'яўляецца ЗША. 247 00:14:54,590 --> 00:14:59,130 У нас ёсць мова, які з'яўляецца англійская, таму ў нас ёсць усе гэтыя розныя часткі 248 00:14:59,130 --> 00:15:02,690 што ўсе кажуць API менавіта тое, што мы хочам. 249 00:15:02,690 --> 00:15:04,940 Мы не ведаем, што тыя дадзеныя, якія мы вернемся яшчэ, 250 00:15:04,940 --> 00:15:10,970 але мы ведаем, што дадзеныя збіраюцца прыняць пэўную форму. 251 00:15:10,970 --> 00:15:13,650 Гэты прыклад з'яўляецца свайго роду на складаную бок, 252 00:15:13,650 --> 00:15:16,180 і вы не абавязкова выкарыстоўваць API гэтага комплексу, 253 00:15:16,180 --> 00:15:20,600 Але гэта, каб паказаць вам далёкасці і магутнасці, што API-інтэрфейсаў можа зрабіць. 254 00:15:20,600 --> 00:15:24,980 Іншымі словамі, з дапамогай параўнальна просты запыт сістэмы, мы ў асноўным маюць поле ўводу 255 00:15:24,980 --> 00:15:29,490 з некалькімі іншымі селектараў ў розных месцах. 256 00:15:29,490 --> 00:15:32,010 >> Дазвольце мне маштаб тут. 257 00:15:32,010 --> 00:15:37,720 У нас ёсць поле ўводу з некалькімі рознымі выбар метададзеных, 258 00:15:37,720 --> 00:15:40,610 і ў нас ёсць Y восі X і выбар восі. 259 00:15:40,610 --> 00:15:42,830 Мы на самай справе не так ужо шмат палёў, 260 00:15:42,830 --> 00:15:46,210 і мы бачым вельмі лёгка мы можам запытаць нейкія API 261 00:15:46,210 --> 00:15:48,510 і атрымаць дадзеныя назад, а затым пакласці яго ў гэтай табліцы, 262 00:15:48,510 --> 00:15:52,080 якія затым збіраюцца паказаць яго ў карысны шлях. 263 00:15:52,080 --> 00:15:54,970 Каб паглядзець на іншы прыклад, які мог бы быць трохі больш звыклай для вас, хлопцы 264 00:15:54,970 --> 00:15:56,510 Мы збіраемся звярнуцца да Facebook. 265 00:15:56,510 --> 00:15:59,440 API facebook, называецца Графік Facebook, 266 00:15:59,440 --> 00:16:04,390 і ў асноўным, што гэта азначае, Facebook бачыць сябе ў якасці гэтай шырокай базы дадзеных 267 00:16:04,390 --> 00:16:08,000 з мноства розных частак, якія ўсе маюць пэўныя адносіны адзін да аднаго. 268 00:16:08,000 --> 00:16:11,070 Іншымі словамі, я карыстальнік на Facebook, так што ў мяне ёсць профіль, 269 00:16:11,070 --> 00:16:14,310 і ў мяне таксама ёсць пэўныя сяброў, і кожны з іх мае профіль, 270 00:16:14,310 --> 00:16:17,580 і кожны з маіх сяброў ёсць сцяна, якая мае розныя заўвагі па ім, 271 00:16:17,580 --> 00:16:20,800 і кожны з гэтых каментарыяў мае сімпатыі і ўсё таму падобнае. 272 00:16:20,800 --> 00:16:23,100 >> Там шмат розных частках да Facebook. 273 00:16:23,100 --> 00:16:26,670 Гэта вельмі складанае API, і ёсць тоны вы можаце рабіць з ім, 274 00:16:26,670 --> 00:16:28,450 але гэта на самай справе даволі простая ў выкарыстанні. 275 00:16:28,450 --> 00:16:33,680 Я збіраюся пачаць з таго, ці збіраецеся graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 , Які з'яўляецца маім унікальнае імя ўліковага запісу і імя вашай ўліковага запісу будзе альбо 277 00:16:38,430 --> 00:16:43,710 нейкія словы, калі вы абралі яго, ці гэта можа быць проста набор лічбаў. 278 00:16:43,710 --> 00:16:46,360 Тое, што мы вернемся даволі асноўную інфармацыю. 279 00:16:46,360 --> 00:16:50,460 Мы бачым, што ў мяне ёсць імя, якое Білі, прозвішча, якая з'яўляецца Janitsch. 280 00:16:50,460 --> 00:16:53,370 Там ёсць унікальны ID Facebook якая ў мяне ёсць. 281 00:16:53,370 --> 00:16:57,920 Вы можаце бачыць, што я мужчына і што ў мяне ёсць налада мовы 282 00:16:57,920 --> 00:17:01,290 на брытанскім англійскай. 283 00:17:01,290 --> 00:17:03,490 Іншымі словамі, мы бачым асноўную інфармацыю тут. 284 00:17:03,490 --> 00:17:08,670 Гэта не занадта шмат, але гэта дае нам ўяўленне пра тое, што там. 285 00:17:08,670 --> 00:17:10,849 >> Мы можам зрабіць тое ж самае з Дэвідам малая, напрыклад. 286 00:17:10,849 --> 00:17:13,599 Я думаю, што яго завуць dmalan. 287 00:17:13,599 --> 00:17:16,369 Мы бачым, David Malan мае унікальны ідэнтыфікатар. 288 00:17:16,369 --> 00:17:19,300 У яго ёсць прозвішча, імя, імя па бацьку, прозвішча. 289 00:17:19,300 --> 00:17:24,210 Мы таксама бачым, што ён мужчына і мае сваю мову усталяваны ў амерыканскім англійскай. 290 00:17:24,210 --> 00:17:26,869 Іншымі словамі, мы бачым даволі асноўнай інфармацыі тут. 291 00:17:26,869 --> 00:17:28,860 Цяпер, што адбудзецца, калі мы паспрабуем праверыць нешта яшчэ? 292 00:17:28,860 --> 00:17:33,060 Скажам, я зацікаўлены ў тым, што Дэвід малая спадабаўся на Facebook. 293 00:17:33,060 --> 00:17:36,860 Я магу зрабіць / кахае. Цяпер мы сутыкнуліся з праблемай. 294 00:17:36,860 --> 00:17:39,280 У нас ёсць нейкая памылка, якая кажа маркер доступу 295 00:17:39,280 --> 00:17:41,660 патрабуецца запытаць гэты рэсурс. 296 00:17:41,660 --> 00:17:44,730 Але калі вы думаеце пра гэта, што на самой справе мае сэнс, таму што было б дзіўна 297 00:17:44,730 --> 00:17:47,830 калі б вы маглі атрымаць доступ да кожнай асобнай часткі базы дадзеных на Facebook 298 00:17:47,830 --> 00:17:50,170 проста ад нейкі просты API, дакладна? 299 00:17:50,170 --> 00:17:56,040 Іншымі словамі, па-відаць ваша інфармацыя не могуць быць даступныя любому, хто гэтага хоча. 300 00:17:56,040 --> 00:17:58,330 >> Гэтая памылка з'яўляецца дакладна, што гэта значыць. 301 00:17:58,330 --> 00:18:03,630 Некаторыя API патрабуюцца пэўныя дазволу для таго, каб атрымаць доступ да сваіх дадзеных. 302 00:18:03,630 --> 00:18:06,940 І нават больш прасунуты API-інтэрфейсаў, такіх як Facebook адна, 303 00:18:06,940 --> 00:18:09,840 запатрабуюцца пэўныя правы рабіць пэўныя рэчы. 304 00:18:09,840 --> 00:18:12,650 Я бачу, што асноўную інфармацыю аб David Malan. 305 00:18:12,650 --> 00:18:15,950 Я бачу, што ён мужчына і што ён жыве ў ЗША, 306 00:18:15,950 --> 00:18:19,270 Але я не магу бачыць нічога, што мінулае. 307 00:18:19,270 --> 00:18:23,050 Каб абыйсці гэтую праблему цяпер, Facebook мае гэта добры інструмент 308 00:18:23,050 --> 00:18:27,690 якая графа API Explorer, і ідэя, што гэта можна сартаваць 309 00:18:27,690 --> 00:18:31,880 складаюць дазволаў для сябе, зыходзячы з уласных рахункі 310 00:18:31,880 --> 00:18:35,680 і затым глядзець на рэчы, якія канкрэтна вашага рахунку можна прагледзець. 311 00:18:35,680 --> 00:18:45,120 Напрыклад, калі я раблю graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 Упс, я думаю, у мяне ёсць для паўторнай праверкі майго маркера тут. 313 00:18:53,510 --> 00:18:55,950 Добра. 314 00:18:55,950 --> 00:19:01,740 Калі я зраблю гэта зноў, вялікае, цяпер я бачу, што я атрымліваю гэты аб'ект назад 315 00:19:01,740 --> 00:19:06,300 які кажа, што я люблю басейн локшына, якая знаходзіцца ў катэгорыі Гульні і цацкі. 316 00:19:06,300 --> 00:19:08,620 Мне падабаецца маржоў, якія адносяцца да катэгорыі жывёл. 317 00:19:08,620 --> 00:19:10,180 Гэта мая фактическая падобных Facebook. 318 00:19:10,180 --> 00:19:13,280 Яны ж, здаецца, няёмка. 319 00:19:13,280 --> 00:19:16,090 >> Але мы бачым, гэтыя дадзеныя ўсё вярнулася ў JSON. 320 00:19:16,090 --> 00:19:18,160 Гэта даволі чытанай. 321 00:19:18,160 --> 00:19:20,970 Іншымі словамі, мы павінны гэта адлюстраванне дадзеных у нейкі масіў, 322 00:19:20,970 --> 00:19:25,220 і кожны элемент гэтага масіва з'яўляецца HashMap, якая адлюстроўвае 323 00:19:25,220 --> 00:19:28,530 Назва, як і катэгорыі, як. 324 00:19:28,530 --> 00:19:31,240 Кожны, як мае унікальны ідэнтыфікатар. 325 00:19:31,240 --> 00:19:34,510 Ёсць ўсякія розныя рэчы дадзеных, якія мы можам атрымаць, 326 00:19:34,510 --> 00:19:37,980 і калі вы зацікаўлены ў выкарыстанні Facebook API для CS50 канчатковы праект 327 00:19:37,980 --> 00:19:40,720 ці нешта ў гэтым родзе, гэта на самай справе даволі выканальна. 328 00:19:40,720 --> 00:19:44,260 У асноўным, як вам абыйсці праверку сапраўднасці Справа ў тым Facebook 329 00:19:44,260 --> 00:19:48,030 выкарыстоўвае сістэму пад назвай OAuth або адкрытай аўтэнтыфікацыі, 330 00:19:48,030 --> 00:19:52,870 і я не хачу, каб патрапіць у гэта цяпер, таму што OAuth або іншага тыпу 331 00:19:52,870 --> 00:19:56,060 аўтэнтыфікацыі як правіла, вельмі моцна вар'іруюцца паміж рознымі API, 332 00:19:56,060 --> 00:19:58,320 так што я мог правесці доўгі час пераходу кожнага з іх, 333 00:19:58,320 --> 00:20:01,170 але на самой справе яны даволі відавочныя. 334 00:20:01,170 --> 00:20:04,050 >> Калі вы Google Facebook API, гэта вельмі лёгка чытаюцца. 335 00:20:04,050 --> 00:20:06,670 Там цэлы спец. 336 00:20:06,670 --> 00:20:10,210 Напрыклад, гэта дакументацыя для Facebook API, 337 00:20:10,210 --> 00:20:14,170 і вы можаце бачыць, што я знаходжуся на старонцы карыстальніка, таму я магу пазнаць усё аб розных відах рэчаў 338 00:20:14,170 --> 00:20:17,170 , Якія даступныя атрымаць як дадзеныя 339 00:20:17,170 --> 00:20:21,550 а таксама розныя дазволу, што мне трэба для таго, каб атрымаць да іх доступ. 340 00:20:21,550 --> 00:20:25,470 Як мы бачылі, нам не трэба дазвол на доступ да імя або падлогу, 341 00:20:25,470 --> 00:20:29,380 Але акрамя гэтага нам патрэбныя дазволу для большасці рэчаў. 342 00:20:29,380 --> 00:20:33,040 Гэтая старонка, або, дакладней, гэты сайт таксама скажа вам, як атрымаць 343 00:20:33,040 --> 00:20:35,640 маркерам, каб мець магчымасць ідэнтыфікаваць сябе. 344 00:20:35,640 --> 00:20:39,290 Большасць сістэм аўтэнтыфікацыі выкарыстоўваць свайго роду маркерам 345 00:20:39,290 --> 00:20:42,880 дзе вы атрымаеце гэта унікальнае значэнне, якое вельмі доўга і выпадковыя радкі, 346 00:20:42,880 --> 00:20:46,240 і такім чынам яны могуць звязаць запыт, што вы робіце з вамі. 347 00:20:46,240 --> 00:20:50,560 Іншымі словамі, яны ведаюць, што вы не робіце нічога падазронага са сваімі дадзенымі. 348 00:20:50,560 --> 00:20:53,340 Яны дакладна ведаюць, што вы атрымліваеце. 349 00:20:53,340 --> 00:20:56,180 Яны таксама ведаюць, што ў вас ёсць дазвол на прагляд гэтай інфармацыі. 350 00:20:56,180 --> 00:20:59,110 >> Калі вы зрабілі Facebook прыкладанне, і ваша прыкладанне мае пэўныя карыстальнікі, 351 00:20:59,110 --> 00:21:03,380 і тыя карыстальнікі не дапускаў, што прыкладанне для доступу да пэўных частках свой профіль, 352 00:21:03,380 --> 00:21:07,790 тады ўсё, што API ключ ці маркер, што прыкладанне выкарыстоўвае 353 00:21:07,790 --> 00:21:11,090 зможа атрымаць доступ да дадзеных для карыстальнікаў. 354 00:21:11,090 --> 00:21:13,780 Гэта можа здацца складаным, але гэта не так ужо дрэнна, 355 00:21:13,780 --> 00:21:16,810 і калі вы хочаце выкарыстоўваць Facebook Я б настойліва рэкамендуем вам 356 00:21:16,810 --> 00:21:18,990 Разгледзім гуляючы з іх API. 357 00:21:18,990 --> 00:21:21,610 Гэта вельмі крута, і вы можаце зрабіць шмат розных рэчаў з ім. 358 00:21:21,610 --> 00:21:24,880 Калі карыстальнік дае вам гэтыя дазволы вы нават можаце вярнуцца да API 359 00:21:24,880 --> 00:21:28,820 і сказаць, я хачу на самай справе адпраўляць паведамленні ў сцяне гэтага карыстальніка, ці я хачу, каб іх размясціць фатаграфію, 360 00:21:28,820 --> 00:21:32,390 і вось чаму на стужку навін вы будзеце часам атрымліваць гэтыя раздражняльныя рэчы 361 00:21:32,390 --> 00:21:37,840 кажучы ваш сябар глядзеў гэта відэа на нейкі загадкавы сайт ці нешта накшталт гэтага. 362 00:21:37,840 --> 00:21:43,120 Гэта таму, што прыкладанне было прадастаўлена доступу да запісу на сцяне гэтага чалавека. 363 00:21:43,120 --> 00:21:48,350 Ідэя ў цэлым, Facebook API даволі складаны, але і вельмі карысна. 364 00:21:48,350 --> 00:21:53,220 Вызначана варта праверыць, калі вы ўсё яшчэ шукаеце канчатковы праект. 365 00:21:53,220 --> 00:21:57,930 >> Іншы набор API-інтэрфейсаў, што я збіраюся перайсці на гэта CS50 API. 366 00:21:57,930 --> 00:22:00,070 Дазвольце мне павялічыць тут. 367 00:22:00,070 --> 00:22:03,390 CS50 быў на самой справе сабраў цэлы шэраг API-інтэрфейсаў 368 00:22:03,390 --> 00:22:07,080 , Які можна выкарыстоўваць для канчатковага праекта або проста за ўсё, што вы робіце. 369 00:22:07,080 --> 00:22:12,830 І яны галоўным чынам Гарварда звязаныя, і яны вар'іруюцца ад меню Huds, 370 00:22:12,830 --> 00:22:17,780 Напрыклад, у гэтым Гарвардскім падзей API, які дазволіць Вам атрымаць доступ да спісу 371 00:22:17,780 --> 00:22:21,290 розных падзей, якія адбываюцца ў Гарвардзе і таму падобнае. 372 00:22:21,290 --> 00:22:24,510 І такім чынам мы можам націснуць на любую з гэтых і атрымаць спецыфікацыю для яго, 373 00:22:24,510 --> 00:22:28,090 якія Вы зможаце знайсці для любога API, і ідэя 374 00:22:28,090 --> 00:22:33,920 яна дазваляе даведацца,, што канкрэтна патрабаваць ад API і як прасіць яго. 375 00:22:33,920 --> 00:22:37,370 Іншымі словамі, калі я хачу, каб усе падзеі, якія адбываюцца заўтра 376 00:22:37,370 --> 00:22:42,550 Затым я павінен, відавочна, даць яму гэтую дату, што я хачу ў пэўным фармаце, 377 00:22:42,550 --> 00:22:46,030 і B, ён скажа мне, што ён збіраецца аддаць мяне. 378 00:22:46,030 --> 00:22:48,590 Ён будзе казаць, што я збіраюся вярнуць цябе гэты аб'ект JSON, 379 00:22:48,590 --> 00:22:50,960 ці, як вы можаце бачыць, ёсць розныя фарматы. 380 00:22:50,960 --> 00:22:54,050 >> Вы таксама можаце вярнуць дадзеныя ў CSV, напрыклад. 381 00:22:54,050 --> 00:22:57,620 Але вы сапраўды ведаеце, што дадзеныя будзе выглядаць, калі вы атрымаеце яго назад 382 00:22:57,620 --> 00:23:00,610 так што вы можаце чакаць, каб рабіць пэўныя рэчы з ім. 383 00:23:00,610 --> 00:23:07,240 Мы можам пракруціць ўніз і ўбачыць, напрыклад, калі мы хочам, каб запытаць API 384 00:23:07,240 --> 00:23:11,500 каб атрымаць каляндар, то мы можам выкарыстоўваць дадзены URL 385 00:23:11,500 --> 00:23:16,480 і даць яму пэўныя параметры, якія збіраюцца быць дадзеныя, якія мы хочам сапраўды. 386 00:23:16,480 --> 00:23:19,540 І гэтак жа, калі мы хочам дадзеных назад у пэўным фармаце, 387 00:23:19,540 --> 00:23:23,790 то мы можам папрасіць яго высновы дадзеных у CSV, 388 00:23:23,790 --> 00:23:27,700 і гэта проста яшчэ адзін параметр, які мы перадаем у API. 389 00:23:27,700 --> 00:23:29,210 Шмат цікавых рэчаў, каб зрабіць там. 390 00:23:29,210 --> 00:23:32,550 Я вызначана рэкамендую праверыць CS50 API. 391 00:23:32,550 --> 00:23:36,000 >> Я буду глядзець на гэтую API харчавання Гарварда, у прыватнасці, для трохі. 392 00:23:36,000 --> 00:23:39,870 Адна рэч, я на самой справе прызначаны гэты сайт Гарвардскага Noms, 393 00:23:39,870 --> 00:23:44,930 які выкарыстоўвае API CS50 харчавання для атрымання Huds меню на дзень. 394 00:23:44,930 --> 00:23:50,400 А для людзей, пашырэнне школы, Huds з'яўляецца абедзенны службы ў Гарвардзе. 395 00:23:50,400 --> 00:23:55,130 Што Вы атрымліваеце гэтую старонку, якая ўтрымлівае ўсе стравы на працягу дня, таму мы бачым абед. 396 00:23:55,130 --> 00:23:58,130 У нас ёсць некалькі розных катэгорый. У нас ёсць бабовыя і ўся станцыя збожжа. 397 00:23:58,130 --> 00:24:00,340 У нас ёсць карычневы рыс станцыі. 398 00:24:00,340 --> 00:24:03,360 Мы бачым, для позняга сняданку ў нас ёсць гэтыя некалькі прадуктаў. 399 00:24:03,360 --> 00:24:07,030 Калі мы націснем на іх, то мы атрымаем інфармацыя аб харчаванні. 400 00:24:07,030 --> 00:24:12,240 Вы бачыце гэта харчаванне інфармацыя для грэйпфрутаў, у выпадку, калі вам цікава. 401 00:24:12,240 --> 00:24:14,870 І зноў жа, мы збіраемся зазірнуць у задняй часткі тут трохі 402 00:24:14,870 --> 00:24:18,530 і паглядзець, што менавіта гэта робіць, каб атрымаць гэтыя дадзеныя. 403 00:24:18,530 --> 00:24:21,710 І гэта, аказваецца, на самай справе не вельмі складанай наогул. 404 00:24:21,710 --> 00:24:28,720 Гэты файл выглядае трохі брудны, але майце на ўвазе, што гэты зварот ўвесь сайт, 405 00:24:28,720 --> 00:24:34,130 і калі я пракруціць ўніз мы бачым, гэтая функцыя змены дадзеных. 406 00:24:34,130 --> 00:24:36,630 >> Цяпер, проста каб было ясна, гэта запісана ў CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 які з'яўляецца мовай, які вы, верагодна, не бачыў. 408 00:24:39,570 --> 00:24:44,810 Але гэта даволі чытэльнай, так што я буду ісці праз яго, як быццам гэта псевдокод. 409 00:24:44,810 --> 00:24:49,080 Змяненне даты з'яўляецца функцыяй, якая збіраецца заняць у гэтай датай валюціравання, 410 00:24:49,080 --> 00:24:51,740 і гэта таксама збіраецца прыняць у першым, які мы не клапоцімся прыкладна столькі ж. 411 00:24:51,740 --> 00:24:54,110 Але галоўнае, што ён мае гэтую дату, 412 00:24:54,110 --> 00:25:00,080 і што дата і з'яўляецца днём, які мы хочам звярнуцца да ўсіх з прадуктаў харчавання для. 413 00:25:00,080 --> 00:25:04,030 А потым ты бачыш у нас ёсць трохі сінтаксіс тут, 414 00:25:04,030 --> 00:25:09,000 якая ў асноўным разбор гэтай даты ў чытаны фармат. 415 00:25:09,000 --> 00:25:11,920 Іншымі словамі, API патрабуе дату ў пэўным фармаце. 416 00:25:11,920 --> 00:25:17,390 Вы не можаце проста сказаць: 16 лістапад 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Ён не будзе ведаць, што рабіць з гэтым. Ён хоча дату ў пэўным фармаце. 418 00:25:20,320 --> 00:25:23,230 Усё, што мы робім тут, надаўшы яму менавіта той фармат, 419 00:25:23,230 --> 00:25:26,520 , Які з'яўляецца годам значэнне, а затым злучок, значэнне месяца, 420 00:25:26,520 --> 00:25:29,420 іншы злучок і значэнне даты. 421 00:25:29,420 --> 00:25:34,910 І мы таксама кажам, што мы хочам дадзеных для высновы ў фармаце JSON. 422 00:25:34,910 --> 00:25:37,560 >> Цяпер мы робім гэты запыт AJAX, і, як я ўжо згадваў, 423 00:25:37,560 --> 00:25:41,680 JQuery ёсць гэта супер карысная функцыя AJAX якой усё, што вам трэба зрабіць, гэта пазначыць 424 00:25:41,680 --> 00:25:45,780 некалькі параметраў сюды, і гэта дасьць вам менавіта тое, што вы хочаце. 425 00:25:45,780 --> 00:25:50,490 Мы кажам, што URL мы хочам, каб пайсці ў гэты CS50 харчавання API, 426 00:25:50,490 --> 00:25:52,270 якія мы атрымалі ад спецыфікацыі. 427 00:25:52,270 --> 00:25:56,730 Мы кажам, што мы хочам, каб дадзеныя ў JSON і што 428 00:25:56,730 --> 00:25:59,490 Мы збіраемся даць яму гэта дадзеныя, якія мы вызначылі тут. 429 00:25:59,490 --> 00:26:02,670 У гэты дзень мы хочам, каб прадукты харчавання для. 430 00:26:02,670 --> 00:26:07,790 І тады ўсё, што мы павінны зрабіць, гэта вызначыць нейкі поспех функцыю, 431 00:26:07,790 --> 00:26:11,980 які з'яўляецца ў асноўным тое, што адбываецца, калі API вяртае гэтыя дадзеныя. 432 00:26:11,980 --> 00:26:15,490 Іншымі словамі, мы спакаваныя ўсе параметры, якія мы хочам, 433 00:26:15,490 --> 00:26:20,530 які ў дадзеным выпадку з'яўляецца той дзень, калі мы хочам, і тое, што мы хочам яго ў JSON, 434 00:26:20,530 --> 00:26:23,840 і мы адправілі яго да API, так што зараз API кажуць, добра, 435 00:26:23,840 --> 00:26:26,350 Тут вашы дадзеныя, я атрымаў яго назад для вас. 436 00:26:26,350 --> 00:26:29,930 У нас ёсць поспехі функцыя, якая азначае, што дадзены API 437 00:26:29,930 --> 00:26:32,230 паспяхова вяртае некаторыя дадзеныя, што мы будзем рабіць з гэтым? 438 00:26:32,230 --> 00:26:35,980 >> І аказваецца, што ўсё, што мы робім, гэта выклікаць гэтую функцыю абнаўлення меню 439 00:26:35,980 --> 00:26:42,680 з тым, што API вярнуўся, так што мы можам знайсці, што 440 00:26:42,680 --> 00:26:47,970 і бачу, што ўсё, што мы робім, выкарыстоўваючы звязак новы сінтаксіс тут 441 00:26:47,970 --> 00:26:52,220 для абнаўлення HTML і устаўце гэтую новую дадзеных. 442 00:26:52,220 --> 00:26:56,580 Тое, што гэта дазваляе гэта ў нас ёсць гэтыя стрэлкі з абодвух бакоў, і мы можам націснуць, 443 00:26:56,580 --> 00:27:01,060 і зараз мы глядзім на дадзеныя на наступны дзень і зноў на наступны дзень, 444 00:27:01,060 --> 00:27:04,820 і кожны раз гэта абнаўленне, што значэнне даты і запытаў API, 445 00:27:04,820 --> 00:27:07,510 вяртанне некаторыя дадзеныя і пакласці яго на сайт. 446 00:27:07,510 --> 00:27:10,590 Зноў жа, вы можаце бачыць, супер, супер карысна. 447 00:27:10,590 --> 00:27:14,410 Гэта прыкладанне заняло ў мяне некалькі гадзін, каб зламаць разам, 448 00:27:14,410 --> 00:27:20,140 і ў мяне ёсць трохі больш вопыту, відавочна, але вашы CS50 канчатковы праект 449 00:27:20,140 --> 00:27:22,870 можа выглядаць вельмі падобна на гэта. 450 00:27:22,870 --> 00:27:29,540 >> API-інтэрфейсы з'яўляюцца супер магутны на суму намаганняў, якія яны прымаюць. 451 00:27:29,540 --> 00:27:32,800 Апошняе, што я збіраюся пераходзіць у некалькі больш шырокім API-інтэрфейсаў. 452 00:27:32,800 --> 00:27:35,480 Я не буду так далёка ў іх да таго, што яны робяць канкрэтна, 453 00:27:35,480 --> 00:27:38,740 але я дам вам прадстаўленне аб тым, што там. 454 00:27:38,740 --> 00:27:42,700 2 сапраўды карысныя, калі вы зацікаўлены ў аналізе дадзеных і візуалізацыі 455 00:27:42,700 --> 00:27:45,960 ці нешта ў гэтым родзе, з'яўляюцца Freebase і Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-відаць, вы ўсё ведаеце-гэта бясплатная анлайнавая энцыклапедыя, 457 00:27:49,800 --> 00:27:53,230 і гэта на самай справе мае API, так што калі вы хочаце, напрыклад, 458 00:27:53,230 --> 00:27:56,250 атрымаць усе тэксты і артыкулы для васьмінога 459 00:27:56,250 --> 00:27:58,030 Вы можаце вельмі лёгка зрабіць. 460 00:27:58,030 --> 00:28:02,300 Проста сказаць эй, Wikipedia API, я хацеў бы дадзеныя, вернутыя як гэта, 461 00:28:02,300 --> 00:28:07,010 і мне вельмі падабаецца ў гэтым фармаце, і артыкул я хачу гэта васьміног, 462 00:28:07,010 --> 00:28:09,820 і вельмі хутка гэта дасць Вам гэтую інфармацыю. 463 00:28:09,820 --> 00:28:12,230 Гэта можа быць вельмі карысна, калі Вы хочаце зрабіць нейкі сайт 464 00:28:12,230 --> 00:28:16,200 гэта лепшы сродак прагляду для Вікіпедыі ці нешта накшталт гэтага. 465 00:28:16,200 --> 00:28:21,350 >> Freebase з'яўляецца свайго роду падобныя, хоць гэта крыху больш складана, паколькі API. 466 00:28:21,350 --> 00:28:24,390 Freebase, як у Wikipedia, што гэта анлайн-энцыклапедыя 467 00:28:24,390 --> 00:28:29,050 , Які змяшчае шмат-шмат розных дадзеных аб усякіх розных тым, 468 00:28:29,050 --> 00:28:33,150 але яна захоўваецца ў рэляцыйнай базе дадзеных, якая трохі адрозніваецца ад Wikipedia. 469 00:28:33,150 --> 00:28:36,410 У Вікіпедыі ёсць яго артыкулы і артыкулы звязаныя з іншымі артыкуламі, 470 00:28:36,410 --> 00:28:38,860 але па большай частцы, калі вы хочаце, каб дадзеныя для васьмінога, 471 00:28:38,860 --> 00:28:41,990 Вы ідзяце ў васьмінога артыкуле, атрымаць гэтыя дадзеныя, і ў вас ёсць куча тэксту 472 00:28:41,990 --> 00:28:43,830 Аб васьміногі, так што гэта выдатна. 473 00:28:43,830 --> 00:28:46,870 Freebase працуе ў некалькі больш складаным чынам у тым, што 474 00:28:46,870 --> 00:28:48,930 ўсе звязаны адзін з адным. 475 00:28:48,930 --> 00:28:52,620 Іншымі словамі, калі мы шукаем васьмінога 476 00:28:52,620 --> 00:28:54,940 то ён мае кучу катэгорый, звязаных з ім. 477 00:28:54,940 --> 00:28:57,920 >> Напрыклад, гэта жывёла, яно жыве пад вадой, 478 00:28:57,920 --> 00:28:59,710 яна мае пэўную тэмпературу цела. 479 00:28:59,710 --> 00:29:01,210 Я не ведаю. 480 00:29:01,210 --> 00:29:04,230 І ўсе гэтыя катэгорыі з'яўляюцца спасылкамі на іншыя месцы, дзе вы можаце пайсці 481 00:29:04,230 --> 00:29:06,640 глядзець на рэчы з гэтай жа катэгорыі. 482 00:29:06,640 --> 00:29:13,450 Іншымі словамі, мноства васьмінога дадзеных будзе ўтрымліваць спасылку на набор дадзеных для ўсіх жывёл, 483 00:29:13,450 --> 00:29:16,790 і што дазволіць мне перамяшчацца ў базе даных вельмі хутка. 484 00:29:16,790 --> 00:29:21,740 Гэта можа быць вельмі карысна, калі вы робіце нешта накшталт параўнання. 485 00:29:21,740 --> 00:29:24,490 Іншымі словамі, улічваючы пэўную рэч, вы хочаце бачыць 486 00:29:24,490 --> 00:29:27,890 Што яшчэ гэта звязана і паглядзець, што яшчэ гэта не ставіцца. 487 00:29:27,890 --> 00:29:30,700 Такога роду рэчы. Гэта можа быць карысна ў шэрагу кірункаў. 488 00:29:30,700 --> 00:29:34,250 Калі вы шукаеце больш складанай задачай, і быць у стане зрабіць некаторыя больш складаныя рэчы 489 00:29:34,250 --> 00:29:38,740 Я хацеў бы разгледзець зірнуць на Freebase API. 490 00:29:38,740 --> 00:29:44,670 Але ў асноўным, Wikipedia з'яўляецца вельмі простым месцам, каб пайсці па меры атрымання інфармацыі. 491 00:29:44,670 --> 00:29:48,340 Яшчэ адно месца, што я буду глядзець на тое, Last.fm, і на самай справе я збіраюся перайсці на сайт 492 00:29:48,340 --> 00:29:53,800 У выпадку, калі некаторыя людзі не знаёмыя, але Last.fm ў асноўным музыка 493 00:29:53,800 --> 00:29:57,220 густаў і рэкамендацый сайта. 494 00:29:57,220 --> 00:29:59,000 Вы можаце зрабіць рахунак. 495 00:29:59,000 --> 00:30:04,250 Вы можаце пачаць загрузку музыкі з музычнага прайгравальніка 496 00:30:04,250 --> 00:30:08,020 на сайт, і ў асноўным гэта пачне даваць вам рэкамендацыі музыкі 497 00:30:08,020 --> 00:30:10,030 заснаваны на тым, што вы слухаеце. 498 00:30:10,030 --> 00:30:14,270 >> Напрыклад, калі вы ідзяце на старонку свайго профілю, гэта маё- 499 00:30:14,270 --> 00:30:18,180 Вы можаце ўбачыць у вас ёсць спіс нядаўна слухаў трэкі. 500 00:30:18,180 --> 00:30:22,550 Вы можаце бачыць агульную любімых мастакоў, усё такога роду рэчы, 501 00:30:22,550 --> 00:30:25,280 і зноў, ёсць вялікая API за Last.fm, 502 00:30:25,280 --> 00:30:29,360  і вы можаце выкарыстоўваць яго, каб зрабіць шмат-шмат сапраўды цікавых рэчаў. 503 00:30:29,360 --> 00:30:38,870 Напрыклад, я пайду на старонцы сябра, які мае гэты вэб-сайт Last.fm Tools. 504 00:30:38,870 --> 00:30:42,380 На самай справе гэта іншая платформа, якая пабудавана на Last.fm API, 505 00:30:42,380 --> 00:30:45,420 і гэта робіць шэраг даволі цікавых рэчаў. 506 00:30:45,420 --> 00:30:50,260 Калі б я ўвайсці з маім імем карыстальніка, напрыклад, 507 00:30:50,260 --> 00:30:53,110 Я магу папрасіць яго для стварэння воблака тэгаў, напрыклад, 508 00:30:53,110 --> 00:30:56,480 і тое, што збіраецца зрабіць, гэта даць мне назад Выява 509 00:30:56,480 --> 00:30:59,850 ўсіх розных жанраў і да таго падобнае, што мне падабаецца слухаць. 510 00:30:59,850 --> 00:31:01,410 Як ён гэта робіць? 511 00:31:01,410 --> 00:31:05,670 Вельмі асноўным гэта кажу Last.fm API вось гэтага карыстальніка. 512 00:31:05,670 --> 00:31:10,710 Я хацеў бы ведаць, жанр кожнай песні, якую яны калі-небудзь слухаў, 513 00:31:10,710 --> 00:31:15,130 і вы можаце зрабіць гэта, зрабіўшы даволі просты AJAX выклік на Last.fm API. 514 00:31:15,130 --> 00:31:18,990 Вы атрымаеце назад вялікі спіс, а затым, відавочна, некаторыя іншыя рэчы робіцца 515 00:31:18,990 --> 00:31:22,280 каб ператварыць яго ў слова воблака, але вы можаце бачыць агульнае 516 00:31:22,280 --> 00:31:25,850 гэта вельмі лёгка атрымаць доступ і вельмі простая ў выкарыстанні. 517 00:31:25,850 --> 00:31:30,750 Сапраўды добры для шэрагу рэчаў. 518 00:31:30,750 --> 00:31:35,940 >> Я думаю, што гэта ўсё, што я скажу ў цэлым. 519 00:31:35,940 --> 00:31:39,040 Апошняе, што я ўзгадаю API-інтэрфейсы ў цэлым з'яўляецца тое, што 520 00:31:39,040 --> 00:31:41,840 Вы будзеце часам ўпадаць у тое, што называецца абмежаваннем хуткасці, 521 00:31:41,840 --> 00:31:44,940 і ідэя абмежавання хуткасці значыць, вы не хочаце, каб злоўжываць API. 522 00:31:44,940 --> 00:31:48,130 Іншымі словамі, гэта вельмі прыемна, што многія з гэтых сайтаў маюць інтэрфейсы 523 00:31:48,130 --> 00:31:51,070 што вы можаце пайсці і выкарыстоўваць бясплатна. 524 00:31:51,070 --> 00:31:54,460 Аднак, калі вы робіце мільёны або мільярды запытаў у дзень, 525 00:31:54,460 --> 00:31:57,610 Напрыклад, калі вы затрымаліся ў бясконцым цыкле якая бясконца запытаў 526 00:31:57,610 --> 00:32:00,680 свайго роду API і вяртанне велізарнай колькасці дадзеных, 527 00:32:00,680 --> 00:32:04,570 Відавочна, што гэта не добра, так што шмат API, зрабіць гэта было гэтую функцыю абмежавання хуткасці 528 00:32:04,570 --> 00:32:09,970 кажа, што вы можаце зрабіць толькі 1000 запытаў у дзень на IP-адрас ці нешта накшталт гэтага. 529 00:32:09,970 --> 00:32:12,540 І калі вы робіце шмат выпрабаванняў і да таго падобнае, 530 00:32:12,540 --> 00:32:14,890 Вы будзеце часам працаваць у гэта, і раптам яна будзе зачыненая вас 531 00:32:14,890 --> 00:32:18,280 і кажуць, не, я не даю вам ніякіх дадатковых дадзеных. 532 00:32:18,280 --> 00:32:20,000 >> Тое, што вы хочаце зрабіць, гэта гуляць па правілах. 533 00:32:20,000 --> 00:32:22,950 Вы хочаце, каб пераканацца, што вы чыталі API Spec старанна. 534 00:32:22,950 --> 00:32:26,330 Калі яна мае пэўныя правілы, якія змяшчаюцца ў ім, як вы можаце зрабіць толькі X запытаў у дзень 535 00:32:26,330 --> 00:32:30,000 або Вы можаце атрымаць доступ толькі да часткі базы дадзеных пэўную колькасць разоў 536 00:32:30,000 --> 00:32:32,900 ці нешта падобнае, што вы хочаце пераканацца, што вы будзеце прытрымлівацца гэтага. 537 00:32:32,900 --> 00:32:38,360 Пакуль вы гуляеце ў рамках гэтых правілаў вы, верагодна, ёсць сапраўды добры час, выкарыстоўваючы API. 538 00:32:38,360 --> 00:32:42,030 Ваш агульны вынас з'яўляецца API, сапраўды, вельмі карысна. 539 00:32:42,030 --> 00:32:45,610 >> Там у API для амаль любога вялікага вэб-сэрвіс там. 540 00:32:45,610 --> 00:32:50,700 Практычна любой частцы інструментаў Google для маладых, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, усе гэтыя рэчы маюць API. 542 00:32:54,390 --> 00:32:58,280 Вы можаце выкарыстоўваць іх як для атрымання дадзеных з сервера і адпраўкі дадзеных на сервер. 543 00:32:58,280 --> 00:33:00,870 Іншымі словамі, калі вы хочаце зрабіць каляндар прыкладанне, якое можа абнавіць 544 00:33:00,870 --> 00:33:04,190 Google Calendar хтосьці, ёсць API для гэтага. 545 00:33:04,190 --> 00:33:07,810 Калі вы хочаце зрабіць нешта, што збіраюся расказаць вам, дзе 546 00:33:07,810 --> 00:33:12,530 размяшчэнне пэўнага адрасу вы можаце выкарыстоўваць Google Maps API для гэтага. 547 00:33:12,530 --> 00:33:15,860 API-інтэрфейсы з'яўляюцца фантастычна карысна, і яны паўсюль. 548 00:33:15,860 --> 00:33:18,700 Калі вы зацікаўлены ў нейкую ідэю, 549 00:33:18,700 --> 00:33:22,170 там, напэўна, звязанай API, які можна выкарыстоўваць, каб атрымаць вялікую колькасць дадзеных 550 00:33:22,170 --> 00:33:25,060 Вельмі хутка і вельмі проста. 551 00:33:25,060 --> 00:33:28,140 >> Калі вы ўсё яшчэ шукаеце праект або калі вы проста хочаце пагуляць 552 00:33:28,140 --> 00:33:31,820 з чымсьці, у агульным, API, безумоўна, варта рабіць. 553 00:33:31,820 --> 00:33:37,200 Дзякуй, і я рады адказаць на любыя пытанні, якія вы, хлопцы, можаце мець. 554 00:33:37,200 --> 00:33:44,900 Добра, дзякуй вялікі. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]