( 참고 : “FastCampus, 데이터 엔지니어링 올인원” )

[ Data Engineering ]

Introduction to Spotify Project


1. Goal

Web API를 통해서, Spotify로부터 데이터를 받아온다!

  • 사용자 정보 (X)
  • 곡/앨범/가수 등의 정보 (O)


2. Concepts

Rate Limiting

  • 시간 당 가져올 수 있는 데이터를 제한

  • 앱 마다 다른 권한


Status Code

  • 정보 요청을 했을 때, 반환되는 상태

    ( 뒤에서 더 자세히 다룰 예정 )


3. Resource

Spotify로부터 아래와 같은 데이터들을 받아올 수 있다.

figure2

이와 같이 받게되는 다양한 데이터 종류들을 (Album, Artists, Browse등) “resource”라고 부른다.

( 즉, Resource는 API를 통해 우리가 받게되는 정보로써, 하나의 Resource 안에는 여러 개의 Endpoint 들이 존재한다 )

ex) Multiple Artists 데이터를 가져오고 싶은 경우

figure2

  • 오른쪽과 같이 json 형식으로 데이터를 받을 수 있다


4. Endpoints & Methods

Endpoint란?

하나의 Resource 안에는 여러 개의 Endpoint 들이 존재!

ex) Artists에는 여러개의 endpoint가 존재

figure2

  • (resource 1) artists의 endpoint로는…
    • (endpoint 1) id
    • (endpoint 2) albums
    • (endpoint 3) top-tracks ….


즉, Endpoint를 resource를 접근하는 일종의 경로/방법이다. 그리고, 그 안에 있는 “method”는, 해당 데이터에 접근하여 할 수 있는 action(행위)라고 생각하면 된다.

figure2


Method의 종류

  • GET : 조회 & 정보 가져오기

  • HEAD : (GET과 동일하나) 응답 코드 & HEAD만을 가져옴

  • POST : 생성

  • PUT : 업데이트

  • DELETE : 삭제


Example

GET https://api.spotify.com/v1/artists/{id}
  • {id}란에 받고자 하는 artists의 id를 입력해주면된다

    이 {id}를 path parameter라고 한다.


5. Parameters

“ENDPOINT를 통해 request 시, 같이 전달하게 되는 옵션들”

  1. Header : 일반적으로 Authorization와 관련된 부분

  2. Path : Query String(?) 이전에 Endpoint Path 안에 포함되는 변수

  • ex) {id}
  1. Query String : Query String(?) 이후에포함되는Parameters
  • ex) ?utm_source=facebook&utm_campaign=summer_sales
  1. Request Body : Request Body 안에 포함되는 Parameters로, 주로 JSON 형태이다

figure2


6. Process

우선, 원하는 데이터를 받기 위해…

Step 1) Client ID와 Secret Key를 받은 뒤, Spotify에 요청을 한다.

Step 2) Spotify는 우리에게 Access Token을 발급해준다.

  • 이 Access Token은 3600초면 만료된다. 1시간 마다 재발급 받아줘야한다.

Step 3) 이 Access Token을 다시 Spotify Web API에 줌으로써 원하는 데이터를 ( JSON 형태 ) 받아낸다.

사진8