[Powered by Google Translate] [세미나] [API에 프로그래머의 소개] [빌리 Janitsch] [하버드 대학교 (Harvard University)] [토미 MacWilliam] [이 CS50 수 있습니다.] [CS50.TV] 안녕 모두, 난 빌리, 그리고 오늘은, API에 대한 얘기하게되는 거에요 또는 응용 프로그램 프로그래밍 인터페이스, 특히 CS50 최종 프로젝트의 컨텍스트와 그런 일 인치 일반적으로 어떤 API입니까? 광범위한 관점에서, 그것은 2 개를 허용하는 중간 남자의 일종 이죠 소프트웨어의 서로 통신합니다. 아주 광범위한 정의의 친절하고 우리가보고있는 것에 대해 그 관련되지 않습니다. 우리가 정말 원하는 것은 유용 중간 지상의 일종입니다 어딘가 데이터베이스의 일종의와 통신 할 수 있습니다. 다음은 차트, 그리고 기본적으로 아이디어는 그 우리는 응용 프로그램이며, 우리는 데이터베이스에서 데이터를 가져하려면 하지만 우리는 직접 데이터베이스를 쿼리 싶지 않아요. 대신 우리는 중간 사람, API의 종류를 통해 가고 싶어요. 뒤에 아이디어는 차트에서 숫자 2와 3 모두는 매우 복잡하고 혼란스러워 될 것이다. 즉, API가 데이터베이스를 질의 할 때, 아마도, SQL 테이블과 물건의 종류를 모두 사용 할거야 우리는, 전체 CS50에 대해 조금 배웠하지만, 한 만약, 여러분이 고통을 조금입니다 것으로 나타났습니다. 당신이하는거야 특히 때, 매우, 매우 복잡하고 혼란스러워 도착 복잡한 쿼리와 같은 걸. 우리가 정말 원하는 것은 유용하고 간단한 방법의 일종입니다 데이터를 받고, 그 차트에 숫자 1과 4 뒤에 생각합니다. 즉, 우리는 우리 것을 얻을 API를 말할 수있는 정말 간단한 방법을 원하는 다시 데이터를 얻을 수있는 정말 간단한 방법. 데이터는 일반적으로 보내고받을 것을 하나의 주 방법은 있습니다 JSON, 또는 자바 스크립트 객체 표기법이되는 것입니다. 그까지 당신이 API에 요청을 보낼 방법으로 조금 달라질 수 있습니다. 즉, 당신은 데이터의 일부 일정 금액을 원하는 경우, 어떻게 데이터가 조금 다를 수 있습니다 얻을 수있는 API 해주세요. 보통은 네트워크 요청의 일종을 포함한다. 즉, URL의 일종에 액세스하는 API을 말할 거에요 그 당신을 원해요,하지만 데이터는 거의 항상 다시 전송됩니다 정확히 즉, JSON 번호는 4. JSON은 무엇 정확하게인가? 나는 자바 스크립트 객체 표기법을했을 때. 이건 기본적으로 데이터를 송신 및 수신을위한 범용 표준입니다. 아이디어는 당신이 일 이러한 3 개의 카테고리가 있다는 것입니다. 당신은 배열, hashmaps 및 원형을 갖추고 있습니다. 당신은 CS50에 조금 살펴 봤는데 배열과 hashmaps, 하지만 정렬의 사람들이 어떤 매우 엄격한 의미가 나왔던 거예요. 즉, 배열 당신은 사람들이 바운드를 입력하고 알 그래서 당신은 전체 배열을 통해가는 종류의 종류가 있습니다. JSON은 그런 일이있는 더 많은 관대합니다. 기본적으로 아이디어는,이 객체를 생성합니다 어떤은 이러한 3 가지의 구성 할 수 있습니다 그 중 여러 사람으로 구성 할 수 있으며, 그들은 중첩 될 수 있습니다. JSON의 예에 여기의 종류, 이는, 여기에 중괄호가 hashmap을 대표입니다 그리고 hashmap는 기본적으로 키의 어떤 종류의에서 매핑입니다 가치의 일종합니다. 당신은, 우리는 속성 키를 것으로 볼 수 있습니다 그리고 그 배열에 매핑있어, 그이 일 것입니다. 우리는이 키 isAwesome입니다 hashmap의 다른 요소를 참조 어떤 다른 말로 진정한의 원시 값으로지도,, 부울입니다. 원시 문자열이 될 수 있습니다. 그들은 정수가 될 수 있습니다. 그들은 그런 짓 bools 될 수 있습니다. 그리고 당신은 속성 포인트가 2에서 문자열을 가지고 것을이 배열의 내용을 볼 자기 유사 좋아요. 사람들은 JSON 2 속성이며, 우리는 JSON은 대단이야. 이것 좀 봐 조금 더 가까이 내가 만드는거야 여기에 JSON의 좀 더 복잡한 예라고 할 수 있습니다. 의, 예를 들어, 배열 그냥 빈 배열을 시작하자. 하지만 그게 재미의 일종 이죠, 그래서 우리는 약간의 기름거야 내가 한 말대로, JSON의 배열은, 바인딩 유형입니다 그래서 우리는 또한, 안녕, 여기에 문자열을 가질 수 그리고 그 배열의 다른 요소입니다. 그리고 마찬가지로, 우리는 몇 가지 매핑을 갖게 돼, 여기에 hashmapping를 추가 할 수 있습니다. 이 이름과 문자열 빌리에 매핑을거야. 우리는 이름과 빌리에 매핑이 있으며, 우리는이 매핑을 파란색으로 좋아하는 색상입니다. 그래서 기본적으로 JSON의 좋은 예입니다. 이 가지에 - 이런, 그것의 다른 부분의이 - 모든 쉼표가 필요됩니다. 다시, 전혀 구속 입력하지거야, 그래서 당신은 모든 종류의 종류의 수 있습니다 아무 안에 당신이 원하는, 그리고 아이디어는 자기 비슷합니다. 즉, 바로 지금이 순간이 모든 일이되고, JSON 개체입니다, 그냥이되고, 그래서 당신은, 원시는 객체가 될 수 있습니다 배열은 객체이거나 hashmap는 개체 수. 당신이 보는 종류의 수 있듯이, JSON은 그렇게 다양한 야에 정말 정말 유용합니다. 당신은 당신이 JSON에 저장 잉태 할 수있는 가능한 모든 데이터를 가질 수 있습니다. 그 API를 사용하는 정말 좋은 언어를 만들어 그 그 정도는 상관없이 당신이 원하는 없다는 것을 어떤 데이터를 의미하기 때문에 JSON에서 다시 얻을 수있는 방법이있을거야. 이런 건에 대한 JSON은 특히 잘 수 있도록 몇 가지 속성. 당신이 볼 수 있듯이, 당신이 CS50에서 작업 된 것으로 많은 비교 또한 작성하기 매우 쉽게 읽을 수하고 비교적 매우 간단합니다. 당신이 원하는 경우 그 예에 짓 하듯이, 한번 들여 쓰기 할 수 있습니다 이는 당신이 정말 잘 볼 수있는 좋은 아주 버전을 제공합니다. 그러나 또한, 컴퓨터에 대한 읽기 및 쓰기도 쉬운 거예요. 즉, 그것은, 인코딩 구문 분석 할 간단하고 쉽게 하는, 이건까지 관련되어있는 데이터를 읽는 것처럼 매우 빠른 것 의미 그리고 JSON은 정말 신속하게 생성 할 수 있습니다. 이것은 다른 JSON의 부품 및 그런 일에 액세스 할 매우 간단합니다. 그거 잘 됐군, 게다가, 그 자체와 유사하다는 것, 즉, 당신은 JSON에서 JSON에서 JSON을 가질 수 있다는 사실 데이터를 저장하는 정말 좋은 것입니다. API를 사용하여 작업에 일반적으로 정말 유용한 또 다른 부분은 jQuery를합니다. 당신은 자바 스크립트 조금 배운되는데,이 좋은 방법입니다 웹 사이트에서 HTML과 CSS를 조작합니다. 그러나, 가지 일반 자바 스크립트에서 코드 통증이 될 수 있습니다 자바 스크립트는 정말 자세한 언어입니다 크게 때문입니다. 당신은 구문을 많이 배워야하고, 단지 매우 간단한 작업을 할 수 이 코드를 많이 걸립니다, 그래서 jQuery를 자바 스크립트에 대한 라이브러리입니다. 즉, 당신이로드 할 수있는 자바 스크립트 파일입니다 다음 작업을 할 jQuery를 기능을 사용합니다. 그리고 jQuery를 기본적으로 생활이 편해질 수 있습니다. 그것은 jQuery를에 몇 줄에 자바 스크립트의 행 수백을 떠나는 지 단순화합니다. 이 때문에 일반적으로 API를 사용하는 경우는 특히 유용합니다 당신이 API를 액세스됩니다 어떻게하면, AJAX 요청을하는 것입니다 그리고 다윗이 강의에서 언급 된 것으로 판단되는 AJAX 요청 당신은 서버의 어떤 종류의에 네트워크 요청을 할 때 일반적으로 아르 및 데이터의 일종을 돌려 받고 즉시 페이지를 업데이트하는 중입니다. 일반 자바 스크립트에서 줄을 미친 번호를 데려 갈 꺼야 반면 헤더를 모두 확인하고 그런 거의 모든 작업을 수행하려면, jQuery를이 AJAX라는 정말 간단한 기능을 가지고 및 AJAX에서해야 할 모든, 당신이 API를 제공 할 매개 변수를 주면 API의 위치와 구성 할 옵션을 추가 졌어요. 그것은 이런 종류의 정말, 정말 멋진 매우 유용합니다. 우리가 API에 우리의 손이 더러워지고 시작하는 데 필요한 모든입니다. 나는 몇 가지 예를 표시하고 다른 속성을 탐색 할거야 그리고 왜 그들은 다양한 종류의 것을 유용하고 있습니다. 나는 실제로 당신을 보여 드리죠 먼저 내가하고있는 일입니다 내 연구 실험실에서 끝난다는 건 Ngram 뷰어입니다 기본적으로 Ngram 뷰어의 아이디어는 단어의 어떤을 검색 할 수 있습니다 또는 구문하고 시간이 지남에 텍스트의 특정 집합에 출연 빈도를 확인하시기 바랍니다. 여기이 예제는 아기의 데이터 집합입니다 그은 1920 년과 2000 사이에 뉴욕에서 태어났습니다. 우리는 이름 제니퍼에 대한 예를 들어, 검색 할 수 있습니다 우리는, 그것은 정말로 그렇게 많이 사용하지 사전에 1960 년대 것을 볼 그리고 우리는 더 많은 사용되어 버리는거야 만년에 들어가 있습니다. 우리가 제니퍼를 비교하면 우리는 또한, 예를 들어, 그래서, 토마스 비교 할 수 우리는, 토마스 역사에 걸쳐 상당히 유행했습니다 볼 수 있습니다 제니퍼 반면 최근의 이름입니다. 우리는 그런 류의 작업을 수행 할 수 있습니다. 이 방법 응용 프로그램을 작동합니까? 기본적으로 API를 통해 작동합니다. 즉, 우리가 여기 특정 매개 변수가 있습니다. 우리는, 우리가 실제로 검색하고있는 일의 매개 변수가 , 그이 이름들, 그리고 우리는 몇 가지 다른 속성이 Y 축과 X 축처럼. 당신은 매우으로 우리는 몇 가지 옵션이 있습니다 볼 수 있습니다 시간 사용할 수있는 해상도와 그런 일. 우리는, 우리가 실제로 데이터베이스에서 원하는 데이터로 이러한 옵션을 사용할 수 있습니다 우리는 다시 몇 가지 유용한 방법으로 데이터를 얻을 싶어요. 우리가 데이터베이스를 질의 한 경우 수행 할 수있는 고통의 일반적으로 직접 정렬 것 아기 이름에 대한 아마이 데이터는 어디에 선가 어떤 데이터베이스에 살고 있기 때문에 그리고 그것은 정말 수동으로 쿼리 할 필요가 복잡 할 것 데이터가 반환 정확하게 결정할 수 있습니다. 즉, 우리는이 경우에 제니퍼와 토마스에 관심 우리는 단지 특정 축과 물건의 종류의 모든에 대해 관심을 가졌어요. 우리가 어떻게이 문제를 해결합니까? 조금 더이 API에 파 당신에게이 플랫폼의 또 다른 예를 보여 드리죠 이는 약간 다른 데이터 세트를 사용합니다. 이 데이터 세트는 대신 아기 이름이 되​​고자, 그냥 실제로 전체입니다 열기 라이브러리의 게시 데이터베이스를 인쇄 이는 지난 100 정도 년에 걸쳐 출판 텍스트의 거대한 원천입니다. 아이디어는 우리가 수백만의 텍스트 수백만의 compository을 가지고 있습니다 우리는 이제 인치 다른 단어와 구문을 검색 할 수있는 여기 조금 다르게 앞의 예에서 다릅니다 예 내 말은, 우리가이 3 검색어가 인 당신을 보여 전쟁, 전쟁, 그리고 전투 준비, 전쟁에 대한 프랑스의 단어입니다. 그리고 우리는 전체 데이터베이스의 3 가지 섹션 내에서 검색하고 있습니다. 즉, 첫 번째 쿼리에서 우리는, 미국에서 검색하는 만 영국에서 두 번째하며, 프랑스에서 출판 작품에서 세 번째 인치 우리는 몇 가지 흥미로운 패턴이 등장 참조하십시오. 예를 들어, 바로 여기서 볼 수있는 - 죄송합니다, 제가 축에게 조금 엉망이 있지만, 여기 바로이 범위에서 볼 수 있습니다 남북 전쟁 주위에 미국의 판에 큰 스파이크가 있어요 하지만 그런 큰 다른 두 스파이크, 그게 분명히 이유 미국의 남북 전쟁은 시점에서 발생했다. 우리는 거기에 몇 가지 멋진 물건을 볼 수 있습니다 하지만 우리가 걱정하는 것은 우리가이 데이터를 가지고하는 방법입니다. 조금이 앱에서 무대 뒤에서 당신을 데려됩니다. 정교한 속임수는 사이트와 가지와 협력하고 있는지 알고 싶은 무대 뒤에서 무슨 일이 일어나고 있는지, 당신은 개발자 도구를 열 수 있습니다. 나는 크롬의 개발자 도구를 사용하여 할거야, 그리고 그로 이동합니다 당신은 제어, 이동, J, 그리고 자바 스크립트 콘솔로 이동을 수행 할 수 있습니다. 여기에 몇 가지 탭이 있습니다. 그들은 모두 다른 상황에서 매우 유용 할 수 있습니다,하지만 네트워크에 대한 관심 탭 지금, 나는 실제로 작업을 새로 고침해야합니다. 아, 죄송합니다. 그것은 임의의 예를 제공하기도한다. 좋아, 대신에 다음이 예제를 사용합니다. 아이디어는,이 API는 여기에있다입니다 그리고 당신은 API가 반환 정확히 확인할 수 있습니다. 이 응용 프로그램은 해당 요청을 보낸 것으로 API에서 무엇으로 돌아 가지입니다. 내가 조금 확대하자, 우리는 기본적으로 그냥 JSON에서 키 값 쌍 일련의입니다 볼 수 있습니다. 즉, 우리는 값을 매핑있어 여기에 hashmap을 갖추고 있습니다. 즉,이 값으로 매핑 년있어. 1765 년 우리가 처음에 검색 어떤 단어를 90 번 사용됩니다 1000000의 아웃, 그래서 우리는이 결과를 다시지고있어. 우리가이 작은 결과 헤더가 지 정확히 JSON 아닙니다 여기에 전체 개체를 단지 큰 JSON의 BLOB입니다 만 뜬다. 우리는이 모든 요소를​​ 포함하고 여기에 배열을 가지고 당신은 전체 요소가 끝나는 것을 볼 수 있으며, 다음에 우리가 또 다른 큰 요소가 그 끝까지 쭉가는, 그 여기에 종료됩니다. 우리는 그 2 개체와 아주 큰 배열을 가지고 그리고 그 객체의 각 hashmap입니다. 당신은 우리가 매핑이있는 hashmaps 각에서 볼 수 있습니다 이 인덱스 0 값과 다른 hashmap이 값의 가치, 다시 Y 축 값으로 X 축 값을 매핑된다. 당신은 JSON은 전체 복잡 조금 하긴하지만 볼 수 있습니다 사실은 아주 유용, 그것은에 비해 접근하는 것은 매우 간단합니다 표기법의 다른 다양한 형태. 까지 우리가 실제로 얻을 API로 데이터를 보내는 것과, 나는 조금 뒤쪽으로 갈거야. 이것은 웹 응용 프로그램의 상호 작용을 모두 취급있어 큰 자바 스크립트 파일입니다 그래서 우리는이 가장 관심 없지만, 우리는 몇 가지에 대해 관리 작업을 수행. 예를 들어, 우리는이 buildQuery 기능에 관심 이 함수의 아이디어는, 그 페이지에 주위를 찾고있어 기본적으로 사용자가 즉, 쿼리 싶은 일을 이해 해봐요 그들은 입력에게 그들의 검색 조건을 해봤어요 확인란을 선택, 다른 Y하고 선택하고 그런 일을 모두 한 X 축 값을 확인, 그리고 내가 다음 API하러 보낼 수이 쿼리 값을 뱉어거야. 이 복잡​​한 모양, 그리고 그것은 매우 복잡 하지만 인 않는 사실, 이미 이러고 할거야, 그 좋은-is 제가 정확히 쿼리 값을 인쇄 할 콘솔을 가져다 드리죠 것입니다 이 API로가는 보내고 있다고. 바로이 사실입니다. 죄송합니다, 많은 것을 출력합니다. 그러나 바로 여기, 우리가 걱정하는 무슨 개체입니다. 이 쿼리 개체입니다. 즉,이 웹 응용 프로그램이 API에 파견 정확히 무슨 그래서가 조금 안을 살펴 보자, 우리는 우리가 여기서 몇 가지 값을 참조하십시오. 우리는 만 단어 당 사건입니다, 우리가이 카운트 형식을 가지고 그게 바로 우리가 여기에 Y 축에서 선택한 정확히 것입니다. 그 어디에서 그입니다. 우리는 특정 데이터베이스가 있다는 것을 의미 데이터베이스 값을 가지고 이 데이터는에 살고 있으며, 우리는 구체적으로 그 데이터에 액세스 할 로 예를 들어 아기 이름 데이터에 반대. 그런 다음,이 그룹 가치가 우리가 아닌 연도 별 검색하고자하는 말을하는 다른 X 축 값입니다. 그럼 우리가 할 수있는 방법을 가지고, 일부 API는 여러 일을집니다. 즉,이 API는 다른 종류의 데이터를 반환 할 수 있습니다 하지만이 경우에, 우리는 Y 축 값에 X 축 값의 매핑을 싶습니다. 그래서 그의이 할을 말하고 무엇을 우리는이 값을 포함이 검색 제한 배열을 갖추고 있습니다. 첫 번째는 우리가 알 수있다되는데,이 값의 모든 것입니다 상단에있는 첫 번째 작은 상자 안에 포함되어 있습니다. 즉, 우리는 단어 전투에 대한보고 싶어요, 우리는 그것을 필터링 할 미국 문학에서 영어 텍스트로. 우리는 미국이이 나라를 수 있습니다. 우리는 영어입니다 언어를 가지고, 그래서 우리는 이러한 다른 부분을 모두 가지고 그게 다 우리가 원하는 정확히 API를 말하고 있습니다. 우리는 우리가 돌​​아 가면되는 데이터가 아직 건지 모르겠어요 하지만 우리는 데이터가 특정 양식을 데려 갈 것을 알고있다. 이 예는 복잡한 측면에 정렬입니다 당신은 반드시, API에게이 복잡한을 사용하지 않을 그러나 이것은 당신에게 API는 할 수있는 일의 범위 및 전력을 보여줍니다. 즉, 비교적 간단한 쿼리 시스템 사용 우리는 기본적으로 입력 상자가 다른 곳에서 몇 가지 다른 선택자와. 날 여기로 돌려 축소 보자. 우리는 몇 가지 다른 메타 데이터 선택과 입력 상자가 우리는 Y 축과 X 축 선택합니다. 우리는 실제로 많은 분야가 없습니다 우리는 우리가 API 일종의을 검색 할 수 아주 쉽게 볼 수 있습니다 그리고, 다시 데이터를 얻을 후이 차트에 그 파일을 넣습니다 이는 다음 유용한 방법에 표시 할 것이다. 당신들에게 조금 더 친숙 할 수 있다는 점 또 다른 예를보고 우리는 페이스 북에 의지거야. 페이스 북의 API는, 페이스 북 그래프라고합니다 기본적으로 그 '가 무슨 뜻인지는 페이스 북이 거대한 데이터베이스로 자체를 볼 수 있습니다 모든 서로 일정한 관계를 가지고 다른 부분이 많이의. 즉, 나는 페이스 북에있는 사용자입니다, 그래서 프로필 그리고, 특정 친구를 가지고 있고, 그 중 각 객실에는 프로필이 내 친구의 각은에 다른 의견을 가진 벽을 가지고 그리고 그 댓글의 각 좋아하는 그런 일을 모두 갖추고 있습니다. Facebook에 다른 부분이 많이 있어요. , 그것은 상당히 복잡한 API이고, 당신이로 할 수있는 톤이 하지만 사용하기 꽤 간단합니다. 나는 graph.facebook.com / billyjanitsch로 이동에 의해 시작 할거야 이는 내 고유 계정 이름 및 계정 이름 중 하나가 될 것입니다 단어의 어떤 종류의 당신은을 선택한 경우, 또는 그냥 숫자의 문자열 일 수 있습니다. 우리가 다시는 매우 기본적인 정보입니다. 우리는 내가, 빌리 Janitsch있는 마지막 이름입니다 이름을하신 것으로 알고 있습니다. 내가 갖고있는 고유의 페이스 북 ID가 있습니다. 당신은 내가 남자하다고 볼 수 있으며 내 언어 설정을 가지고 있습니다 영국 영어. 즉, 우린 아주 기본 정보를 볼 수 있습니다. 그것은 너무 많은 건 아니지만, 우리가가 무엇인지를 제공 않습니다. 우리는 예를 들어, 데이비드 Malan에 같은 일을 수행 할 수 있습니다. 나는 그의 이름이 dmalan라고 생각합니다. 우리는 데이비드 Malan은 고유 한 ID가 있습니다 참조하십시오. 그는 이름, 이름, 중간 이름, 성이 있습니다. 우리는 또한 그가 남자 야와 미국 영어 자신의 언어 세트를 가지고 참조하십시오. 즉, 우리는 꽤 기본 정보를 볼 수 있습니다. 우리가 다른 것을 확인하려고하면 이제 어떻게됩니까? 자, 내가 데이비드 Malan 페이스 북에 좋아는지에 관심있어 말한다. I는 / 좋아하는 작업을 수행 할 수 있습니다. 이제 우리는 문제가 발생했습니다. 우리는 액세스 토큰을 말합니다 오류 같은게있어 이 자료를 요청해야합니다. 당신이 생각하면 이상 할 거 같거든요 그러나, 그 말이되는 당신은 페이스 북의 데이터베이스의 모든 단일 부분에 액세스 할 수 있다면 단순한 API의 일종에서, 그렇죠? 즉, 아마도 귀하의 정보를 원하는 사용자가 액세스 할 수 없습니다. 이 오류는 무슨 뜻인지 정확하게이다. 일부 API는 자신의 데이터에 액세스하려면 특정 권한을 필요로합니다. 페이스 북 같은 그리고 더 많은 고급 API를, 특정 권한이 특정 작업을 할 수 있어야합니다. 난 데이빗 Malan 대해 기본 정보를 볼 수 있습니다. 그 사람이 남자라고, 그는 미국에 살고있는 것을 알 수 있습니다 그렇지만 지난 아무것도 볼 수 없습니다. 지금이 문제를 해결하려면 페이스 북이 좋은 도구가 이는 그래프 API 탐험가이며,이 아이디어는 니가 정렬 수있다 자신의 계정에 따라 자신에 대한 권한을 구성 그리고 구체적으로 귀하의 계정이 볼 수없는 것을 볼 수 있습니다. 예를 들어, 말을하면 graph.facebook.com/billyjanitsch/likes- 이런, 난 여기에 내 토큰을 재확인해야한다고 생각합니다. 좋아요. 그걸 다시 할 경우, 지금은 내가 다시이 개체를 얻을 좋은 참조 어떤 내가 카테고리 게임과 장난감에 수영장 국수를 좋아하는 말합니다. 나는 카테고리 동물에 바다 코끼리를 좋아해. 이 내 실제 페이스 북 좋아합니다. 그들은 당황 좀하는 사이에요. 그러나 우리는이 데이터가 모든 JSON에 표시됩니다 볼 수 있습니다. 꽤 읽을 수 있습니다. 즉, 우리는 배열의 일종의 데이터의 매핑이 이 배열의 각 요소는 매핑 hashmap입니다 같은 이름과 같은 카테고리입니다. 각 같은은 독특한 ID가 있습니다. 우리가 얻을 수있는 데이터의 여러 가지 모든 종류의가 있습니다 그리고 당신은 CS50 최종 프로젝트에 대한 페이스 북의 API를 사용에 관심이있는 경우 나 다른 뭔가 이건 사실 꽤 해 드리겠습니다 그렇게. 기본적으로이 인증 문제를 해결할 방법을 페이스 북입니다 OAuth를 호출 시스템, 또는 열기 인증을 사용 그리고 OAuth를하거나 다른 유형 왜냐하면 지금 그 싸움에 말려 들고 싶지 않 인증의 서로 다른 API를 사이에 많은 변화를하는 경향이 그래서, 각각을 살펴 오랜 시간을 보낼 수 있다고 하지만 실제로 별다른 설명하고 있습니다. 이 Google 페이스 북 API 경우 매우 읽을 수 있습니다. 전체 사양이 있어요. 예를 들어,이 페이스 북 API에 대한 문서입니다 그리고 당신은 내가 사용자 페이지에있어 볼 수 있습니다, 그래서 모든 사물의 다양한 종류에 대해 배울 수 있습니다 까지 같은 데이터를 얻을 수 사용할 수있다 그리고 난에 액세스하기 위해 서로 다른 권한을 필요로하는. 우리가 본 바와 같이, 우리는 이름이나 성별에 액세스 할 수있는 권한이 필요하지 않습니다 하지만 그 뒷일은 우리가 대부분의 일에 대한 권한을 필요는 없어. 이 페이지는, 또는 오히려,이 웹 사이트는 어떻게 입수하는 방법을 알려줍니다 자신을 인증 할 수있는 토큰입니다. 대부분의 인증 시스템은 토큰의 일종을 사용하여 이 고유 값, 정말 긴 임의 문자열입니다를 얻을 곳 그 방법은 그들은 당신이 당신과 함께하고 있다는 요청을 연결할 수 있습니다. 즉, 그들은 당신이 자신의 데이터와 의심스러운 아무 짓도 안한다고 알리도록. 그들은 당신이지고있어 정확히 알아. 또한 해당 정보를 볼 수있는 권한이 필요함을 알고 있습니다. 당신이 만든 한 경우 페이스 북 앱과 앱은 특정 사용자가 그리고 그 사용자는 응용 프로그램이 자신의 프로필의 특정 부분에 액세스하려면 허용 그런 다음 어떤 API 키 또는 응용 프로그램에서 사용하는 토큰 해당 사용자의 데이터에 액세스 할 수 있습니다. 이 복잡​​한 소리 수 있지만, 너무 나쁘지 않아 당신이 페이스 북을 사용하려면 나는 매우 권장 당신 자신의 API와 장난 생각합니다. 아주 멋져요, 당신은 그것으로 다른 많은 작업을 수행 할 수 있습니다. 사용자가 당신에게 이러한 권한을 부여하는 경우도 API로 돌아갈 수 내가 실제로 사용자의 벽에 게시 할, 또는 저 사람들이 사진을 게시하고 싶지 말 뉴스 피드에 때때로 그 성가신 것들을 가져올 게 이유 죠 친구가 이상한 사이트 나 그 비슷한 어떤 종류의에서이 동영상을 감상 한 있다는데. 그 앱이 그 사람의 벽에 게시 할 액세스 권한이 부여 된 때문이다. 아이디어 전체, 페이스 북 API는 매우 복잡뿐만 아니라 정말 유용합니다. 물론 당신이 아직 최종 프로젝트를 찾고있는 경우 체크 아웃 가치. 제가 가서 할테니까 API의 또 다른 스위트 룸은 CS50 API를합니다. 내가 여기서 확대 봅시다. CS50는 실제로 API의 전체 시리즈를 만들었습니다 당신은 최종 프로젝트 또는 당신이하는거야 일에 대한 사용할 수 있습니다. 그리고, 대부분 하버드 관련하고 있으며, 그들은 HUDS 메뉴에서 다양 예를 들어,이 하버드 이벤트 API까지, 어떤이의 목록을 액세스 할 수 다른 하버드에서 일어나는 사건과 같은 걸. 그래서 우리는이 중 하나를 클릭하여에 대한 사양을 얻을 수 당신은 모든 API에 대해 찾을 수 있습니다, 그리고 아이디어입니다 당신이 알 수 있습니다, A, 구체적으로 어떤 API에서 요청하고 방법을 요청할 수 있습니다. 즉, 내일 일이 일어나고있는 모든 이벤트를 원하는 경우 그럼 내가 분명히 그것을 특정 형식으로 제가 원하는 날짜를 줘야 그리고 B, 그것이 나에게 다시 돌려주는거야 정확히 말해 것입니다. 내가 당신에게 JSON 개체를 반환하는거야 말할 것이다, 당신이 볼 수 또는 같은 여러 가지 형식이 있습니다. 당신은 또한 예를 들어, CSV로 데이터를 반환 할 수 있습니다. 하지만 그 데이터가 당신이 그것을 돌아 오면 꼴 정확히 알고 그래서 당신은 그것으로 어떤 일을 기대할 수 있습니다. 우리가 API를 쿼리하려는 경우 우리는 아래로 스크롤보고, 예를 들어 수 달력을 먹고 그 다음 우리는이 특정 URL을 사용할 수 있습니다 그리고 그것을 우리가 정확히 원하는 데이터가 될 것이다 특정 매개 변수를 제공합니다. 그리고 마찬가지로, 우리는 특정 형식으로 데이터를 원하는 경우, 그리고 우리는 CSV의 데이터를 출력하는 데 요청할 수 있습니다 그리고 우리가 API에 전달했다는 게 다른 매개 변수입니다. 거기에 할 좋은 점이 많이. 확실히 CS50 API를 체크 아웃하는 것이 좋습니다 것입니다. I는 좀 특히이 하버드 식품 API를보고거야. 실은 디자인 한 한가지,이 하버드 Noms 웹 사이트입니다 어느 날의 HUDS 메뉴를 검색 할 CS50 식품 API를 사용합니다. 그리고 확장 학교 사람들을 위해, HUDS이 하버드 식사 서비스입니다. 당신이 얻을 것은 우리가 점심을 참조 하루 식사 모두 포함이 페이지입니다. 우리는 몇 가지 카테고리가 있습니다. 우리는 콩과 전체 곡물 스테이션을 갖추고 있습니다. 우리는 현미 스테이션을 갖추고 있습니다. 우리는 이러한 몇 가지 음식이 있습니다 브런치에 볼 수 있습니다. 우리는 그들을 클릭하면 다음 우리는 영양 정보를 확인할 수 있습니다. 당신이 궁금해 한 경우에이, 자몽의 영양 정보입니다 참조하십시오. 그리고 다시, 우리는 여기서 조금 뒤쪽에 피어거야 이이 데이터를 얻을하고있다 정확히 참조하십시오. 그리고 실제로 전혀 매우 복잡한 수 없습니다 밝혀졌습니다. 이 파일은 좀 더러워 보이는,하지만 이번이 전체 웹 사이트를 처리 있다는 점에 유의 내가 아래로 스크롤하면 우리는이 변경 데이터 기능을 참조하십시오. 자, 명확하게하기 위해,이는 ​​CoffeeScript에 기록 아마 처음 보는 언어가되는 것입니다. 이 의사 인 것처럼하지만, 정말 읽을 수있는, 그러니까 제가 통과합니다. 변경 날짜는이 날짜 값에 걸릴 거예요 기능입니다 그리고 또한 우리가 많이 신경 쓰지 않는, 먼저 할 거예요. 하지만 중요한 것은, 이렇게 날짜를 가지고 있다는 사실이다 그 날짜는 우리가 식품 항목을 요청하고자하는 날입니다. 그리고 당신은 우리가 여기서 구문 약간을 가지고 이는 기본적으로 읽을 수있는 형식으로 해당 날짜의 구문을 분석하고 있습니다. 즉, API는 특정 형식으로 날짜를 필요로합니다. 당신은 2012년 11월 16일 AD 말을 할 수 없습니다. 그렇게해야 할 지 모를 것입니다. 그것은 특정 형식으로 날짜를하려고합니다. 우리가하는 일이 모두 정확히 그 형식을 제공하고 있습니다 이는 일년 값과 다음 하이픈, 한 달에 한 값입니다 또 다른 하이픈과 날짜 값입니다. 그리고 우리는 또한 우리가 데이터가 JSON에 출력되고 싶어요 말한다. 지금 우리는이 AJAX 요청을하는거야, 내가 앞서 언급 한 것처럼 jQuery를 당신이 무엇을 필요로하는 모든 사용자가 지정하는이 슈퍼 유용한 AJAX 기능이 몇 여기에 매개 변수, 그것은 다시 정확히 당신이 원하는 걸를 제공합니다. 우리는 우리가로 이동하려는 URL이 CS50 식품 API이라는 것을 얘기하는 거예요 있는 우리는 사양에서 가져온. 우리는 JSON과 그 데이터를 원하는 말 우리는 우리가 여기까지 정의이 데이터를 제공거야. 이것은 우리가에 대한 식품 원하는 날입니다. 그리고 우리가해야 할 일은, 성공 기능의 일종의 정의 is 이는 API는 데이터를 반환 할 때 어떤 일이 벌어지는 지 기본적으로 있습니다. 즉, 우리는 우리가 원하는 모든 매개 변수를 포장 한 이 경우에, 우리가 할 일 우리는 JSON에서 원하는 사실 이구요 우리는 그래서 지금 API는, 좋아, 말하고있는, API에 퇴장 여기에 데이터, 나는 당신을 위해 돌아 왔을 있습니다. 우리는 주어진 의미 성공 기능을 가지고있는 API 성공적으로 일부 데이터를 반환, 우리는 어떤 역할을합니까? 그리고 우리가 모두이 업데이트 메뉴 기능을 호출 것을 밝혀 API가 반환되었습니다 상관없이, 우리는 그를 검색 할 수 있습니다 그리고 우리가하는 모든 여기에 새로운 구문의 무리를 사용하는 것을 볼 HTML을 업데이트하고 새 데이터를 삽입합니다. 이게 허용하면, 우리는 양쪽에 화살표가 있습니다, 우리는 클릭 할 수 있습니다 지금 우리가 다음 날에 대한 데이터보고 다시 다음 날에, 각 시간은, 그 날짜 값을 업데이트하고 API를 쿼리 있어요 일부 데이터를 다시 받고 사이트에 그것을 넣어. 다시, 당신은 슈퍼, 슈퍼 유용를 볼 수 있습니다. 이 앱은 함께 해킹을 나에게 몇 시간이 걸렸다 나는 분명 좀 더 경험,하지만 CS50 최종 프로젝트가 많이 이런 일을 찾을 수 있습니다. API는 사람들이 수행하는 노력의 양에 대한 강력한 슈퍼됩니다. 나는 갈거야 마지막 것은 크게 몇 API를합니다. 나는, 지금까지 사람들이 구체적으로 무엇으로 그들에 멀리하지 않습니다 하지만 내가 저기가 무엇인지를 제공합니다. 이 쓸모 사람, 당신은 데이터 분석 또는 시각화에 관심이있는 경우 나 뭐 그런 게 마약을 제조 및 위키 백과 있습니다. 위키 백과 - 아마 여러분 모두 알 잖아 -이 무료 온라인 백과 사전, 그리고 실제로, 예를 들어, 당신이하고 싶다면 API가 있습니다 텍스트의 모든과 문어에 대한 기사를 당신은 매우 쉽게 그렇게 할 수 있습니다. 그냥 어이 말, 위키 백과 API는,이 같은 반환 데이터를 원하는 그리고,이 형식으로주세요, 내가 원하는이 기사는 문어입니다 매우 빨리 그 정보를 다시 제공 할 것입니다. 이 사이트의 일종의을하려면 그건 정말 유용 할 수 있습니다 그 위키 백과 (Wikipedia) 또는 같은 더 나은 뷰어입니다. 그까지 API로 조금 더 힘들어하지만 마약을 제조는 유사한 일종의입니다. 마약을 제조는 온라인 백과 사전 걸에 위키 백과 같다 이는, 많은 서로 다른 주제의 모든 종류에 대한 다양한 데이터를 많이 포함하고 그러나 그 위키 백과 (Wikipedia)에서 약간의 차이가 있습니다 관계형 데이터베이스에 저장되는 파일입니다. 위키 백과 (Wikipedia)는 다른 문서에 대한 링크는 기사와 기사가 있습니다 하지만 대부분의 경우는, 낙지의 데이터를 원하는 당신이 문어 기사로 이동 데이터를 얻을, 당신은 텍스트의 무리가 낙지에 대한 대단한 데요 그럼. 마약을 제조 점은 약간 더 복잡한 방식으로 작동 모든 것은 서로 관련되어 있습니다. 즉, 경우에 우리는 문어를 검색하는 다음은과 관련된 카테고리의 무리가 있습니다. 예를 들어,이 동물, 너무, 수중 살고 그것은 특정 체온이 있습니다. 모르겠어요. 그리고이 카테고리의 모든 당신이 가서 할 수있는 다른 장소에 대한 링크입니다 같은 카테고리로 일을 볼 수 있습니다. 즉, 문어 데이터 세트는 모든 동물에 설정 한 데이터에 대한 링크를 포함 것입니다 그게 나 한테 정말 빠르게 데이터베이스에 이동하게됩니다. 당신이 비교 같은 일을하는 경우 매우 유용 할 수 있습니다. 즉, 특정 일에 따라, 당신이보고 싶어 그것은 관련이 있고 관련이없는 다른 일을 참조하십시오. 다른 일을 하는지를 그런 일. 그것은 여러 가지 방법으로 유용 할 수 있습니다. 당신은 도전을 더 찾고 그리고 좀 더 복잡한 작업을 할 수 있도록하는 경우 나는 마약을 제조 API를 살펴 해보십시오 것입니다. 그러나 대부분, 위키 백과 (Wikipedia)는 지금까지 정보를 얻을로 이동 아주 간단 곳입니다. 나는 보겠습니다 또 다른 곳은 Last.fm이며, 사실 사이트에 갈거야 경우에 어떤 사람들은 익숙하지 않은,하지만 Last.fm은 기본적으로 음악 취향과 추천 웹 사이트. 당신은 계정을 만들 수 있습니다. 당신의 음악 플레이어에서 업로드 음악을 시작할 수 있습니다 웹 사이트에, 그리고 기본적으로 당신에게 음악 추천을주는 시작합니다 당신이 말을 무엇에 따라. 귀하의 프로필로 이동 예를 들어, 페이지이 내 꺼야 당신이 최근에 트랙을 듣고 일의 목록을 볼 수 있습니다. 당신은 전체 좋아하는 아티스트, 그런 일을 모두 볼 수 있습니다 다시, Last.fm 뒤에 큰 API이있어  당신은 많은과 정말 멋진 일을 많이 할 수도 있습니다. 예를 들어,이 Last.fm 도구 웹 사이트를 가진 친구의 페이지로 이동합니다. 이것은 실제로 Last.fm API 위에 세워 다른 플랫폼입니다 그리고 꽤 흥미로운 여러 가지를 않습니다. 예를 들어, 내 사용자 이름으로 로그인하면 나는 예를 들어, 태그 구름을 생성하는 데 요청할 수 있습니다 그리고하고 싶은 무슨 것은의 이미지를 돌려 주면 모든 다른 장르와 내가 듣고 좋아하는 그런 일. 어떻게 이런 짓을하는 거지? 아주 기본적으로 여기에서 Last.fm API에게 말하는거야하면이 사용자입니다. 나는 그들이 이제까지을 듣고 한 모든 노래의 장르를 알고 싶습니다 그리고 당신은 Last.fm API에 매우 간단한 AJAX 호출을하여하는 작업을 수행 할 수 있습니다. 당신은 분명히 다른 물건이 완료되고 다음 큰 목록을 다시 내고 단어 구름로 만들어,하지만 당신은 전체 볼 수 있습니다 이 접근하기가 매우 간편하고 사용이 매우 간단합니다. 가지 수에 대한 정말 좋은. 나는 전체 이야기 해주지 대한 모든 걸 생각합니다. 나는 일반적으로 API에 대한 언급됩니다 마지막으로 하나는입니다 당신은 때로는 속도가 제한라는 식으로 실행됩니다 그리고 속도가 제한 아이디어는 API를 남용하지 않으려는 것입니다. 즉,이 웹 사이트의 많은 API를 가지고 정말 다행이야 당신은에 가서 무료로 사용할 수 있습니다. 그러나 수백만 또는 하루에 요청 수십억를 진행 한 경우, 예를 들어, 당신은 영원히 질의있어 무한 루프에 갇혀 경우 일부 API의 종류와 데이터의 거대한 양을 다시 받고, 분명히 그건 좋은 게 아니라,이 속도를 기능을 제한 한 API를 많이 하죠가 무엇 때문에 그 말은 당신이 오직 IP 주소 또는 그런 식으로 하루에 1000 요청을 할 수 있습니다 말합니다. 그리고 테스트를 많이하고 그런 일을하는 경우, 그때 가끔으로 달려 가서 갑자기 당신을 차단합니다 어떠한 말을, 내가 당신에게 더 이상 데이터를 포기하지 않을거야. 당신이하길 원하는 것은 지켜야 할 규칙이 있습니다. 당신이주의 깊게 API 사양을 읽고 있는지 확인하고 싶습니다. 당신 같은 그것에 연결된 어떤 규칙을 가지고있는 경우에만 하루에 X 쿼리를 만들 수 있습니다 또는 당신은 단지 데이터베이스의 일부 시간의 특정 번호에 액세스 할 수 있습니다 또는 해당에 집중하고 있는지 확인하려고 그런 것 같아. 그 동안 당신이 그 규칙에서 노는 것을 당신은 아마 API를 사용하여 정말 좋은 시간을 알 수있을 겁니다. 귀하의 전체 테이크 아웃이 API는 정말 정말 유용합니다. API 거기서 거의 모든 큰 웹 서비스가 있습니다. 구글 도구 스위트 룸, Google지도, Google 어스의 거의 모든 부분 Gmail, Google 캘린더, 그런 것들을 모든 API를 갖추고 있습니다. 당신은 서버에서 둘 다 데이터를 사용하여 서버로 데이터를 보낼 수 있습니다. 당신은 캘린더 앱을하고자 할 경우 즉, 업데이트 할 수 다른 사람의 Google 캘린더, 저를위한 API가 있습니다. 당신이 어디로 말할거야 뭔가 의미있는 일을하고 싶다면 특정 주소의 위치는 그 용 Google지도 API를 사용할 수 있습니다. API는 환상적으로 유용하며, 사방에있어. 당신이 아이디어의 어떤 종류에 관심이 있다면, 당신은 많은 데이터를 얻을하는 데 사용할 수있는 관련 API는 아마도이 매우 신속하고 간단. 그래도 프로젝트 또는 경우 찾고 계신다면 당신은 주위에 놀고 싶어 일반적으로 뭔가, API는 확실히 해볼만 한 가치가 있습니다. 감사합니다, 나는 너희들이 수있는 모든 질문에 답변을 드리겠습니다. 좋아요, 많은 감사를드립니다. [CS50.TV]