1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [세미나] [API에 프로그래머의 소개] 2 00:00:02,480 --> 00:00:04,059 [빌리 Janitsch] [하버드 대학교 (Harvard University)] [토미 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 즉, API가 데이터베이스를 질의 할 때, 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, 또는 자바 스크립트 객체 표기법이되는 것입니다. 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 즉, JSON 번호는 4. 38 00:01:59,530 --> 00:02:01,030 >> JSON은 무엇 정확하게인가? 39 00:02:01,030 --> 00:02:03,030 나는 자바 스크립트 객체 표기법을했을 때. 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 당신은 CS50에 조금 살펴 봤는데 배열과 hashmaps, 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 우리는이 키 isAwesome입니다 hashmap의 다른 요소를 참조 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 사람들은 JSON 2 속성이며, 우리는 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 당신은 자바 스크립트 조금 배운되는데,이 좋은 방법입니다 102 00:05:49,290 --> 00:05:53,710 웹 사이트에서 HTML과 CSS를 조작합니다. 103 00:05:53,710 --> 00:05:57,190 그러나, 가지 일반 자바 스크립트에서 코드 통증이 될 수 있습니다 104 00:05:57,190 --> 00:05:59,810 자바 스크립트는 정말 자세한 언어입니다 크게 때문입니다. 105 00:05:59,810 --> 00:06:03,020 당신은 구문을 많이 배워야하고, 단지 매우 간단한 작업을 할 수 106 00:06:03,020 --> 00:06:07,590 이 코드를 많이 걸립니다, 그래서 jQuery를 자바 스크립트에 대한 라이브러리입니다. 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 그것은 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 일반 자바 스크립트에서 줄을 미친 번호를 데려 갈 꺼야 반면 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 우리가 제니퍼를 비교하면 우리는 또한, 예를 들어, 그래서, 토마스 비교 할 수 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 나는 크롬의 개발자 도구를 사용하여 할거야, 그리고 그로 이동합니다 180 00:10:30,200 --> 00:10:35,160 당신은 제어, 이동, J, 그리고 자바 스크립트 콘솔로 이동을 수행 할 수 있습니다. 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 1000000의 아웃, 그래서 우리는이 결과를 다시지고있어. 196 00:11:35,810 --> 00:11:40,280 우리가이 작은 결과 헤더가 지 정확히 JSON 아닙니다 197 00:11:40,280 --> 00:11:45,630 여기에 전체 개체를 단지 큰 JSON의 BLOB입니다 만 뜬다. 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 축 값으로 X 축 값을 매핑된다. 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 이것은 웹 응용 프로그램의 상호 작용을 모두 취급있어 큰 자바 스크립트 파일입니다 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 하지만 인 않는 사실, 이미 이러고 할거야, 그 좋은-is 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 축 값에 X 축 값의 매핑을 싶습니다. 240 00:14:27,740 --> 00:14:30,730 그래서 그의이 할을 말하고 무엇을 241 00:14:30,730 --> 00:14:35,020 우리는이 값을 포함이 검색 제한 배열을 갖추고 있습니다. 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 우리는 페이스 북에 의지거야. 265 00:15:56,510 --> 00:15:59,440 페이스 북의 API는, 페이스 북 그래프라고합니다 266 00:15:59,440 --> 00:16:04,390 기본적으로 그 '가 무슨 뜻인지는 페이스 북이 거대한 데이터베이스로 자체를 볼 수 있습니다 267 00:16:04,390 --> 00:16:08,000 모든 서로 일정한 관계를 가지고 다른 부분이 많이의. 268 00:16:08,000 --> 00:16:11,070 즉, 나는 페이스 북에있는 사용자입니다, 그래서 프로필 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가 있습니다. 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 >> 우리는 예를 들어, 데이비드 Malan에 같은 일을 수행 할 수 있습니다. 286 00:17:10,849 --> 00:17:13,599 나는 그의 이름이 dmalan라고 생각합니다. 287 00:17:13,599 --> 00:17:16,369 우리는 데이비드 Malan은 고유 한 ID가 있습니다 참조하십시오. 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 자, 내가 데이비드 Malan 페이스 북에 좋아는지에 관심있어 말한다. 293 00:17:33,060 --> 00:17:36,860 I는 / 좋아하는 작업을 수행 할 수 있습니다. 이제 우리는 문제가 발생했습니다. 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 당신은 페이스 북의 데이터베이스의 모든 단일 부분에 액세스 할 수 있다면 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를, 303 00:18:06,940 --> 00:18:09,840 특정 권한이 특정 작업을 할 수 있어야합니다. 304 00:18:09,840 --> 00:18:12,650 난 데이빗 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 지금이 문제를 해결하려면 페이스 북이 좋은 도구가 308 00:18:23,050 --> 00:18:27,690 이는 그래프 API 탐험가이며,이 아이디어는 니가 정렬 수있다 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 이 내 실제 페이스 북 좋아합니다. 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 각 같은은 독특한 ID가 있습니다. 325 00:19:31,240 --> 00:19:34,510 우리가 얻을 수있는 데이터의 여러 가지 모든 종류의가 있습니다 326 00:19:34,510 --> 00:19:37,980 그리고 당신은 CS50 최종 프로젝트에 대한 페이스 북의 API를 사용에 관심이있는 경우 327 00:19:37,980 --> 00:19:40,720 나 다른 뭔가 이건 사실 꽤 해 드리겠습니다 그렇게. 328 00:19:40,720 --> 00:19:44,260 기본적으로이 인증 문제를 해결할 방법을 페이스 북입니다 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 페이스 북 API 경우 매우 읽을 수 있습니다. 335 00:20:04,050 --> 00:20:06,670 전체 사양이 있어요. 336 00:20:06,670 --> 00:20:10,210 예를 들어,이 페이스 북 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 >> 당신이 만든 한 경우 페이스 북 앱과 앱은 특정 사용자가 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 당신이 페이스 북을 사용하려면 나는 매우 권장 당신 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 아이디어 전체, 페이스 북 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 당신이 알 수 있습니다, A, 구체적으로 어떤 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 >> I는 좀 특히이 하버드 식품 API를보고거야. 392 00:23:36,000 --> 00:23:39,870 실은 디자인 한 한가지,이 하버드 Noms 웹 사이트입니다 393 00:23:39,870 --> 00:23:44,930 어느 날의 HUDS 메뉴를 검색 할 CS50 식품 API를 사용합니다. 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 당신은 2012년 11월 16일 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 그리고 우리가해야 할 일은, 성공 기능의 일종의 정의 is 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 이 쓸모 사람, 당신은 데이터 분석 또는 시각화에 관심이있는 경우 455 00:27:42,700 --> 00:27:45,960 나 뭐 그런 게 마약을 제조 및 위키 백과 있습니다. 456 00:27:45,960 --> 00:27:49,800 위키 백과 - 아마 여러분 모두 알 잖아 -이 무료 온라인 백과 사전, 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 그냥 어이 말, 위키 백과 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 그 위키 백과 (Wikipedia) 또는 같은 더 나은 뷰어입니다. 465 00:28:16,200 --> 00:28:21,350 >> 그까지 API로 조금 더 힘들어하지만 마약을 제조는 유사한 일종의입니다. 466 00:28:21,350 --> 00:28:24,390 마약을 제조는 온라인 백과 사전 걸에 위키 백과 같다 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 위키 백과 (Wikipedia)는 다른 문서에 대한 링크는 기사와 기사가 있습니다 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 마약을 제조 점은 약간 더 복잡한 방식으로 작동 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 나는 마약을 제조 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 다시, Last.fm 뒤에 큰 API이있어 502 00:30:25,280 --> 00:30:29,360  당신은 많은과 정말 멋진 일을 많이 할 수도 있습니다. 503 00:30:29,360 --> 00:30:38,870 예를 들어,이 Last.fm 도구 웹 사이트를 가진 친구의 페이지로 이동합니다. 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 그리고 당신은 Last.fm API에 매우 간단한 AJAX 호출을하여하는 작업을 수행 할 수 있습니다. 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 즉,이 웹 사이트의 많은 API를 가지고 정말 다행이야 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 그 말은 당신이 오직 IP 주소 또는 그런 식으로 하루에 1000 요청을 할 수 있습니다 말합니다. 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 사양을 읽고 있는지 확인하고 싶습니다. 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 어스의 거의 모든 부분 541 00:32:50,700 --> 00:32:54,390 Gmail, Google 캘린더, 그런 것들을 모든 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 캘린더, 저를위한 API가 있습니다. 545 00:33:04,190 --> 00:33:07,810 당신이 어디로 말할거야 뭔가 의미있는 일을하고 싶다면 546 00:33:07,810 --> 00:33:12,530 특정 주소의 위치는 그 용 Google지도 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]