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]