API ── プログラム間のやり取り規約
GET(取得)/POST(作成)/PUT(更新)/DELETE(削除)e-Stat、 気象庁、 Twitter/X、 Slack、 OpenAI など、 現代のデータ取得は API 経由が標準。 Excel ダウンロードから卒業するならまずAPIを覚えるのが効率的です。
「レストランの注文窓口」が API の良い比喩:
これにより、 キッチン側は内部を変えても窓口さえ守れば客に影響が出ない。
GET https://api.example.com/v1/users/42?lang=jaAuthorization: Bearer <token>
{ "id": 42, "name": "Taro", "lang": "ja" }
e-Stat API で「2023年人口」を取得する流れ:
http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?appId=...&statsDataId=0003448237最小限のスニペットで動作確認できる例。 公的データ(SSDSE 等)を想定しています。
1 2 3 4 5 6 7 8 9 10 11 12 | import requests import pandas as pd url = "https://api.example.com/v1/data" params = {"prefecture": "all", "year": 2023} headers = {"Authorization": "Bearer YOUR_TOKEN"} resp = requests.get(url, params=params, headers=headers, timeout=10) resp.raise_for_status() # 4xx/5xx で例外 data = resp.json() df = pd.DataFrame(data["results"]) print(df.head()) |
| 方式 | 特徴 | 採用例 |
|---|---|---|
| REST | URLでリソース、 HTTPメソッドで操作 | 多くのWeb API |
| GraphQL | クライアントが必要なフィールドを指定 | GitHub、 Shopify |
| gRPC | Protocol Buffers、 双方向ストリーム | Google内部、 マイクロサービス |
| WebSocket | 双方向リアルタイム | チャット、 ライブ更新 |
| SOAP | XMLベース、 厳格 | レガシー金融・公共 |
| 方式 | 特徴 | 採用例 |
|---|---|---|
| REST | URLでリソース、 HTTPメソッドで操作 | 多くのWeb API |
| GraphQL | クライアントが必要なフィールドを指定 | GitHub、 Shopify |
| gRPC | Protocol Buffers、 双方向ストリーム | Google内部、 マイクロサービス |
| WebSocket | 双方向リアルタイム | チャット、 ライブ更新 |
| SOAP | XMLベース、 厳格 | レガシー金融・公共 |