API入門

Python で学ぶ API 入門

Chris Ramakers

Engineering Manager

APIとは?

  • Application Programming Interface(API)
  • 通信の規約と機能の集合
  • ソフトウェア同士のやり取りを可能にする

メールクライアントとメールサーバーがAPIで連携し、john@acme.com へ送信する図。

Python で学ぶ API 入門

Web API、クライアント、サーバー

  • Web APIはHTTPでインターネット越しに通信
  • クライアントがサーバーへリクエストを送信
  • サーバーがクライアントへレスポンスを返す

APIを介したクライアント-サーバー通信。リクエストとレスポンスが示された図。

  • リクエスト/レスポンスのサイクル
Python で学ぶ API 入門

Web APIの種類

  • SOAP
    • 厳格で形式的なAPI設計に特化
    • エンタープライズ向け
  • REST
    • シンプルさとスケーラビリティ重視
    • 最も一般的なAPIアーキテクチャ
  • GraphQL
    • 柔軟性重視
    • パフォーマンス最適化
1 https://www.postman.com/state-of-api/api-technologies/#api-technologies
Python で学ぶ API 入門

PythonでのAPI操作

urllib

  • Pythonに同梱
  • 強力だが開発者に優しくない
from urllib.request import urlopen
api = "http://api.music-catalog.com/"

with urlopen(api) as response:
  data = response.read()
  string = data.decode()
  print(string)

requests

  • 強力な機能を多数搭載
  • 使いやすい
import requests
api = "http://api.music-catalog.com/"

response = requests.get(api)
print(response.text)
Python で学ぶ API 入門

Let's code!

Python で学ぶ API 入門

Preparing Video For Download...