まとめ

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...