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 Oh, извините. 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]