패스트 캠퍼스에서 수강하는 데이터 엔지니어링 강의 내용의 정리본이다.
Part2-1 Spotfiy API
목차
- Step 1. Spotify App 생성 및 토큰 발급
- Step 2. Python Request package
- Step 3. API를 통해 데이터 요청
- Step 4. Status Code
- Step 5. Error Handling
Step 1. Spotify App 생성 및 토큰 발급
API를 사용해 Resource를 얻기 위해서는 Authorization 과정을 통해 Access_token ( API Key )를 발급 받아야 한다. 우리가 수행할 과정은 아래와 같다.
첫째로는 client_id 와 client_secrect을 발급받아야 한다.
https://developer.spotify.com/dashboard/applications
위 링크로 들어가 dashborad에 계정을 생성하여 ID, Password를 발급 받으면 된다.
발급 받은 이후엔 Spotify가 요구하는 방식으로 access_token을 이용해 데이터들을 얻어오면 된다. 상세 부분은 뒤에서 다루도록 하자.
Step 2. Python Request package
파이썬을 사용하는 경우 API를 이용할 때, 해당 요청에 특화된 라이브러리인 requests library를 사용해야한다.
https://requests.readthedocs.io/en/master/
해당 라이브러리에 관한 다큐멘테이션이다.
가장 많이 사용되는 함수로는 아래와 같다.
-
GET : 해당 리소스를 조회하고 정보를 가져오기/데이터 받아오기( 가장 많이 쓰임 ) e.g. requests.get(url, params, headers, ..)
-
HEAD : GET 방식과 동일하난 응답코드와 HEAD만 가져옴 API 작동여부 확인에 사용
-
POST : 요청된 리소스를 생성 requests.post(url, data = data, headers= headers)
-
PUT : 요청된 리소스를 업데이트(갱신)
-
DELETE : 요청된 리소스를 삭제
Step 3. API를 통해 데이터 요청
우선 search sesource를 얻어볼 건데, request parameter 중 Authorization 이 필요하다. 위에서 얻은 정보들을 바탕으로 access_token을 얻어내는 함수를 구현해보자.
spotify에서 제공하는 guide에서 위와 같이 진행하라고 나와있다.
1 |
|
1 |
|
이제 access_token도 얻었으니 API를 이용해 정보를 얻어보자.
SEARCH resource에선 q, type은 필수 파라미터이다. 해당 파라미터와 get 함수를 이용해 데이터를 얻어보자
1 |
|
1 |
|
이런식으로 API를 이용해 본인이 원하는 정보를 얻어낼 수 있다.
Step 4. Status Code
status code는 API를 이용하여 데이터를 request 했을 경우 수행 결과 상태를 나타내는 방식이다.
- 200 : 요청이 성공적인 경우
- 401 : 토큰이 만료가 되었거나 잘 못 입력된 경우
- 429 : 지정된 요청 용량보다 많은 양이 요청되었을 경우 시간 제한을 두는 상태
Step 5. Error Handling
status code가 401, 429인 경우 어떻게 핸들링해야 할지 알아보자. 401 코드에는 토큰이 만료되었기 때문에 재발급 받는 처리를 해주고, 429는 제한된 시간동안 잠시 멈췄다가 다시 요청하는 처리를 해주자
1 |
|