APIリクエストの基本構造

Python で学ぶ API 入門

Chris Ramakers

Engineering Manager

URLとは?

  • URL = Uniform Resource Locator(統一資源位置)
  • APIリソースの構造化されたアドレス
  • 特定のAPIリソースに合わせてURLを調整
http://350.5th-ave.com/unit/243
Python で学ぶ API 入門

URLを分解する

URLの各部を示す図: Protocol (http://), Domain (350.5th-ave.com), Port (:80), Path (/unit/243), Query (?floor=77)。

  • Protocol = 通信手段
  • Domain = ビルの住所
  • Port = 入り口(ゲート/ドア)
  • Path = ビル内の特定の部屋
  • Query = 追加指示
Python で学ぶ API 入門

requestsでクエリパラメータを追加

# クエリパラメータをURL文字列に付与
response = requests.get('http://350.5th-ave.com/unit/243?floor=77&elevator=True')
print(response.url)
http://350.5th-ave.com/unit/243?floor=77&elevator=True
  • クエリはparams引数で追加
# 辞書を作成
query_params = {'floor': 77, 'elevator': True}
# `params`引数で辞書を渡す
response = requests.get('http://350.5th-ave.com/unit/243', params=query_params)
print(response.url)
http://350.5th-ave.com/unit/243?floor=77&elevator=True
Python で学ぶ API 入門

HTTP動詞

  • 宛先: 350 5th Ave のオフィス ユニット243
  • URL: http://350.5th-ave.com/unit/243

アクション

動詞 操作 説明
GET 読み取り 郵便受けの中身を確認
POST 作成 新しい荷物を投函
PUT 更新 すべてを新しい荷物に置換
DELETE 削除 郵便受けを空にする
1 HTTP動詞は全9種あるが、シンプルなREST APIではこの4つが中心
Python で学ぶ API 入門

POST と PUT でデータ送信

# GET = リソースを取得
response = requests.get('http://350.5th-ave.com/unit/243')

# POST = リソースを作成 response = requests.post('http://350.5th-ave.com/unit/243', data={"key": "value"}) # PUT = 既存リソースを更新 response = requests.put('http://350.5th-ave.com/unit/243', data={"key": "value"})
# DELETE = リソースを削除 response = requests.delete('http://350.5th-ave.com/unit/243')
  • 各動詞はrequestsパッケージの専用メソッドを持つ
  • POST/PUTにデータを渡すにはdata引数を使用
Python で学ぶ API 入門

Passons à la pratique !

Python で学ぶ API 入門

Preparing Video For Download...