API基礎(REST + curl)

APIとは

Application Programming Interface。別のプログラムと通信する窓口。「データをください」と頼むと「はい、これです」と返してくれる。

例: 天気APIに「東京の天気は?」と聞く → 「晴れ、25度」と返ってくる

HTTPメソッド(操作の種類)

メソッド意味
GET取得ユーザー一覧を取得
POST作成新しいユーザーを作成
PUT全体更新ユーザー情報を全更新
PATCH部分更新名前だけ変更
DELETE削除ユーザーを削除

ステータスコード(結果の種類)

コード意味説明
200成功要求が正常に処理された
201作成成功新しいリソースが作られた
400 bad requestリクエストの書き方が間違ってる
401認証エラーログインが必要 or APIキーが違う
403権限なしアクセスする権限がない
404見つからないURLが間違ってる or データがない
429リクエスト過多使いすぎ。少し待ってから再試行
500サーバーエラー相手側の問題。こちらでは対処不可

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の辞書/リスト とほぼ同じ書き方
← ガイド一覧に戻る