エラー処理

Python で学ぶ API 入門

Chris Ramakers

Engineering Manager

エラーステータスコード

4xx クライアントエラー


  • クライアント側の問題を示す
  • 例: 不正なリクエスト、認証失敗 など

対処: リクエストを修正

5xx サーバーエラー


  • サーバー側の問題で発生
  • 例: 過負荷、設定ミス、内部エラー

対処: API 管理者が修正

Python で学ぶ API 入門

エラーステータスコード:例

4xx クライアントエラー


  • 401 Unauthorized - 要求リソースの認証情報が無効
  • 404 Not Found - 要求されたリソースが見つからない
  • 429 Too Many Requests - 一定時間内のリクエスト過多

5xx サーバーエラー


  • 500 Internal Server Error - 予期しない問題で応答不可
  • 502 Bad Gateway - 応答に必要な別サーバーへ到達できない
  • 504 Gateway Timeout - ゲートウェイ先からの応答がタイムアウト
Python で学ぶ API 入門

エラーの処理

API エラー

import requests

url = 'http://api.music-catalog.com/albums'

r = requests.get(url)

if r.status_code >= 400: # おっと、問題が発生
else: # 正常です。レスポンスを処理 # していきます

接続エラー

import requests

from requests.exceptions import ConnectionError
url = ''
try: r = requests.get(url) print(r.status_code)
except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.') print(error)
Python で学ぶ API 入門

raise_for_status()

import requests

# 1: requests ライブラリの例外をインポート from requests.exceptions import ConnectionError, HTTPError
try:
r = requests.get("http://api.music-catalog.com/albums")
# 2: エラーステータスコードで例外を発生させる r.raise_for_status()
print(r.status_code)
# 3: 接続エラーを捕捉 except ConnectionError as conn_err: print(f'Connection Error! {conn_err}.')
# 4: API サーバーからのエラーレスポンスを捕捉 except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')
Python で学ぶ API 入門

Let's practice!

Python で学ぶ API 入門

Preparing Video For Download...