Part2_API 란

패스트 캠퍼스에서 수강하는 데이터 엔지니어링 강의 내용의 정리본이다.

Part2_API 란

목차

  • Step 1. API(Application Programming Interface)
  • Step 2. Authorization
  • Step 3. Spotify Web API
  • Step 4. Endpoints & Methods
  • Step 5. Parameters

Step 1. API(Application Programming Interface)

정의 : 두 개의 프로그램이 서로 상호작용하기 위한 인터페이스(매개체)

역할 : 프로그램이 명령할 수 있게 명령 목록을 정리하고, 명령을 받으면 응용프로그램과 상호작용하여 명령에 대한 값을 반환

  • 서버와 데이터베이스에 대한 출입구 역할 : 허용된 사람에게 접근성을 부여

  • 애플리케이션과 기기가 원활하게 통신(데이터를 주고 받을 수 있도록)할 수 있도록 함

  • API는 모든 접속을 표준화 : 범용 플러그처럼 작동하여 기계/운영체제 등 상관없이 누구나 동일한 엑세스를 얻을 수 있음

E.g. 웹사이트는 HTTP(S) 프로토콜을 사용하는 REST API 기반으로 구축

Step 2. Authorization

Authentication :

Identity(허용된 사용자)가 맞다는 증명 즉, API를 요청한 사용자에 대한 권환을 확인 및 증명

Authorization :

Authentication을 거친 후 API를 통한 어떠한 특정 명령을 허용하나 경우에 따라 어떠한 명령에 대해서는 authorization을 허용하지 않을 수 있음

API 필수요소 : 시큐리티 x 100

  • DELETE 리퀘스트를 통해서 다른 이용자의 정보를 지울 수 있음
  • 제 3자에게 데이터 유출
  • 누가, 얼마나, 어느 정보를 가져가는지 API를 통해 트래킹 할 수 없음

접근 방법

  1. API Key : 보통 request URL 혹은 Request 헤더에 포함되는 긴 스트링으로 유저가 api에 접근권한이 있는지 확인하기 위한 key 값

    e.g. RnJlZDpteXBhc3N3b3Jk

  2. Basic Auth : username,password를 합쳐서 base64로 인코딩하여 request header안에 포함시킴

    e.g. Base64 encoding : Binary Data를 Text로 바꾸는 Encoding

  3. OAuth 2.0 : 특정 앱을 사용하기 위해 중간 앱을 통해 api를 요청과 반응을 받는것으로 요새 가장 많이 쓰여지는 방법

    e.g. 어떤 앱을 facebook을 통해 login 했을 경우, 해당 정보를 가져가는걸 수락

Step 3. Spotify Web API

우리가 프로젝트에 주로 사용하게될 Spotify API 이다. https://developer.spotify.com/documentation/general/guides/authorization-guide/

Step 4. Endpoints & Methods

image

위 화면은 우리가 Spotify API를 이용하여 Artist에 관한 데이터를 불러오기 위해 필요한 정보들이다.

Resource : API 를 통해 리턴되는 정보들

우리가 가져올 Artist가 일종의 resource 이며 하나의 resource 안에는 여러개의 Endpoints가 존재한다

Endpoints : Resource를 엑세스하는 경로/방법

artist, album, tracks 등 해당 정보를 가져오기 위해서는 그에 상응하는 endpoint를 사용해야 한다.

Method : resource를 접근하는데 허용된 행위로 일종의 함수로 이해하면 된다.

image

image

campaigns이라는 리소스에서 GET이라는 METHOD를 이용하여 해당 Endpoint 에서 정보를 가져오는 형식이다.

Step 5. Parameters

API’s Parameters : endpoint를 통해 request 할 때 같이 전달되는 옵션들

image

e.g.

curl -X GET “https://api.spotify.com/v1/artists/43ZHCT0cAZBISjO8DG9PnE/top-tracks?country=SE” -H “Authorization: Bearer {your access token}”