마무리

Python으로 배우는 API 입문

Chris Ramakers

Engineering Manager

API 기초

  • API의 역할
  • API 유형
  • URL 구성 요소
  • 요청/응답 구조
  • HTTP 동사

Python으로 배우는 API 입문

Python으로 API 사용

Requests 패키지

import requests

HTTP 메서드

# 리소스 조회
requests.get('https://api.my-music.com')
# 리소스 생성
requests.post('https://api.my-music.com', data={...})
# 리소스 수정
requests.put('https://api.my-music.com', data={...})
# 리소스 삭제
requests.delete('https://api.my-music.com')

URL 매개변수

query_params = {'artist': 'Deep Purple'}
requests.get('http://api.my-music.com', params=query_params)

헤더

headers = {'accept': 'application/json'}
response = requests.get('http://api.my-music.com', headers=headers)
print(response.headers.get('content-type'))

상태 코드

response = requests.get('http://api.my-music.com')
print(response.status_code)
Python으로 배우는 API 입문

고급 주제

  • 인증
    • 기본 인증
      headers = {'Authorization':'Basic am9obkBleGF...'}
      
    • API 키/토큰 인증
      headers = {'Authorization': 'Bearer faaa1c9f4...'}
      
  • 구조화된 데이터
    • JSON 형식 데이터 요청
      requests.get('https://api.my-music.com', headers={'accept': 'application/json'})
      
    • JSON 형식 데이터 전송
      playlists = [{"Name":"My favorite songs"}, {"Name":"Road Trip"}]
      requests.post('https://api.my-music.com/playlists/', json=playlists)
      
Python으로 배우는 API 입문

오류 처리

  • 오류 유형
    • 연결 오류
    • HTTP 오류
      • 4XX 클라이언트 오류
      • 5XX 서버 오류
  • 상태 코드로 처리
    • response.status_code
  • 예외로 처리
    • raise_for_error()
import requests
from requests.exceptions import ConnectionError, HTTPError

try:
    response = requests.get("http://api.music-catalog.com/albums") 
    response.raise_for_status()

except ConnectionError as conn_err: 
    print(f'Connection Error! {conn_err}.')

except HTTPError as http_err:
    print(f'HTTP error occurred: {http_err}')
Python으로 배우는 API 입문

축하합니다!

Python으로 배우는 API 입문

Preparing Video For Download...