1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Hội thảo] [A Programmer Giới thiệu đến các API] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Đại học Harvard] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Đây là CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hi, tất cả mọi người, tôi là Billy, và hôm nay tôi sẽ nói về các API, 5 00:00:12,100 --> 00:00:15,220 hoặc các giao diện lập trình ứng dụng, 6 00:00:15,220 --> 00:00:20,040 đặc biệt trong bối cảnh của CS50 dự án chính thức và sắp xếp của điều. 7 00:00:20,040 --> 00:00:22,490 Nói chung một API là gì? 8 00:00:22,490 --> 00:00:25,530 Trong điều kiện rất rộng, đó là sắp xếp của một người đàn ông trung, cho phép 2 miếng 9 00:00:25,530 --> 00:00:28,610 của phần mềm để giao tiếp với nhau. 10 00:00:28,610 --> 00:00:32,530 Đó là một loại định nghĩa rất rộng và không phải là có liên quan cho những gì chúng tôi đang tìm kiếm tại. 11 00:00:32,530 --> 00:00:35,450 Những gì chúng tôi thực sự muốn là một số loại mặt đất trung bình hữu ích 12 00:00:35,450 --> 00:00:40,570 để giao tiếp với một số loại cơ sở dữ liệu một nơi nào đó. 13 00:00:40,570 --> 00:00:43,310 >> Dưới đây là một biểu đồ, và về cơ bản ý tưởng là 14 00:00:43,310 --> 00:00:46,790 chúng tôi là một ứng dụng, và chúng tôi muốn lấy dữ liệu từ một cơ sở dữ liệu, 15 00:00:46,790 --> 00:00:49,570 nhưng chúng tôi không muốn để truy vấn cơ sở dữ liệu trực tiếp. 16 00:00:49,570 --> 00:00:52,710 Thay vào đó, chúng tôi muốn đi qua này sắp xếp của người đàn ông trung, các hàm API. 17 00:00:52,710 --> 00:00:55,440 Ý tưởng đằng sau đó là số 2 và 3 trên bảng xếp hạng 18 00:00:55,440 --> 00:00:57,750 đều sẽ rất phức tạp và lộn xộn. 19 00:00:57,750 --> 00:00:59,960 Nói cách khác, khi các API truy vấn cơ sở dữ liệu, 20 00:00:59,960 --> 00:01:03,300 nó có lẽ sẽ được sử dụng các bảng SQL và tất cả các loại công cụ đó, 21 00:01:03,300 --> 00:01:05,489 và chúng tôi đã học được một chút thông tin về nó năm CS50, nhưng tổng thể, 22 00:01:05,489 --> 00:01:07,590 bạn đã nhận thấy rằng đó là một chút đau đớn một. 23 00:01:07,590 --> 00:01:10,590 Nó được rất, rất phức tạp và lộn xộn, đặc biệt là khi bạn đang thực hiện 24 00:01:10,590 --> 00:01:12,530 truy vấn phức tạp và sắp xếp của điều. 25 00:01:12,530 --> 00:01:15,960 >> Những gì chúng tôi thực sự muốn là một số loại cách hữu ích và đơn giản 26 00:01:15,960 --> 00:01:19,780 để có được các dữ liệu đó, và đó là ý tưởng đằng sau số 1 và 4 trên bảng xếp hạng. 27 00:01:19,780 --> 00:01:23,600 Nói cách khác, chúng tôi muốn có một cách thực sự đơn giản để nói với các API để có được những gì cho chúng ta 28 00:01:23,600 --> 00:01:27,760 và một cách thực sự đơn giản để có được dữ liệu trở lại. 29 00:01:27,760 --> 00:01:33,020 Có là một trong những chính cách mà dữ liệu được gửi và nhận, 30 00:01:33,020 --> 00:01:36,490 đó là JSON, hoặc JavaScript Object Notation. 31 00:01:36,490 --> 00:01:40,370 Điều đó có thể thay đổi một chút như xa như làm thế nào bạn gửi yêu cầu đến các API. 32 00:01:40,370 --> 00:01:43,210 Nói cách khác, nếu bạn muốn có một số lượng nhất định của dữ liệu, 33 00:01:43,210 --> 00:01:46,670 cách bạn nói với các API để có được dữ liệu có thể khác nhau một chút. 34 00:01:46,670 --> 00:01:49,210 Thông thường, nó liên quan đến việc làm cho một số loại yêu cầu mạng. 35 00:01:49,210 --> 00:01:53,130 Nói cách khác, truy cập vào một số loại URL đó là sẽ nói với các API 36 00:01:53,130 --> 00:01:56,190 chính xác những gì bạn muốn, nhưng các dữ liệu được hầu như luôn luôn gửi lại, 37 00:01:56,190 --> 00:01:59,530 nói cách khác, số 4 trong JSON. 38 00:01:59,530 --> 00:02:01,030 >> JSON là gì chính xác? 39 00:02:01,030 --> 00:02:03,030 Như tôi đã nói, JavaScript Object Notation. 40 00:02:03,030 --> 00:02:07,090 Đó là cơ bản các tiêu chuẩn phổ quát cho truyền và nhận dữ liệu. 41 00:02:07,090 --> 00:02:11,410 Ý tưởng là bạn có 3 loại vật. 42 00:02:11,410 --> 00:02:13,540 Bạn có mảng, hashmaps và nguyên thủy. 43 00:02:13,540 --> 00:02:16,580 Mảng và hashmaps bạn đã nhìn một chút trong CS50, 44 00:02:16,580 --> 00:02:19,870 nhưng bạn đã loại nhận được một cảm giác rất khắt khe về những gì họ đang có. 45 00:02:19,870 --> 00:02:22,780 Nói cách khác, với mảng bạn biết rằng họ đang gõ bị ràng buộc, 46 00:02:22,780 --> 00:02:26,560 vì vậy bạn chỉ có một loại loại mà đi suốt toàn bộ mảng. 47 00:02:26,560 --> 00:02:29,310 JSON là rất khoan dung hơn với loại điều đó. 48 00:02:29,310 --> 00:02:33,590 Về cơ bản, ý tưởng là bạn xây dựng đối tượng này, 49 00:02:33,590 --> 00:02:36,270 mà có thể được bao gồm bất kỳ những thứ 3 50 00:02:36,270 --> 00:02:39,470 và có thể bao gồm nhiều của những người trong số họ, và họ có thể được lồng vào nhau. 51 00:02:39,470 --> 00:02:42,110 >> Đây là loại một ví dụ về JSON, 52 00:02:42,110 --> 00:02:47,910 đó là những dấu ngoặc nhọn ở đây đại diện cho hashmap của bạn, 53 00:02:47,910 --> 00:02:51,400 và một hashmap về cơ bản là một ánh xạ từ một số loại khóa 54 00:02:51,400 --> 00:02:53,340 một số loại giá trị. 55 00:02:53,340 --> 00:02:56,440 Bạn sẽ thấy ở đây chúng ta đã có chìa khóa thuộc tính, 56 00:02:56,440 --> 00:02:59,600 và đó là lập bản đồ vào một mảng, đó là toàn bộ điều này. 57 00:02:59,600 --> 00:03:04,120 Chúng tôi nhìn thấy một yếu tố của hashmap, đó là isAwesome quan trọng này, 58 00:03:04,120 --> 00:03:07,370 bản đồ đến một giá trị nguyên thủy của sự thật, nói cách khác, một boolean. 59 00:03:07,370 --> 00:03:09,420 Nguyên thủy có thể được chuỗi. Họ có thể là các số nguyên. 60 00:03:09,420 --> 00:03:11,960 Họ có thể là bools, bất cứ điều gì như thế. 61 00:03:11,960 --> 00:03:18,410 Và bạn thấy nội dung của mảng này thuộc tính điểm để có 2 chuỗi trong nó, 62 00:03:18,410 --> 00:03:20,050 tự tương tự và tuyệt vời. 63 00:03:20,050 --> 00:03:27,410 Đó là 2 thuộc tính của JSON, và chúng ta thấy rằng JSON là awesome. 64 00:03:27,410 --> 00:03:30,060 Nhìn vào đó một chút chặt chẽ hơn tôi sẽ xây dựng 65 00:03:30,060 --> 00:03:32,870 một ví dụ phức tạp hơn của JSON ở đây. 66 00:03:32,870 --> 00:03:37,000 >> Hãy bắt đầu với một mảng, ví dụ, chỉ là một mảng trống rỗng. 67 00:03:37,000 --> 00:03:39,180 Nhưng đó là loại nhàm chán, do đó, chúng ta sẽ để điền vào nó lên một chút, 68 00:03:39,180 --> 00:03:43,420 và như tôi đã nói, mảng JSON gõ ràng buộc, 69 00:03:43,420 --> 00:03:46,400 vì vậy chúng tôi cũng có thể có một chuỗi ở đây, đó là hi, 70 00:03:46,400 --> 00:03:49,330 và đó là một yếu tố của mảng đó. 71 00:03:49,330 --> 00:03:53,450 Và tương tự như vậy, chúng ta có thể thêm một hashmapping ở đây, đó là sẽ có một ánh xạ. 72 00:03:53,450 --> 00:04:00,470 Nó sẽ có một bản đồ từ tên Billy chuỗi. 73 00:04:00,470 --> 00:04:04,590 Chúng tôi có một ánh xạ từ tên Billy, và chúng tôi có một bản đồ 74 00:04:04,590 --> 00:04:10,860 yêu thích màu sang màu xanh. 75 00:04:10,860 --> 00:04:12,700 Đó là về cơ bản là một ví dụ tốt của JSON. 76 00:04:12,700 --> 00:04:18,160 Nó loại được thành-tả, cần một dấu phẩy có tất cả các bộ phận khác nhau của nó. 77 00:04:18,160 --> 00:04:21,140 Một lần nữa, nó không phải loại bị ràng buộc ở tất cả, vì vậy bạn có thể có bất kỳ loại của các loại 78 00:04:21,140 --> 00:04:24,710 bên trong bất cứ điều gì bạn muốn, và ý tưởng là nó tự tương tự. 79 00:04:24,710 --> 00:04:28,830 Nói cách khác, điều này đúng ở đây là một đối tượng JSON, như là toàn bộ điều này, 80 00:04:28,830 --> 00:04:33,200 như chỉ là điều này, vì vậy bạn có thể có một nguyên thủy là một đối tượng, 81 00:04:33,200 --> 00:04:35,680 một mảng là một đối tượng hoặc một hashmap là một đối tượng. 82 00:04:35,680 --> 00:04:40,270 >> Như bạn có thể loại thấy, JSON là thực sự, thực sự hữu ích ở chỗ nó là rất linh hoạt. 83 00:04:40,270 --> 00:04:45,860 Bạn có thể có bất kỳ dữ liệu nào có thể mà bạn có thể thụ thai được lưu trữ trong JSON. 84 00:04:45,860 --> 00:04:47,900 Điều đó làm cho nó một ngôn ngữ rất đẹp để sử dụng với các API 85 00:04:47,900 --> 00:04:50,770 bởi vì nó khá nhiều có nghĩa là không có vấn đề những dữ liệu mà bạn muốn 86 00:04:50,770 --> 00:04:54,270 sẽ có một số cách để có được nó trở lại trong JSON. 87 00:04:54,270 --> 00:04:58,600 Một vài tính năng mà làm cho JSON đặc biệt tốt cho các loại điều này. 88 00:04:58,600 --> 00:05:02,270 Như bạn có thể thấy, so với rất nhiều thứ mà bạn đã làm việc với trong CS50 89 00:05:02,270 --> 00:05:06,040 đó là tương đối rất dễ đọc và cũng rất dễ dàng để viết. 90 00:05:06,040 --> 00:05:09,700 Bạn có thể indent nó ra nếu bạn muốn, như tôi đã làm trong ví dụ đó, 91 00:05:09,700 --> 00:05:12,990 trong đó cung cấp cho bạn một phiên bản, khá tốt đẹp mà bạn có thể nhìn thấy thực sự tốt. 92 00:05:12,990 --> 00:05:17,150 Nhưng hơn thế nữa, nó cũng dễ dàng để đọc và viết cho một máy tính. 93 00:05:17,150 --> 00:05:19,870 Nói cách khác, thật dễ dàng để phân tích và dễ dàng để mã hóa, 94 00:05:19,870 --> 00:05:23,820 có nghĩa là nó khá nhanh như xa như đọc dữ liệu là có liên quan, 95 00:05:23,820 --> 00:05:26,460 và JSON có thể được tạo ra rất nhanh. 96 00:05:26,460 --> 00:05:30,300 >> Nó cũng rất dễ dàng để truy cập các phần khác nhau của JSON và sắp xếp của điều. 97 00:05:30,300 --> 00:05:33,320 Đó là tốt đẹp, và hơn nữa, thực tế là nó tự-tương tự, 98 00:05:33,320 --> 00:05:36,090 nói cách khác, thực tế là bạn có thể có JSON trong JSON trong JSON 99 00:05:36,090 --> 00:05:40,040 thực sự là tốt đẹp để lưu trữ dữ liệu. 100 00:05:40,040 --> 00:05:45,490 Một phần khác nói chung là thực sự hữu ích trong việc làm việc với các API jQuery. 101 00:05:45,490 --> 00:05:49,290 Bạn đã học được một chút của JavaScript, đó là một cách tốt đẹp 102 00:05:49,290 --> 00:05:53,710 để thao tác HTML và CSS trong một trang web. 103 00:05:53,710 --> 00:05:57,190 Nhưng nó có thể loại là một nỗi đau để mã bằng JavaScript, 104 00:05:57,190 --> 00:05:59,810 phần lớn là vì JavaScript là một ngôn ngữ thực sự tiết. 105 00:05:59,810 --> 00:06:03,020 Bạn phải học rất nhiều cú pháp, và chỉ để làm những việc rất đơn giản 106 00:06:03,020 --> 00:06:07,590 phải mất rất nhiều mã, do đó, jQuery là một thư viện JavaScript. 107 00:06:07,590 --> 00:06:09,800 Nói cách khác, đó là một tập tin JavaScript mà bạn có thể tải 108 00:06:09,800 --> 00:06:12,730 và sau đó sử dụng chức năng jQuery để làm những việc nhất định. 109 00:06:12,730 --> 00:06:15,670 Và jQuery cơ bản làm cho cuộc sống của bạn dễ dàng hơn rất nhiều toàn bộ. 110 00:06:15,670 --> 00:06:20,390 Nó đơn giản hóa những gì sẽ mất hàng trăm dòng trong JavaScript xuống một vài dòng trong jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Nó đặc biệt hữu ích nếu bạn đang sử dụng API bởi vì nhìn chung 112 00:06:24,430 --> 00:06:27,600 làm thế nào bạn sẽ được truy cập vào các API bằng cách làm cho AJAX yêu cầu, 113 00:06:27,600 --> 00:06:30,130 và tôi tin rằng David đã đề cập trong bài giảng rằng các yêu cầu AJAX 114 00:06:30,130 --> 00:06:33,120 nói chung là khi bạn đang thực hiện một yêu cầu mạng một số loại máy chủ 115 00:06:33,120 --> 00:06:37,760 và nhận được trở lại một số loại dữ liệu và cập nhật một trang ngay lập tức. 116 00:06:37,760 --> 00:06:41,840 Trong khi ở đồng bằng JavaScript mà có thể đưa số điên dòng 117 00:06:41,840 --> 00:06:44,620 xác nhận tất cả các tiêu đề và làm tất cả các loại công cụ đó, 118 00:06:44,620 --> 00:06:46,810 jQuery có một chức năng thực sự đơn giản được gọi là AJAX, 119 00:06:46,810 --> 00:06:51,760 và tất cả những gì bạn phải làm trong AJAX là cung cấp cho các thông số mà bạn muốn cung cấp cho các API, 120 00:06:51,760 --> 00:06:56,830 vị trí của các API và bất kỳ loại bổ sung của tùy chọn mà bạn muốn cấu hình. 121 00:06:56,830 --> 00:07:02,480 Nó thực sự, thực sự tốt đẹp và hữu ích cho loại điều. 122 00:07:02,480 --> 00:07:06,970 Đó là tất cả chúng ta cần phải bắt đầu nhận được bàn tay dơ bẩn của chúng tôi trong các API. 123 00:07:06,970 --> 00:07:10,220 >> Tôi sẽ đưa ra một vài ví dụ và khám phá các đặc tính khác nhau của họ 124 00:07:10,220 --> 00:07:13,150 và tại sao chúng hữu ích cho các loại khác nhau của sự vật. 125 00:07:13,150 --> 00:07:15,570 Điều đầu tiên tôi thực sự sẽ cho bạn thấy một cái gì đó mà tôi đang làm việc trên 126 00:07:15,570 --> 00:07:18,310 tại phòng thí nghiệm nghiên cứu của tôi, mà là một Ngram Viewer, 127 00:07:18,310 --> 00:07:23,270 và về cơ bản là ý tưởng của một trình xem Ngram là bạn có thể tìm kiếm một số loại của từ 128 00:07:23,270 --> 00:07:28,840 hoặc cụm từ và mức độ thường xuyên xuất hiện trong một tập hợp một số văn bản theo thời gian. 129 00:07:28,840 --> 00:07:33,160 Ví dụ ở đây là tập dữ liệu này của trẻ sơ sinh 130 00:07:33,160 --> 00:07:36,480 đã được sinh ra tại New York giữa những năm 1920 và 2000. 131 00:07:36,480 --> 00:07:40,090 Chúng tôi có thể tìm kiếm, ví dụ, cho Jennifer tên, 132 00:07:40,090 --> 00:07:44,400 và chúng ta thấy rằng trước năm 1960, nó thực sự không được sử dụng tất cả những gì nhiều, 133 00:07:44,400 --> 00:07:48,900 và sau đó là chúng tôi nhận được vào năm sau đó, nó trở thành sử dụng nhiều hơn và nhiều hơn nữa. 134 00:07:48,900 --> 00:07:53,680 Chúng tôi cũng có thể làm so sánh, vì vậy nếu chúng ta so sánh Jennifer đến, ví dụ, Thomas, 135 00:07:53,680 --> 00:07:56,520 chúng ta có thể nhìn thấy Thomas đã được khá phổ biến trong suốt lịch sử, 136 00:07:56,520 --> 00:07:58,780 trong khi Jennifer là một tên gần đây. 137 00:07:58,780 --> 00:08:00,590 Chúng tôi có thể làm điều đó loại điều. 138 00:08:00,590 --> 00:08:02,460 >> Làm thế nào để ứng dụng này làm việc? 139 00:08:02,460 --> 00:08:06,030 Về cơ bản, nó hoạt động thông qua một API. 140 00:08:06,030 --> 00:08:08,660 Nói cách khác, chúng ta có các thông số nhất định ở đây. 141 00:08:08,660 --> 00:08:11,360 Chúng tôi có các thông số của những gì chúng tôi đang thực sự tìm kiếm, 142 00:08:11,360 --> 00:08:13,720 đó là các tên này, và sau đó chúng tôi có một số tài sản khác, 143 00:08:13,720 --> 00:08:16,570 như trên trục Y và trục X. 144 00:08:16,570 --> 00:08:18,440 Bạn có thể thấy chúng tôi có một vài lựa chọn khác nhau như xa như các 145 00:08:18,440 --> 00:08:20,860 thời gian giải quyết để sử dụng và sắp xếp của điều. 146 00:08:20,860 --> 00:08:26,700 Chúng tôi có các tùy chọn như xa như những dữ liệu chúng tôi thực sự muốn từ cơ sở dữ liệu, 147 00:08:26,700 --> 00:08:29,400 và chúng tôi muốn để có được dữ liệu trở lại trong một số cách hữu ích. 148 00:08:29,400 --> 00:08:34,020 Thông thường, nếu chúng ta truy vấn cơ sở dữ liệu trực tiếp nó sẽ loại là một nỗi đau để làm 149 00:08:34,020 --> 00:08:38,970 bởi vì có lẽ dữ liệu này về tên em bé sống ở một số cơ sở dữ liệu một nơi nào đó, 150 00:08:38,970 --> 00:08:42,789 và nó sẽ được thực sự phức tạp để phải truy vấn nó bằng tay 151 00:08:42,789 --> 00:08:45,830 và quyết định chính xác những gì dữ liệu trở lại. 152 00:08:45,830 --> 00:08:49,300 Nói cách khác, chúng ta chỉ quan tâm về Jennifer và Thomas trong trường hợp này, 153 00:08:49,300 --> 00:08:53,410 và chúng tôi chỉ quan tâm về một trục nhất định và tất cả các loại công cụ đó. 154 00:08:53,410 --> 00:08:55,720 >> Làm thế nào để chúng ta làm được việc này? 155 00:08:55,720 --> 00:09:01,200 Thâm nhập vào những API này nhiều hơn một chút, tôi sẽ cho bạn thấy một ví dụ khác của nền tảng này 156 00:09:01,200 --> 00:09:04,490 trong đó sử dụng một tập dữ liệu hơi khác nhau. 157 00:09:04,490 --> 00:09:09,950 Tập dữ liệu này, thay vì là tên con, thực sự là chỉ toàn bộ 158 00:09:09,950 --> 00:09:12,460 in công bố cơ sở dữ liệu của Thư viện mở, 159 00:09:12,460 --> 00:09:18,410 mà là một nguồn khổng lồ của văn bản được công bố trong suốt 100 hay như vậy năm qua. 160 00:09:18,410 --> 00:09:23,540 Ý tưởng là chúng ta có compository hàng triệu và hàng triệu văn bản, 161 00:09:23,540 --> 00:09:27,420 mà bây giờ chúng ta có thể tìm kiếm các từ và cụm từ khác nhau. 162 00:09:27,420 --> 00:09:30,840 Dưới đây là một ví dụ mà thay đổi một chút khác nhau từ ví dụ trước 163 00:09:30,840 --> 00:09:33,350 Chúng tôi đã giới thiệu cho các bạn, mà là chúng tôi có các truy vấn tìm kiếm 3, 164 00:09:33,350 --> 00:09:36,290 chiến tranh, chiến tranh, và từ Pháp cho chiến tranh, đó là Guerre. 165 00:09:36,290 --> 00:09:40,380 Và chúng tôi đang tìm kiếm trong vòng 3 phần khác nhau của cơ sở dữ liệu tổng. 166 00:09:40,380 --> 00:09:45,080 Nói cách khác, trong truy vấn đầu tiên này, chúng tôi chỉ đang tìm kiếm ở Mỹ, 167 00:09:45,080 --> 00:09:51,150 trong một lần thứ hai chỉ trong Vương quốc Anh, và thứ ba chỉ từ các tác phẩm xuất bản ở Pháp. 168 00:09:51,150 --> 00:09:53,120 Chúng tôi thấy một số mô hình thú vị xuất hiện. 169 00:09:53,120 --> 00:09:58,180 Ví dụ, chúng ta thấy xung quanh đây mà- 170 00:09:58,180 --> 00:10:02,410 oops, tôi sai lầm trên trục một chút, nhưng bạn có thể thấy ngay trong phạm vi này ở đây 171 00:10:02,410 --> 00:10:05,730 xung quanh cuộc nội chiến có một cành lớn trong phiên bản Mỹ 172 00:10:05,730 --> 00:10:08,340 nhưng không phải như một cành lớn trong hai người kia, và đó là rõ ràng vì 173 00:10:08,340 --> 00:10:10,880 Nội chiến Mỹ đã xảy ra tại điểm đó. 174 00:10:10,880 --> 00:10:13,890 >> Chúng ta có thể thấy một số công cụ mát, 175 00:10:13,890 --> 00:10:17,070 nhưng những gì chúng tôi thực sự quan tâm là làm thế nào chúng ta có dữ liệu này. 176 00:10:17,070 --> 00:10:21,320 Tôi sẽ đưa bạn đằng sau hậu trường trong ứng dụng này trong một chút. 177 00:10:21,320 --> 00:10:24,540 Một lừa gọn gàng là nếu bạn đang làm việc với các trang web và loại muốn biết 178 00:10:24,540 --> 00:10:27,430 những gì đang xảy ra đằng sau hậu trường, bạn có thể mở ra các công cụ phát triển. 179 00:10:27,430 --> 00:10:30,200 Tôi sẽ được sử dụng các công cụ phát triển của Chrome, và để có được những 180 00:10:30,200 --> 00:10:35,160 bạn có thể làm điều khiển, thay đổi, J, và sẽ đưa bạn đến giao diện điều khiển JavaScript. 181 00:10:35,160 --> 00:10:37,420 Có một vài tab ở đây. 182 00:10:37,420 --> 00:10:39,680 Tất cả họ đều có thể được khá hữu ích trong những hoàn cảnh khác nhau, nhưng tôi quan tâm về hệ thống mạng 183 00:10:39,680 --> 00:10:44,150 tab ngay bây giờ, và tôi thực sự phải làm mới để có được mà làm việc. 184 00:10:44,150 --> 00:10:50,180 Ồ, xin lỗi. 185 00:10:50,180 --> 00:10:52,320 Nó thích cho một ví dụ ngẫu nhiên. 186 00:10:52,320 --> 00:10:54,700 Được rồi, chúng ta sẽ dùng ví dụ này để thay thế sau đó. 187 00:10:54,700 --> 00:11:01,330 >> Ý tưởng là có API này ở đây, 188 00:11:01,330 --> 00:11:05,330 và bạn có thể nhìn thấy chính xác những gì các API đang quay trở lại. 189 00:11:05,330 --> 00:11:10,220 Đây là những gì các ứng dụng đang nhận được trở lại từ các API đã gửi yêu cầu đó. 190 00:11:10,220 --> 00:11:13,680 Hãy để tôi phóng to một chút, 191 00:11:13,680 --> 00:11:18,340 và chúng tôi về cơ bản có thể nhìn thấy nó chỉ là một loạt các cặp giá trị quan trọng trong JSON. 192 00:11:18,340 --> 00:11:23,220 Nói cách khác, chúng ta có hashmap ở đây đó là lập bản đồ giá trị. 193 00:11:23,220 --> 00:11:26,440 Nói cách khác, nó lập bản đồ năm với các giá trị. 194 00:11:26,440 --> 00:11:32,600 Năm 1765, bất cứ từ ban đầu chúng tôi tìm kiếm được sử dụng 90 lần 195 00:11:32,600 --> 00:11:35,810 trong của 1 triệu, vì vậy chúng tôi đang nhận được kết quả này. 196 00:11:35,810 --> 00:11:40,280 Nó không chính xác JSON kể từ khi chúng tôi có tiêu đề này kết quả nhỏ ở đây, 197 00:11:40,280 --> 00:11:45,630 nhưng thông báo rằng toàn bộ đối tượng này ở đây chỉ là một blob lớn JSON tuyệt vời. 198 00:11:45,630 --> 00:11:51,070 Chúng tôi có một mảng ở đây, trong đó có cả yếu tố này, 199 00:11:51,070 --> 00:11:55,590 và bạn có thể thấy rằng toàn bộ yếu tố kết thúc ở đó, và sau đó chúng tôi có một yếu tố lớn 200 00:11:55,590 --> 00:11:59,430 mà đi tất cả các cách để kết thúc, và kết thúc ở đây. 201 00:11:59,430 --> 00:12:02,200 Chúng tôi có một mảng thực sự lớn với 2 đối tượng trong đó, 202 00:12:02,200 --> 00:12:04,630 và mỗi người trong số các đối tượng là một hashmap. 203 00:12:04,630 --> 00:12:07,340 Bạn có thể thấy trong mỗi của những hashmaps chúng tôi có một bản đồ 204 00:12:07,340 --> 00:12:12,700 giá trị chỉ số này là 0 và giá trị này giá trị khác hashmap, 205 00:12:12,700 --> 00:12:18,360 một lần nữa được lập bản đồ giá trị trục X giá trị trục Y. 206 00:12:18,360 --> 00:12:20,970 >> Bạn có thể thấy JSON được một chút phức tạp, nhưng tổng thể, 207 00:12:20,970 --> 00:12:24,190 nó thực sự rất hữu ích, và nó rất dễ dàng để truy cập so với 208 00:12:24,190 --> 00:12:27,390 các hình thức khác nhau của các ký hiệu. 209 00:12:27,390 --> 00:12:30,550 Theo như những gì chúng tôi đang thực sự gửi dữ liệu API để có được, 210 00:12:30,550 --> 00:12:34,690 Tôi sẽ đi vào kết thúc trở lại một chút ở đây. 211 00:12:34,690 --> 00:12:39,850 Đây là tập tin lớn JavaScript xử lý tất cả các sự tương tác của các ứng dụng web, 212 00:12:39,850 --> 00:12:44,810 và vì vậy chúng tôi không quan tâm nhất của điều này, nhưng chúng tôi quan tâm đến một số của nó. 213 00:12:44,810 --> 00:12:47,410 Ví dụ, chúng tôi quan tâm đến chức năng này buildQuery, 214 00:12:47,410 --> 00:12:50,670 và ý tưởng của chức năng này về cơ bản là nó đang tìm kiếm xung quanh trang, 215 00:12:50,670 --> 00:12:53,750 để tìm ra những gì người dùng muốn truy vấn, nói cách khác, 216 00:12:53,750 --> 00:12:57,090 kiểm tra những hộp mà họ đã nhập vào các thuật ngữ tìm kiếm của họ, 217 00:12:57,090 --> 00:13:01,380 kiểm tra Y khác nhau và giá trị trục X mà họ đã lựa chọn và tất cả các loại điều đó, 218 00:13:01,380 --> 00:13:06,650 và nó sẽ nhổ ra giá trị này truy vấn, mà tôi sau đó có thể gửi các API. 219 00:13:06,650 --> 00:13:09,180 >> Điều này có vẻ phức tạp, và nó là khá phức tạp 220 00:13:09,180 --> 00:13:18,090 nhưng những gì tôi sẽ làm trong thực tế, tôi đã làm điều này, đó là rất tốt 221 00:13:18,090 --> 00:13:21,640 là tôi đang đi để có được giao diện điều khiển để in ra chính xác rằng giá trị truy vấn 222 00:13:21,640 --> 00:13:28,110 nó gửi cho API. 223 00:13:28,110 --> 00:13:30,870 Đó là thực tế ngay tại đây. Xin lỗi, kết quả đầu ra được rất nhiều điều. 224 00:13:30,870 --> 00:13:33,690 Nhưng điều này là những gì chúng tôi quan tâm, đối tượng này ngay tại đây. 225 00:13:33,690 --> 00:13:35,300 Đây là đối tượng truy vấn. 226 00:13:35,300 --> 00:13:40,670 Nói cách khác, điều này là chính xác những gì các ứng dụng web được gửi đến API, 227 00:13:40,670 --> 00:13:45,730 và do đó, chúng ta hãy nhìn vào bên trong một chút, và chúng ta thấy chúng ta có một vài giá trị ở đây. 228 00:13:45,730 --> 00:13:48,710 Chúng tôi thấy chúng tôi đã loại đếm, đó là lần xuất hiện triệu từ, 229 00:13:48,710 --> 00:13:51,460 đó là chính xác những gì chúng tôi đã lựa chọn ở trên trục Y ở đây. 230 00:13:51,460 --> 00:13:53,740 Đó là nơi mà đó là đến từ. 231 00:13:53,740 --> 00:13:58,010 Chúng tôi có một giá trị cơ sở dữ liệu, điều đó có nghĩa là một số cơ sở dữ liệu nhất định 232 00:13:58,010 --> 00:14:01,610 rằng dữ liệu này đang sống, và chúng tôi muốn để truy cập dữ liệu đặc biệt 233 00:14:01,610 --> 00:14:04,950 như trái ngược với tên con dữ liệu, ví dụ. 234 00:14:04,950 --> 00:14:08,320 Sau đó, chúng ta có giá trị này nhóm, 235 00:14:08,320 --> 00:14:12,090 được nói rằng chúng tôi muốn tìm kiếm theo năm như trái ngược với 236 00:14:12,090 --> 00:14:16,030 trục giá trị bất kỳ X khác. 237 00:14:16,030 --> 00:14:19,040 Sau đó, chúng tôi có một phương pháp, một số hàm API sẽ làm nhiều điều. 238 00:14:19,040 --> 00:14:22,360 Nói cách khác, API này cũng có thể quay trở lại các loại dữ liệu khác, 239 00:14:22,360 --> 00:14:27,740 nhưng trong trường hợp này, chúng tôi muốn rằng ánh xạ các giá trị trục X giá trị trục Y. 240 00:14:27,740 --> 00:14:30,730 Đó là những gì được nói cho nó để làm ở đó, 241 00:14:30,730 --> 00:14:35,020 và chúng tôi có giới hạn mảng tìm kiếm, trong đó có 2 giá trị. 242 00:14:35,020 --> 00:14:40,720 Người đầu tiên là những gì chúng ta thấy ở đây, đó là tất cả các giá trị 243 00:14:40,720 --> 00:14:43,020 chứa bên trong hộp nhỏ đầu tiên ở đầu trang. 244 00:14:43,020 --> 00:14:47,570 >> Nói cách khác, chúng tôi muốn tìm kiếm từ trận chiến, và chúng tôi muốn để lọc nó 245 00:14:47,570 --> 00:14:51,920 văn bản tiếng Anh trong văn học Mỹ. 246 00:14:51,920 --> 00:14:54,590 Chúng tôi có đất nước này, đó là Mỹ. 247 00:14:54,590 --> 00:14:59,130 Chúng tôi có một ngôn ngữ, mà là tiếng Anh, vì vậy chúng tôi có tất cả các bộ phận khác nhau 248 00:14:59,130 --> 00:15:02,690 tất cả đều nói với các API chính xác những gì chúng ta muốn. 249 00:15:02,690 --> 00:15:04,940 Chúng tôi không biết những gì các dữ liệu mà chúng tôi nhận được trở lại là có, 250 00:15:04,940 --> 00:15:10,970 nhưng chúng ta biết rằng các dữ liệu sẽ nhận một hình thức nhất định. 251 00:15:10,970 --> 00:15:13,650 Ví dụ này là loại ở phía bên phức tạp, 252 00:15:13,650 --> 00:15:16,180 và bạn sẽ không nhất thiết phải được sử dụng một API phức tạp này, 253 00:15:16,180 --> 00:15:20,600 nhưng điều này là để cho bạn phạm vi và sức mạnh của những gì các API có thể làm. 254 00:15:20,600 --> 00:15:24,980 Nói cách khác, bằng cách sử dụng một hệ thống truy vấn tương đối đơn giản, chúng tôi về cơ bản có một hộp đầu vào 255 00:15:24,980 --> 00:15:29,490 với một vài selectors khác ở những nơi khác nhau. 256 00:15:29,490 --> 00:15:32,010 >> Hãy để tôi thu nhỏ trở lại đây. 257 00:15:32,010 --> 00:15:37,720 Chúng tôi có một hộp đầu vào với một lựa chọn siêu dữ liệu khác nhau, 258 00:15:37,720 --> 00:15:40,610 và chúng tôi có trục Y và lựa chọn trục X. 259 00:15:40,610 --> 00:15:42,830 Chúng tôi không thực sự có các lĩnh vực mà nhiều người, 260 00:15:42,830 --> 00:15:46,210 và chúng ta có thể thấy rất dễ dàng chúng tôi có thể truy vấn một số loại API 261 00:15:46,210 --> 00:15:48,510 và lấy lại dữ liệu và sau đó đặt nó vào bảng xếp hạng này, 262 00:15:48,510 --> 00:15:52,080 mà sau đó sẽ hiển thị nó trong một cách hữu ích. 263 00:15:52,080 --> 00:15:54,970 Để nhìn vào một ví dụ khác có thể là một chút quen thuộc hơn đến với bạn 264 00:15:54,970 --> 00:15:56,510 chúng ta sẽ chuyển sang Facebook. 265 00:15:56,510 --> 00:15:59,440 API của Facebook được gọi là đồ thị Facebook, 266 00:15:59,440 --> 00:16:04,390 và về cơ bản điều đó có nghĩa là Facebook nhìn thấy chính nó như là cơ sở dữ liệu khổng lồ này 267 00:16:04,390 --> 00:16:08,000 của rất nhiều các bộ phận khác nhau mà tất cả đều có mối quan hệ nhất định với nhau. 268 00:16:08,000 --> 00:16:11,070 Nói cách khác, tôi là một người dùng trên Facebook, vì vậy tôi có một hồ sơ, 269 00:16:11,070 --> 00:16:14,310 và tôi cũng có bạn bè nhất định, và mỗi người trong số họ có một hồ sơ, 270 00:16:14,310 --> 00:16:17,580 và mỗi người trong số bạn bè của tôi có một bức tường, trong đó có ý kiến ​​khác nhau về nó, 271 00:16:17,580 --> 00:16:20,800 và mỗi của những ý kiến ​​có thích và tất cả các loại điều đó. 272 00:16:20,800 --> 00:16:23,100 >> Có rất nhiều các bộ phận khác nhau để Facebook. 273 00:16:23,100 --> 00:16:26,670 Đó là một API cực kỳ phức tạp, và có tấn bạn có thể làm gì với nó, 274 00:16:26,670 --> 00:16:28,450 nhưng nó thực sự khá đơn giản để sử dụng. 275 00:16:28,450 --> 00:16:33,680 Tôi sẽ bắt đầu bằng cách đi đến graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 mà là duy nhất tên tài khoản của tôi, và tên tài khoản của bạn, hoặc sẽ được 277 00:16:38,430 --> 00:16:43,710 một số loại của từ nếu bạn đã chọn nó, hoặc nó chỉ có thể là một chuỗi số. 278 00:16:43,710 --> 00:16:46,360 Những gì chúng tôi nhận được trở lại là thông tin khá cơ bản. 279 00:16:46,360 --> 00:16:50,460 Chúng tôi thấy rằng tôi có một tên đầu tiên, đó là Billy, một tên cuối cùng, đó là Janitsch. 280 00:16:50,460 --> 00:16:53,370 Có một Facebook ID duy nhất mà tôi có. 281 00:16:53,370 --> 00:16:57,920 Bạn có thể thấy rằng tôi là nam và rằng tôi có cài đặt ngôn ngữ của tôi 282 00:16:57,920 --> 00:17:01,290 tiếng Anh - Anh. 283 00:17:01,290 --> 00:17:03,490 Nói cách khác, chúng ta đang thấy thông tin rất cơ bản ở đây. 284 00:17:03,490 --> 00:17:08,670 Nó không phải quá nhiều, nhưng nó cung cấp cho chúng ta một ý tưởng về những gì đang có. 285 00:17:08,670 --> 00:17:10,849 >> Chúng tôi có thể làm điều tương tự với David Malan, ví dụ. 286 00:17:10,849 --> 00:17:13,599 Tôi nghĩ rằng tên của ông là dmalan. 287 00:17:13,599 --> 00:17:16,369 Chúng tôi nhìn thấy David Malan có một ID duy nhất. 288 00:17:16,369 --> 00:17:19,300 Ông có một tên, tên, tên đệm, cuối cùng tên. 289 00:17:19,300 --> 00:17:24,210 Chúng tôi cũng thấy rằng anh là nam giới và đã thiết lập ngôn ngữ của mình để tiếng Anh-Mỹ. 290 00:17:24,210 --> 00:17:26,869 Nói cách khác, chúng ta đang thấy thông tin khá cơ bản ở đây. 291 00:17:26,869 --> 00:17:28,860 Bây giờ, điều gì sẽ xảy ra nếu chúng tôi cố gắng để kiểm tra cái gì khác? 292 00:17:28,860 --> 00:17:33,060 Hãy nói rằng tôi quan tâm đến những gì David Malan thích trên Facebook. 293 00:17:33,060 --> 00:17:36,860 Tôi có thể làm / thích. Bây giờ chúng tôi đã chạy vào một vấn đề. 294 00:17:36,860 --> 00:17:39,280 Chúng tôi đã có một số loại lỗi mà nói một thẻ truy cập 295 00:17:39,280 --> 00:17:41,660 là cần thiết để yêu cầu tài nguyên này. 296 00:17:41,660 --> 00:17:44,730 Nhưng nếu bạn nghĩ về nó, mà thực sự có ý nghĩa bởi vì nó sẽ là kỳ lạ 297 00:17:44,730 --> 00:17:47,830 nếu bạn có thể truy cập tất cả các phần của cơ sở dữ liệu của Facebook 298 00:17:47,830 --> 00:17:50,170 chỉ từ một số loại API đơn giản, phải không? 299 00:17:50,170 --> 00:17:56,040 Nói cách khác, có lẽ thông tin của bạn không thể được truy cập bởi bất cứ ai muốn nó. 300 00:17:56,040 --> 00:17:58,330 >> Lỗi này là chính xác điều đó có nghĩa là gì. 301 00:17:58,330 --> 00:18:03,630 Một số hàm API đòi hỏi sự cho phép để truy cập dữ liệu của họ. 302 00:18:03,630 --> 00:18:06,940 Và thậm chí còn tiên tiến hơn API, như Facebook, 303 00:18:06,940 --> 00:18:09,840 sẽ yêu cầu quyền truy cập nhất định để làm một số việc. 304 00:18:09,840 --> 00:18:12,650 Tôi có thể xem thông tin cơ bản về David Malan. 305 00:18:12,650 --> 00:18:15,950 Tôi có thể thấy rằng anh ấy là nam giới và rằng ông sống ở Mỹ, 306 00:18:15,950 --> 00:18:19,270 nhưng tôi có thể không thực sự nhìn thấy bất cứ điều gì trong quá khứ mà. 307 00:18:19,270 --> 00:18:23,050 Để làm được việc này cho bây giờ, Facebook có công cụ tốt đẹp này 308 00:18:23,050 --> 00:18:27,690 là đồ thị API thám hiểm, và ý tưởng đó là bạn có thể sắp xếp 309 00:18:27,690 --> 00:18:31,880 tạo lập các điều khoản cho chính mình dựa trên tài khoản riêng của bạn 310 00:18:31,880 --> 00:18:35,680 và sau đó xem những điều mà cụ thể tài khoản của bạn có thể xem. 311 00:18:35,680 --> 00:18:45,120 Ví dụ, nếu tôi làm graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 tả, tôi đoán tôi phải xác thực lại mã thông báo của tôi ở đây. 313 00:18:53,510 --> 00:18:55,950 Okay. 314 00:18:55,950 --> 00:19:01,740 Nếu tôi làm điều đó một lần nữa, tuyệt vời, bây giờ tôi thấy rằng tôi nhận được đối tượng trở lại 315 00:19:01,740 --> 00:19:06,300 mà nói rằng tôi thích mì hồ bơi, Games thể loại và Đồ chơi. 316 00:19:06,300 --> 00:19:08,620 Tôi thích hải mã, trong Animal category. 317 00:19:08,620 --> 00:19:10,180 Đây là những thực tế như Facebook của tôi. 318 00:19:10,180 --> 00:19:13,280 Chúng tôi loại lúng túng. 319 00:19:13,280 --> 00:19:16,090 >> Nhưng chúng ta có thể xem tất cả các dữ liệu này được trả lại trong JSON. 320 00:19:16,090 --> 00:19:18,160 Nó khá có thể đọc được. 321 00:19:18,160 --> 00:19:20,970 Nói cách khác, chúng ta có ánh xạ dữ liệu cho một số loại của một mảng, 322 00:19:20,970 --> 00:19:25,220 và mỗi phần tử của mảng này là một hashmap mà bản đồ 323 00:19:25,220 --> 00:19:28,530 tên như thể loại như một. 324 00:19:28,530 --> 00:19:31,240 Như từng có một ID duy nhất. 325 00:19:31,240 --> 00:19:34,510 Có tất cả các loại khác nhau của dữ liệu mà chúng tôi có thể nhận được, 326 00:19:34,510 --> 00:19:37,980 và nếu bạn đang quan tâm đến bằng cách sử dụng API của Facebook cho một dự án thức CS50 327 00:19:37,980 --> 00:19:40,720 hoặc cho bất cứ điều gì như thế nó thực sự khá doable. 328 00:19:40,720 --> 00:19:44,260 Về cơ bản làm thế nào bạn có được xung quanh những điều xác thực là Facebook 329 00:19:44,260 --> 00:19:48,030 sử dụng một hệ thống gọi là OAuth, hoặc xác thực mở, 330 00:19:48,030 --> 00:19:52,870 và tôi không muốn để có được vào nó ngay bây giờ bởi vì OAuth hoặc loại khác nhau 331 00:19:52,870 --> 00:19:56,060 xác thực có xu hướng khác nhau rất nhiều giữa các API khác nhau, 332 00:19:56,060 --> 00:19:58,320 vì vậy tôi có thể chi tiêu một thời gian dài đi qua mỗi một, 333 00:19:58,320 --> 00:20:01,170 nhưng chúng thực sự là khá tự giải thích. 334 00:20:01,170 --> 00:20:04,050 >> Nếu bạn Google Facebook API nó rất dễ đọc. 335 00:20:04,050 --> 00:20:06,670 Có một spec. 336 00:20:06,670 --> 00:20:10,210 Ví dụ, đây là các tài liệu hướng dẫn cho các API Facebook, 337 00:20:10,210 --> 00:20:14,170 và bạn có thể thấy tôi là trên trang của người dùng, vì vậy tôi có thể tìm hiểu tất cả về các loại khác nhau của vật 338 00:20:14,170 --> 00:20:17,170 mà có sẵn để có được dữ liệu như xa như 339 00:20:17,170 --> 00:20:21,550 và cũng là quyền hạn khác nhau mà tôi cần để truy cập chúng. 340 00:20:21,550 --> 00:20:25,470 Như chúng ta thấy, chúng ta không cần phải được thiết lập cấp phép truy cập vào tên, giới tính, 341 00:20:25,470 --> 00:20:29,380 nhưng ngoài ra chúng tôi cần phải được thiết lập cấp phép cho hầu hết mọi thứ. 342 00:20:29,380 --> 00:20:33,040 Trang này, hay đúng hơn, trang web này cũng sẽ cho bạn biết làm thế nào để có được 343 00:20:33,040 --> 00:20:35,640 một mã thông báo để có thể xác nhận bản thân. 344 00:20:35,640 --> 00:20:39,290 Hầu hết các hệ thống xác thực sử dụng một số loại mã thông báo 345 00:20:39,290 --> 00:20:42,880 nơi mà bạn nhận được giá trị duy nhất, mà là một chuỗi thực sự dài và ngẫu nhiên, 346 00:20:42,880 --> 00:20:46,240 và cách mà họ có thể kết hợp các yêu cầu rằng bạn đang làm với bạn. 347 00:20:46,240 --> 00:20:50,560 Nói cách khác, họ biết rằng bạn không làm bất cứ điều gì nghi ngờ với dữ liệu của họ. 348 00:20:50,560 --> 00:20:53,340 Họ biết chính xác những gì bạn đang nhận được. 349 00:20:53,340 --> 00:20:56,180 Họ cũng biết rằng bạn có quyền để xem thông tin đó. 350 00:20:56,180 --> 00:20:59,110 >> Nếu bạn đã thực hiện một ứng dụng Facebook và các ứng dụng của bạn có một số người sử dụng, 351 00:20:59,110 --> 00:21:03,380 và những người sử dụng đã cho phép ứng dụng truy cập một số phần của hồ sơ của họ, 352 00:21:03,380 --> 00:21:07,790 sau đó bất cứ điều gì hoặc mã thông báo rằng ứng dụng đang sử dụng API key 353 00:21:07,790 --> 00:21:11,090 sẽ có thể truy cập dữ liệu cho những người sử dụng. 354 00:21:11,090 --> 00:21:13,780 Điều này có vẻ phức tạp, nhưng nó không phải là quá xấu, 355 00:21:13,780 --> 00:21:16,810 và nếu bạn muốn để sử dụng Facebook Tôi rất muốn khuyên bạn nên 356 00:21:16,810 --> 00:21:18,990 xem xét việc chơi đùa với API của họ. 357 00:21:18,990 --> 00:21:21,610 Nó rất mát mẻ, và bạn có thể làm rất nhiều thứ khác nhau với nó. 358 00:21:21,610 --> 00:21:24,880 Nếu người sử dụng cấp cho bạn các quyền truy cập này, bạn thậm chí có thể trở lại với các API 359 00:21:24,880 --> 00:21:28,820 và nói rằng tôi muốn thực sự gửi bức tường này của người sử dụng, hoặc tôi muốn có họ gửi một bức ảnh, 360 00:21:28,820 --> 00:21:32,390 và đó là lý do tại sao trên nguồn cấp dữ liệu tin tức của bạn đôi khi bạn sẽ nhận được những điều gây phiền nhiễu 361 00:21:32,390 --> 00:21:37,840 câu nói bạn của bạn đã xem video này trên một số loại trang web lạ hoặc một cái gì đó như thế. 362 00:21:37,840 --> 00:21:43,120 Đó là vì ứng dụng đã được cấp quyền truy cập để đăng bài trên tường của người đó. 363 00:21:43,120 --> 00:21:48,350 Ý tưởng tổng thể, API của Facebook là khá phức tạp nhưng cũng thực sự hữu ích. 364 00:21:48,350 --> 00:21:53,220 Chắc chắn giá trị kiểm tra ra nếu bạn vẫn đang tìm kiếm một dự án cuối cùng. 365 00:21:53,220 --> 00:21:57,930 >> Một bộ các API mà tôi sẽ đi qua là CS50 API. 366 00:21:57,930 --> 00:22:00,070 Hãy để tôi phóng to ở đây. 367 00:22:00,070 --> 00:22:03,390 CS50 đã thực sự đặt cùng một loạt các API 368 00:22:03,390 --> 00:22:07,080 mà bạn có thể sử dụng cho một dự án cuối cùng hoặc chỉ để cho bất cứ điều gì mà bạn đang làm. 369 00:22:07,080 --> 00:22:12,830 Và họ chủ yếu là liên quan đến Harvard, và họ khác nhau từ trình đơn HUDS, 370 00:22:12,830 --> 00:22:17,780 ví dụ, Harvard Sự kiện API này, mà sẽ cho phép bạn truy cập vào một danh sách các 371 00:22:17,780 --> 00:22:21,290 khác nhau sự kiện đang diễn ra tại Đại học Harvard và sắp xếp của điều. 372 00:22:21,290 --> 00:22:24,510 Và vì vậy chúng tôi có thể nhấp vào bất kỳ một trong những có được một spec cho nó, 373 00:22:24,510 --> 00:22:28,090 mà bạn sẽ có thể tìm thấy cho bất kỳ API, và ý tưởng là 374 00:22:28,090 --> 00:22:33,920 nó cho phép bạn biết, A, cụ thể những gì để yêu cầu từ API và làm thế nào để yêu cầu nó. 375 00:22:33,920 --> 00:22:37,370 Nói cách khác, nếu tôi muốn tất cả các sự kiện xảy ra vào ngày mai 376 00:22:37,370 --> 00:22:42,550 sau đó tôi đã có rõ ràng là cung cấp cho nó ngày đó mà tôi muốn trong một định dạng nhất định, 377 00:22:42,550 --> 00:22:46,030 và B, nó sẽ cho tôi biết chính xác những gì nó sẽ cung cấp cho trở lại với tôi. 378 00:22:46,030 --> 00:22:48,590 Nó sẽ nói tôi sẽ trả lại cho bạn đối tượng JSON này, 379 00:22:48,590 --> 00:22:50,960 hay như bạn có thể thấy, có định dạng khác nhau. 380 00:22:50,960 --> 00:22:54,050 >> Bạn cũng có thể trả lại dữ liệu như một file CSV, ví dụ. 381 00:22:54,050 --> 00:22:57,620 Nhưng bạn biết chính xác làm thế nào mà dữ liệu sẽ xem xét khi bạn nhận được nó trở lại 382 00:22:57,620 --> 00:23:00,610 để bạn có thể mong đợi để làm một số việc với nó. 383 00:23:00,610 --> 00:23:07,240 Chúng ta có thể di chuyển xuống và nhìn thấy, ví dụ, nếu chúng ta muốn truy vấn API 384 00:23:07,240 --> 00:23:11,500 để có được một lịch, sau đó chúng ta có thể sử dụng URL cụ thể 385 00:23:11,500 --> 00:23:16,480 và cung cấp cho nó các tham số nhất định đang có được những dữ liệu mà chúng tôi muốn chính xác. 386 00:23:16,480 --> 00:23:19,540 Và tương tự như vậy, nếu chúng ta muốn dữ liệu trở lại trong một định dạng nhất định, 387 00:23:19,540 --> 00:23:23,790 sau đó chúng ta có thể yêu cầu để sản xuất các dữ liệu trong một file CSV, 388 00:23:23,790 --> 00:23:27,700 và đó là chỉ là một tham số mà ta đang đi qua để các API. 389 00:23:27,700 --> 00:23:29,210 Rất nhiều những thứ mát mẻ để làm ở đó. 390 00:23:29,210 --> 00:23:32,550 Tôi chắc chắn sẽ khuyên bạn nên kiểm tra ra các API CS50. 391 00:23:32,550 --> 00:23:36,000 >> Tôi sẽ nhìn vào API này Thực phẩm Harvard đặc biệt cho một ít. 392 00:23:36,000 --> 00:23:39,870 Một điều tôi đã thực sự được thiết kế là trang web này Harvard đề cử, 393 00:23:39,870 --> 00:23:44,930 trong đó sử dụng các API Thực phẩm CS50 để lấy menu HUDS trong ngày. 394 00:23:44,930 --> 00:23:50,400 Và cho những người học mở rộng, HUDS là dịch vụ ăn uống tại Đại học Harvard. 395 00:23:50,400 --> 00:23:55,130 Những gì bạn nhận được là trang này có chứa tất cả các bữa ăn trong ngày, do đó, chúng ta thấy bữa ăn trưa. 396 00:23:55,130 --> 00:23:58,130 Chúng tôi có một vài loại khác nhau. Chúng tôi có trạm đậu và ngũ cốc nguyên hạt. 397 00:23:58,130 --> 00:24:00,340 Chúng tôi có các trạm gạo nâu. 398 00:24:00,340 --> 00:24:03,360 Chúng ta có thể thấy cho bưa ăn chúng tôi có những mặt hàng thực phẩm. 399 00:24:03,360 --> 00:24:07,030 Nếu chúng ta bấm vào chúng, sau đó chúng tôi nhận được thông tin dinh dưỡng. 400 00:24:07,030 --> 00:24:12,240 Bạn thấy đây là những thông tin dinh dưỡng cho bưởi, trong trường hợp bạn đang tự hỏi. 401 00:24:12,240 --> 00:24:14,870 Và như vậy một lần nữa, chúng ta sẽ để nhìn vào kết thúc trở lại đây một chút 402 00:24:14,870 --> 00:24:18,530 và nhìn thấy chính xác những gì đang làm để có được dữ liệu này. 403 00:24:18,530 --> 00:24:21,710 Và nó quay ra không thực sự thể rất phức tạp ở tất cả. 404 00:24:21,710 --> 00:24:28,720 Tập tin này có vẻ lộn xộn một chút, nhưng hãy nhớ rằng điều này là xử lý toàn bộ trang web, 405 00:24:28,720 --> 00:24:34,130 và nếu tôi di chuyển xuống chúng ta thấy chức năng này thay đổi dữ liệu. 406 00:24:34,130 --> 00:24:36,630 >> Bây giờ, chỉ để được rõ ràng, điều này được viết ở CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 mà là một ngôn ngữ mà có thể bạn chưa từng thấy trước đây. 408 00:24:39,570 --> 00:24:44,810 Nhưng nó đẹp, có thể đọc được, vì vậy tôi sẽ đi qua nó như thể đó là giả. 409 00:24:44,810 --> 00:24:49,080 Thay đổi ngày là một chức năng mà sẽ mất giá trị này ngày, 410 00:24:49,080 --> 00:24:51,740 và nó cũng sẽ mất trong một đầu tiên, mà chúng tôi không quan tâm về càng nhiều. 411 00:24:51,740 --> 00:24:54,110 Nhưng điều quan trọng là nó có ngày này, 412 00:24:54,110 --> 00:25:00,080 và ngày đó là ngày mà chúng tôi muốn yêu cầu tất cả các mặt hàng thực phẩm. 413 00:25:00,080 --> 00:25:04,030 Và sau đó bạn nhìn thấy chúng ta có một chút của cú pháp ở đây, 414 00:25:04,030 --> 00:25:09,000 mà về cơ bản phân tích ngày đó sang một định dạng có thể đọc được. 415 00:25:09,000 --> 00:25:11,920 Nói cách khác, API đòi hỏi ngày trong một định dạng nhất định. 416 00:25:11,920 --> 00:25:17,390 Bạn không thể chỉ nói ngày 16 tháng 11 năm 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Nó sẽ không biết phải làm gì với điều đó. Nó muốn ngày trong một định dạng cụ thể. 418 00:25:20,320 --> 00:25:23,230 Tất cả chúng tôi đang làm ở đây là cho nó chính xác định dạng đó, 419 00:25:23,230 --> 00:25:26,520 đó là một giá trị năm và sau đó dấu gạch nối, một giá trị tháng, 420 00:25:26,520 --> 00:25:29,420 một dấu gạch ngang và giá trị ngày. 421 00:25:29,420 --> 00:25:34,910 Và chúng tôi cũng nói rằng chúng tôi muốn các dữ liệu được sản xuất trong JSON. 422 00:25:34,910 --> 00:25:37,560 >> Bây giờ chúng tôi đang thực hiện yêu cầu này AJAX, và như tôi đã đề cập trước đó, 423 00:25:37,560 --> 00:25:41,680 jQuery có siêu chức năng AJAX hữu ích mà tất cả các bạn cần làm là xác định 424 00:25:41,680 --> 00:25:45,780 một vài thông số ở đây, và nó sẽ cho bạn trở lại chính xác những gì bạn muốn. 425 00:25:45,780 --> 00:25:50,490 Chúng tôi đang nói với nó rằng URL chúng tôi muốn nó để đi đến này CS50 Thực phẩm API, 426 00:25:50,490 --> 00:25:52,270 mà chúng tôi nhận được từ spec. 427 00:25:52,270 --> 00:25:56,730 Chúng tôi nói rằng chúng tôi muốn các dữ liệu trong JSON và 428 00:25:56,730 --> 00:25:59,490 chúng ta sẽ để cho nó dữ liệu này mà chúng tôi đã xác định ở đây. 429 00:25:59,490 --> 00:26:02,670 Đây là ngày mà chúng tôi muốn các mặt hàng thực phẩm. 430 00:26:02,670 --> 00:26:07,790 Và sau đó tất cả chúng ta phải làm là xác định một số loại chức năng thành công, 431 00:26:07,790 --> 00:26:11,980 đó là cơ bản những gì sẽ xảy ra khi API trả về dữ liệu đó. 432 00:26:11,980 --> 00:26:15,490 Nói cách khác, chúng tôi đã đóng gói tất cả các thông số mà chúng ta muốn, 433 00:26:15,490 --> 00:26:20,530 trong trường hợp này là ngày mà chúng ta muốn và thực tế mà chúng tôi muốn nó trong JSON, 434 00:26:20,530 --> 00:26:23,840 và chúng tôi đã gửi nó đi để các API, vì vậy bây giờ các API được nói, được chứ, 435 00:26:23,840 --> 00:26:26,350 ở đây là dữ liệu của bạn, tôi nhận lại cho bạn. 436 00:26:26,350 --> 00:26:29,930 Chúng tôi có chức năng thành công, có nghĩa là cho rằng API 437 00:26:29,930 --> 00:26:32,230 thành công trả về một số dữ liệu, chúng ta phải làm gì với nó? 438 00:26:32,230 --> 00:26:35,980 >> Và nó chỉ ra rằng tất cả những gì chúng ta làm là gọi menu này cập nhật chức năng 439 00:26:35,980 --> 00:26:42,680 với bất cứ điều gì các API đã quay trở lại, vì vậy chúng tôi có thể tìm kiếm cho rằng 440 00:26:42,680 --> 00:26:47,970 và thấy rằng tất cả những gì chúng ta đang làm là sử dụng một loạt các cú pháp mới đây 441 00:26:47,970 --> 00:26:52,220 để cập nhật các HTML và chèn dữ liệu mới. 442 00:26:52,220 --> 00:26:56,580 Điều này cho phép chúng ta có những mũi tên ở hai bên, và chúng tôi có thể bấm vào, 443 00:26:56,580 --> 00:27:01,060 và bây giờ chúng tôi đang tìm kiếm các dữ liệu cho ngày hôm sau và một lần nữa cho ngày hôm sau, 444 00:27:01,060 --> 00:27:04,820 và mỗi lần nó cập nhật giá trị đó ngày và truy vấn API, 445 00:27:04,820 --> 00:27:07,510 nhận được trở lại một số dữ liệu và đặt nó vào trang web. 446 00:27:07,510 --> 00:27:10,590 Một lần nữa, bạn có thể thấy, siêu, siêu hữu ích. 447 00:27:10,590 --> 00:27:14,410 Ứng dụng này đã cho tôi một vài giờ để hack với nhau, 448 00:27:14,410 --> 00:27:20,140 và tôi có kinh nghiệm hơn một chút, rõ ràng, nhưng CS50 dự án cuối cùng của bạn 449 00:27:20,140 --> 00:27:22,870 có thể tìm một cái gì đó rất nhiều như thế này. 450 00:27:22,870 --> 00:27:29,540 >> API là siêu mạnh mẽ cho những nỗ lực mà họ có. 451 00:27:29,540 --> 00:27:32,800 Điều cuối cùng tôi sẽ đi qua một API vài cách rộng rãi hơn. 452 00:27:32,800 --> 00:27:35,480 Tôi sẽ không có được như xa vào chúng như xa như những gì họ làm cụ thể, 453 00:27:35,480 --> 00:27:38,740 nhưng tôi sẽ cung cấp cho bạn một ý tưởng về những gì trên mạng. 454 00:27:38,740 --> 00:27:42,700 2 thực sự hữu ích, nếu bạn đang quan tâm đến việc phân tích dữ liệu hoặc trực quan 455 00:27:42,700 --> 00:27:45,960 hoặc bất cứ điều gì như thế, là Freebase và Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia có lẽ là tất cả các bạn biết là một bách khoa toàn thư trực tuyến miễn phí, 457 00:27:49,800 --> 00:27:53,230 và nó thực sự có một API, vì vậy nếu bạn muốn, ví dụ, 458 00:27:53,230 --> 00:27:56,250 nhận được tất cả các văn bản và các bài viết cho bạch tuộc 459 00:27:56,250 --> 00:27:58,030 bạn có thể dễ dàng làm điều đó. 460 00:27:58,030 --> 00:28:02,300 Chỉ cần nói hey, Wikipedia API, tôi muốn dữ liệu trả về như thế này, 461 00:28:02,300 --> 00:28:07,010 và tôi muốn nó ở định dạng này, và bài viết tôi muốn là bạch tuộc, 462 00:28:07,010 --> 00:28:09,820 và rất nhanh chóng nó sẽ cung cấp cho bạn trở lại thông tin đó. 463 00:28:09,820 --> 00:28:12,230 Điều đó có thể thực sự hữu ích nếu bạn muốn làm cho một số loại của trang web 464 00:28:12,230 --> 00:28:16,200 đó là một người xem tốt hơn cho Wikipedia hoặc một cái gì đó như thế. 465 00:28:16,200 --> 00:28:21,350 >> Freebase là loại tương tự, mặc dù nó là một chút khó khăn hơn như xa như API. 466 00:28:21,350 --> 00:28:24,390 Freebase là như Wikipedia ở chỗ nó là một bách khoa toàn thư trực tuyến 467 00:28:24,390 --> 00:28:29,050 trong đó có rất nhiều và rất nhiều dữ liệu khác nhau về tất cả các loại chủ đề khác nhau, 468 00:28:29,050 --> 00:28:33,150 nhưng nó được lưu trữ trong một cơ sở dữ liệu quan hệ, đó là hơi khác nhau từ Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia có và các bài viết liên quan đến các bài viết khác, 470 00:28:36,410 --> 00:28:38,860 nhưng đối với hầu hết các phần, nếu bạn muốn dữ liệu cho bạch tuộc, 471 00:28:38,860 --> 00:28:41,990 bạn đi đến bài viết bạch tuộc, nhận được rằng dữ liệu, và bạn có một loạt các văn bản 472 00:28:41,990 --> 00:28:43,830 về con bạch tuộc, vì vậy đó là tuyệt vời. 473 00:28:43,830 --> 00:28:46,870 Freebase hoạt động một cách hơi phức tạp hơn trong đó 474 00:28:46,870 --> 00:28:48,930 tất cả mọi thứ liên quan đến nhau. 475 00:28:48,930 --> 00:28:52,620 Nói cách khác, nếu chúng ta đang tìm kiếm con bạch tuộc 476 00:28:52,620 --> 00:28:54,940 sau đó nó có một loạt các loại liên kết với nó. 477 00:28:54,940 --> 00:28:57,920 >> Ví dụ, nó là một động vật, nó sống dưới nước, 478 00:28:57,920 --> 00:28:59,710 nó có một nhiệt độ cơ thể nhất định. 479 00:28:59,710 --> 00:29:01,210 Tôi không biết. 480 00:29:01,210 --> 00:29:04,230 Và tất cả các loại này là các liên kết đến những nơi khác, nơi mà bạn có thể đi 481 00:29:04,230 --> 00:29:06,640 nhìn thấy mọi thứ với cùng một thể loại. 482 00:29:06,640 --> 00:29:13,450 Nói cách khác, các thiết lập bạch tuộc dữ liệu sẽ chứa một liên kết đến các dữ liệu thiết lập cho tất cả các loài động vật, 483 00:29:13,450 --> 00:29:16,790 và đó sẽ cho phép tôi di chuyển xung quanh trong cơ sở dữ liệu thực sự nhanh chóng. 484 00:29:16,790 --> 00:29:21,740 Điều này có thể rất hữu ích nếu bạn đang làm một cái gì đó giống như so sánh. 485 00:29:21,740 --> 00:29:24,490 Nói cách khác, một điều gì đó, bạn muốn xem 486 00:29:24,490 --> 00:29:27,890 những gì khác nó liên quan và xem những gì khác không liên quan đến. 487 00:29:27,890 --> 00:29:30,700 Đó là loại điều. Nó có thể hữu ích trong một số cách. 488 00:29:30,700 --> 00:29:34,250 Nếu bạn đang tìm kiếm một thách thức để có thể làm một số điều phức tạp hơn 489 00:29:34,250 --> 00:29:38,740 Tôi sẽ xem xét lấy một cái nhìn tại các API Freebase. 490 00:29:38,740 --> 00:29:44,670 Nhưng phần lớn, Wikipedia là một nơi rất đơn giản để đi như xa như nhận được thông tin. 491 00:29:44,670 --> 00:29:48,340 Một nơi khác mà tôi sẽ xem xét là Last.fm, và tôi thực sự sẽ đi vào trang web 492 00:29:48,340 --> 00:29:53,800 trong trường hợp một số người không quen thuộc, nhưng Last.fm về cơ bản là một nhạc 493 00:29:53,800 --> 00:29:57,220 thị hiếu và trang web khuyến nghị. 494 00:29:57,220 --> 00:29:59,000 Bạn có thể tạo một tài khoản. 495 00:29:59,000 --> 00:30:04,250 Bạn có thể bắt đầu tải nhạc từ máy nghe nhạc của bạn 496 00:30:04,250 --> 00:30:08,020 các trang web, và về cơ bản nó sẽ bắt đầu cung cấp cho bạn các khuyến nghị âm nhạc 497 00:30:08,020 --> 00:30:10,030 dựa trên những gì bạn nghe. 498 00:30:10,030 --> 00:30:14,270 >> Ví dụ, nếu bạn đi đến hồ sơ của bạn trang này là của tôi 499 00:30:14,270 --> 00:30:18,180 bạn có thể thấy bạn có một danh sách gần đây nghe bài hát. 500 00:30:18,180 --> 00:30:22,550 Bạn có thể thấy tổng thể các nghệ sĩ yêu thích, tất cả các loại điều đó, 501 00:30:22,550 --> 00:30:25,280 và một lần nữa, có một API lớn đằng sau Last.fm, 502 00:30:25,280 --> 00:30:29,360  và bạn có thể sử dụng nó để làm rất nhiều và rất nhiều những điều thực sự mát mẻ. 503 00:30:29,360 --> 00:30:38,870 Ví dụ, tôi sẽ đi đến một trang của người bạn có Last.fm Công cụ website này. 504 00:30:38,870 --> 00:30:42,380 Điều này thực sự là một nền tảng được xây dựng trên các API Last.fm, 505 00:30:42,380 --> 00:30:45,420 và nó có một số những điều khá thú vị. 506 00:30:45,420 --> 00:30:50,260 Nếu tôi đăng nhập với tên người dùng của tôi, ví dụ, 507 00:30:50,260 --> 00:30:53,110 Tôi có thể yêu cầu nó để tạo ra một đám mây từ khóa, ví dụ, 508 00:30:53,110 --> 00:30:56,480 và những gì sẽ làm cho tôi trở lại một hình ảnh của 509 00:30:56,480 --> 00:30:59,850 tất cả các thể loại khác nhau và sắp xếp của điều mà tôi muốn nghe. 510 00:30:59,850 --> 00:31:01,410 Thế nào là nó làm điều này? 511 00:31:01,410 --> 00:31:05,670 Về cơ bản nó nói với các API Last.fm đây là người dùng này. 512 00:31:05,670 --> 00:31:10,710 Tôi muốn biết thể loại của mỗi bài hát mà họ đã bao giờ nghe, 513 00:31:10,710 --> 00:31:15,130 và bạn có thể làm điều đó bằng cách làm cho một cuộc gọi AJAX khá đơn giản API Last.fm. 514 00:31:15,130 --> 00:31:18,990 Bạn sẽ nhận được một danh sách lớn, và sau đó rõ ràng là một số công cụ khác đang được thực hiện 515 00:31:18,990 --> 00:31:22,280 để biến nó thành từ một đám mây, nhưng bạn có thể thấy tổng thể 516 00:31:22,280 --> 00:31:25,850 nó rất dễ dàng để truy cập và rất dễ dàng để sử dụng. 517 00:31:25,850 --> 00:31:30,750 Thực sự tốt đẹp cho một số điều. 518 00:31:30,750 --> 00:31:35,940 >> Tôi nghĩ rằng đó là về tất cả những gì tôi sẽ nói tổng thể. 519 00:31:35,940 --> 00:31:39,040 Một điều cuối cùng tôi sẽ đề cập về các API nói chung là 520 00:31:39,040 --> 00:31:41,840 đôi khi bạn sẽ chạy vào một cái gì đó được gọi là giới hạn tốc độ, 521 00:31:41,840 --> 00:31:44,940 và ý tưởng giới hạn tốc độ là bạn không muốn lạm dụng các API. 522 00:31:44,940 --> 00:31:48,130 Nói cách khác, nó thực sự tốt đẹp mà rất nhiều các trang web có các API 523 00:31:48,130 --> 00:31:51,070 mà bạn có thể đi đến và sử dụng miễn phí. 524 00:31:51,070 --> 00:31:54,460 Tuy nhiên, nếu bạn đang làm cho hàng triệu hoặc hàng tỷ yêu cầu mỗi ngày, 525 00:31:54,460 --> 00:31:57,610 ví dụ, nếu bạn đang mắc kẹt trong một vòng lặp vô hạn vô hạn truy vấn 526 00:31:57,610 --> 00:32:00,680 một số loại API và nhận được trở lại một lượng lớn dữ liệu, 527 00:32:00,680 --> 00:32:04,570 rõ ràng đó là không tốt, vì vậy những gì rất nhiều các API làm là có này tính năng giới hạn tốc độ 528 00:32:04,570 --> 00:32:09,970 nói rằng bạn chỉ có thể làm cho 1.000 yêu cầu mỗi ngày cho mỗi địa chỉ IP hoặc một cái gì đó như thế. 529 00:32:09,970 --> 00:32:12,540 Và nếu bạn đang làm rất nhiều thử nghiệm và sắp xếp của điều, 530 00:32:12,540 --> 00:32:14,890 đôi khi bạn sẽ chạy vào đó, và đột nhiên nó sẽ đóng bạn 531 00:32:14,890 --> 00:32:18,280 và nói không, tôi không cung cấp cho bạn thêm dữ liệu bất kỳ. 532 00:32:18,280 --> 00:32:20,000 >> Những gì bạn muốn làm là chơi theo luật. 533 00:32:20,000 --> 00:32:22,950 Bạn muốn chắc chắn rằng bạn đọc spec API cẩn thận. 534 00:32:22,950 --> 00:32:26,330 Nếu nó có quy tắc nhất định gắn liền với nó, giống như bạn chỉ có thể thực hiện truy vấn X mỗi ngày 535 00:32:26,330 --> 00:32:30,000 hoặc bạn chỉ có thể truy cập vào một phần của cơ sở dữ liệu một số lần nhất định 536 00:32:30,000 --> 00:32:32,900 hoặc một cái gì đó giống như là bạn muốn làm cho chắc chắn rằng bạn dính vào đó. 537 00:32:32,900 --> 00:32:38,360 Miễn là bạn chơi trong những quy tắc có thể bạn sẽ có một thời gian thực sự tốt đẹp bằng cách sử dụng các API. 538 00:32:38,360 --> 00:32:42,030 Takeaway tổng thể của bạn là API là thực sự, thực sự hữu ích. 539 00:32:42,030 --> 00:32:45,610 >> Có một API cho hầu như bất kỳ dịch vụ web lớn ra khỏi đó. 540 00:32:45,610 --> 00:32:50,700 Khá nhiều bất kỳ một phần của Công cụ Google Suite, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, tất cả những điều có các API. 542 00:32:54,390 --> 00:32:58,280 Bạn có thể sử dụng chúng để get cả dữ liệu từ máy chủ và gửi dữ liệu đến máy chủ. 543 00:32:58,280 --> 00:33:00,870 Nói cách khác, nếu bạn muốn làm cho một ứng dụng lịch có thể cập nhật 544 00:33:00,870 --> 00:33:04,190 Google Calendar của một ai đó, có một API cho điều đó. 545 00:33:04,190 --> 00:33:07,810 Nếu bạn muốn làm một cái gì đó sẽ cho bạn biết nơi 546 00:33:07,810 --> 00:33:12,530 vị trí của một địa chỉ nhất định là bạn có thể sử dụng Google Maps API cho điều đó. 547 00:33:12,530 --> 00:33:15,860 API là fantastically hữu ích, và họ đang ở khắp mọi nơi. 548 00:33:15,860 --> 00:33:18,700 Nếu bạn đang quan tâm đến một số loại ý tưởng, 549 00:33:18,700 --> 00:33:22,170 đó có thể là một API liên quan mà bạn có thể sử dụng để có được rất nhiều dữ liệu 550 00:33:22,170 --> 00:33:25,060 rất nhanh chóng và rất đơn giản. 551 00:33:25,060 --> 00:33:28,140 >> Nếu bạn vẫn đang tìm kiếm cho một dự án hoặc nếu bạn chỉ muốn chơi xung quanh 552 00:33:28,140 --> 00:33:31,820 với một cái gì đó nói chung, các API chắc chắn đáng làm. 553 00:33:31,820 --> 00:33:37,200 Cảm ơn, và tôi hạnh phúc để trả lời bất kỳ câu hỏi mà bạn có thể có. 554 00:33:37,200 --> 00:33:44,900 Được rồi, cảm ơn rất nhiều. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]