APIとは
Application Programming Interface。別のプログラムと通信する窓口。「データをください」と頼むと「はい、これです」と返してくれる。
例: 天気APIに「東京の天気は?」と聞く → 「晴れ、25度」と返ってくる
curlコマンド(ターミナルからAPIを叩く)
GET(データ取得)
curl https://api.example.com/users
POST(データ作成)
curl -X POST -H "Content-Type: application/json" -d '{"name":"Yamada"}' https://api.example.com/users
ヘッダー付き(APIキー認証)
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/data
見やすく整形(jq)
curl -s https://api.example.com/users | python3 -m json.tool
Python requests(コードからAPIを叩く)
import requests
# GET
response = requests.get("https://api.example.com/users")
data = response.json() # JSON → 辞書に変換
print(data)
# POST(認証付き)
headers = {"Authorization": "Bearer YOUR_KEY"}
payload = {"name": "Yamada"}
response = requests.post("https://api.example.com/users",
json=payload, headers=headers)
# ステータス確認
if response.status_code == 200:
print("成功!")
else:
print(f"エラー: {response.status_code}")
JSON形式(APIの共通言語)
APIのリクエストもレスポンスもJSON形式が基本
{
"users": [
{"id": 1, "name": "Yamada", "age": 30},
{"id": 2, "name": "Sato", "age": 25}
],
"total": 2
}
JSONは Pythonの辞書/リスト とほぼ同じ書き方