curlコマンドとは?Web APIのテストやHTTP・JSON通信の実践例
URLを叩いて様々なリクエストを送信できる「curl」コマンドについて、REST APIのテスト(GET/POST)やヘッダー確認などの実務での使い方を解説。
curlコマンドとは?
curl(カール)は、コマンドライン(ターミナル)からさまざまなプロトコル(主にHTTPやHTTPS)を使ってURLとデータの送受信を行うためのツールです。
「Client URL」に由来しており、ブラウザを開かなくてもWebページの内容を取得したり、サーバーにデータを送信したりすることができます。
主な役割とメリット
Webアプリケーション(特にREST API)の開発において、自分が作ったAPIが正しく動作するかどうかを手軽にテストする「デバッグツール」として最強の威力を発揮します。
どのような場面で使われるか
シェルスクリプトの中から外部のAPIを叩いてデータを取ってきたり、障害時にWebサーバーがどんなHTTPステータスコード(200 OK や 500 Errorなど)を返しているかヘッダーだけを確認する際に利用されます。
実務でよく使うオプションとAPIテスト
- 単純なGETリクエスト:
curl https://example.com/api/users - POSTリクエストでJSONを送信する:
REST APIにデータを新規登録する際に非常によく使う構文です。
curl -X POST -H "Content-Type: application/json" -d '{"name":"Taro", "age":25}' https://example.com/api/users-X POST: HTTPメソッドをPOSTに指定-H: HTTPヘッダーを指定(今回は中身がJSONであることを通知)-d: 送信するデータ本体(ペイロード)を指定
- HTTPヘッダー情報の確認 (
-I):curl -I https://example.comページ本体(HTML文書)は取得せず、サーバーの種類(Nginxなど)やステータスコードだけを素早く確認します。 - アクセス結果をファイルに保存 (
-o,-O):curl -O https://example.com/file.zip(wgetコマンドの代わりとして使われます)
実務上の注意点
curlの結果で返ってくるJSONは通常1行で出力されるため、人間には非常に読みづらいです。
実務では jq というコマンドと組み合わせて、curl https://api.example.com | jq のように実行し、JSONをきれいに整形(フォーマット)して表示するのが定石です。
よくあるエラーやトラブルシュート
- Connection refused: サーバーが落ちているか、指定したポート(例: 8080)でWebサーバーのアプリケーションが起動していない場合に発生します。
- 証明書エラー(SSL certificate problem): オレオレ証明書など、信頼できないSSL証明書を使っているAPIを叩くとはじかれます。
-k(または--insecure)オプションをつけることでエラーを無視して接続を強行できます(テスト用途のみ)。
まとめ
curlコマンドを使いこなせるかどうかで、バックエンド開発やAPI連携時のデバッグスピードが劇的に変わります。PostmanなどのGUIツールも便利ですが、サーバー上でサッと確認できるcurlの構文(特にJSONのPOST方法)は暗記しておいて損はありません。
関連する用語 (linux)
全12件を見るgit rebase と git merge の違い・使い分け
コミット履歴を綺麗に保つための `git rebase` の仕組みと、`merge` との決定的な違い、実務での使い分けについて図解します。
tailコマンドとは?リアルタイムなログ監視の実務テクニックを解説
ファイルの末尾を表示する「tail」コマンドについて、-fオプションを使ったリアルタイムなログ監視やエラー調査の基本を解説します。
pingコマンドとは?ネットワーク疎通確認の仕組みと実務での活用
ネットワークの基本コマンド「ping」について、サーバー間の通信が届いているかを確認する仕組みとトラブルシューティングの初動対応を解説。
chmodコマンドとは?Linuxの権限(パーミッション)変更を分かりやすく解説
Linuxの必須コマンド「chmod」について、777や644といった数字の意味から、実務でよく使う権限設定の定石まで徹底解説します。
Gitのコンフリクト(競合)解消のやり方
複数人で同じファイルを編集して `git merge` や `git pull` した際に発生する「コンフリクト」の直し方と安全な運用方法を解説します。
git stash コマンドの使い方(作業の一時避難)
コミットせずに今の作業を一時保存できる `git stash` コマンドの使い方(保存・復元・一覧・削除)を実務ベースで解説します。