curl はターミナルから HTTP リクエストを1回送るコマンド。 API の実験台として使う。ブラウザと違って、GET 以外のメソッドを送れて、ヘッダを自由に付けられて、送受信の中身を丸ごと目で見られる。
curl -H "Authorization: Bearer eyJhbGci..." https://api.github.com/user
└┬─┘ └──────────────┬──────────────────┘ └──────────┬─────────┘
コマンド名 オプション(0個以上) URL(宛先)
オプションは - で始まり、直後の値とセットで読む。上の例は「ヘッダを1本付けて GET した」だけ。
\ は curl のオプションではなく、改行を打ち消すシェルの記号。2行に折り返しても、1行に繋げて書いたのとまったく同じ意味になる| オプション | 意味 |
|---|---|
| (なし) | GET を送る |
-H | ヘッダを1本足す |
-X | メソッドを指定する |
-d | ボディを送る |
-i | レスポンスのヘッダも表示 |
-v | 送受信の全文を表示(> が自分、< がサーバー) |
# 認証トークンを付けて GET
curl -H "Authorization: Bearer ghp_xxxx" https://api.github.com/user
# JSON を POST(4点セットが全部そろった形)
curl -X POST \
-H "Content-Type: application/json" \
-d '{"title":"バグ報告"}' \
https://api.github.com/repos/owner/repo/issues
curl の行を読むときは、メソッド・パス・ヘッダ・ボディのどれを指定しているかに分解すればいい。
-d を書くと自動で POST になるので -X POST は省ける。PUT や PATCH のときだけ -X が要る& を囲まないと、シェルがそこで切ってバックグラウンド実行になる-H で載せる認証ヘッダの中身