日常的にAPIを取り扱うことが多い場合は、cURLというものをきっと聞いたことがあるのでしょう。それでは、cURLと何ですか?cURLをどうやって使用すればいいですか?本文では、こういう質問に対して、完全に解説していきたいと思います。
また、cURLの使い勝手が悪く、リクエストの再利用やテスト自動化が難しいなどの短所を解決するために、cURLに完璧に互換のApidogを使って、より効率的にAPIをテストすることがお勧めします。
CURLの代替ツールとしてApidogをぜひご活用ください。下記のボタンをクリックして無料で利用可能👇👇👇
cURLとは
cURLとは、コマンドラインからHTTPリクエストを送信するためのオープンソースのライブラリやツールのことです。cURLはAPIテストにおいて重要なツールとして広く利用されています。cURLは、主に次のことを実現できます:
- さまざまなプロトコル(HTTP、HTTPS、FTP、SMTP等)に対応している
- GETやPOSTなどのリクエストメソッドを簡単に指定できる
- ヘッダーやリクエストボディのカスタマイズが簡単
- SSL/TLSによる暗号化通信に対応
- プロキシ経由の通信に対応
- リダイレクト、認証、Cookieの処理に対応
- レスポンスのヘッダやボディを表示できる
Curlを利用するために、まずはそれをインストールする必要があります。次は、OS別でインストール方法を紹介しますので、Windows、macOS、Linuxを利用していても、次の手順を参照することができます。
cURLのインストール方法
CURLをインストールする方法は、使用しているOSによって異なります。
Windowsの場合
Curlのインストール方法は、OS別随分違っています。Windows搭載のパソコンを利用している場合は、次のステップを参照して、CURLをインストールしてください。
- https://curl.se/download.html からWindows用のcurl実行ファイルをダウンロード
- ダウンロードしたzipファイルを展開
- 展開したフォルダ内のcurl.exeをコピー
- コピーしたcurl.exeへのパスを環境変数PATHに追加
Macの場合
ステップ⒈ターミナルを開き、次のコマンドラインを入力します:
$ brew install curl
ステップ⒉ここでCurlが自動的にインストールされ、インストールに成功したかどうかを確認するには、次のコマンドを使用してください:
$ curl --version
CURLが成功にインストールされると、CURLのバージョン号が返されます。
Linux(Debian/Ubuntu)の場合
$ sudo apt install curl
Linux(CentOS/Fedora)の場合
$ sudo yum install curl
このように、Windowsでは直接実行ファイルをダウンロードし、MacやLinuxではパッケージマネージャを使用してインストールできます。
cURLで使えるオプション一覧(サンプル付き)
CURLには、HTTPリクエストのカスタマイズやレスポンスの保存などに利用できる様々なオプションがあります。次は、代表的なオプションを皆さんに紹介します。
- -b : Cookieの送信
- -c : Cookieの保存
- -d : POSTデータの送信
- -F : multipart/form-dataの送信
- -H : ヘッダのカスタマイズ
- -i : レスポンスヘッダの表示
- -k : SSL証明書の検証をスキップ
- -L : リダイレクト先に自動的にフォロー
- -o : レスポンスをファイルに保存
- -O:リクエスト先のファイル名で保存
- -s:実行中のメッセージを非表示
- -S:エラーメッセージを表示
- -u : Basic認証のユーザ名とパスワード
- -v:リクエストとレスポンスのヘッダーと内容を表示
- -X: リクエストのHTTPメソッドを指定
他にも--data-binary でバイナリデータの送信、--compressedで圧縮転送、--limit-rateで転送速度の制限などができます。次は、実際にCURLを使ってリクエストを送信する時の使用例を皆さんに紹介します。
CURLオプションの使用例
上記に紹介したCURLのオプションをどうやって利用すれば良いのでしょうか?次は、実際にCurlを使用してHTTPリクエストを送信するための使用例を紹介します。
はい、CURLの主なオプションをすべて紹介します。
- -b : Cookieの送信
curl -b "cookie1=value1; cookie2=value2" http://example.com
- -c : Cookieの保存
curl -c saved_cookies.txt http://example.com
- -d : POSTデータの送信
curl -d "param1=value1¶m2=value2" http://example.com
- -F : multipart/form-dataの送信
curl -F "file=@myfile.txt" http://example.com
- -H : ヘッダのカスタマイズ
curl -H "X-My-Header: 123" http://example.com
- -i : レスポンスヘッダの表示
curl -i http://example.com
- -k : SSL証明書の検証をスキップ
curl -k https://example.com
- -L : リダイレクト先に自動的にフォロー
curl -L -d "param1=value1" http://example.com
- -o : レスポンスをファイルに保存
curl -o response.html http://example.com
- -O : リクエスト先のファイル名で保存
curl -O http://example.com/file.txt
- -s : 実行中のメッセージを非表示
curl -s http://example.com
- -S : エラーメッセージを表示
curl -S http://example.com
- -u : Basic認証のユーザ名とパスワード
curl -u user:password http://example.com
- -v : リクエストとレスポンスの詳細を表示
curl -v http://example.com
- -X : リクエストのHTTPメソッドを指定
curl -X POST http://example.com
上記の使用例は、単一のオプションのみを使用していますが、より複雑なHTTPリクエストの送信を実現するために、上記のオプションを複数組み合わせて利用することができます。
Curlオプションを組み合わせて利用
前述のように、CURLではオプションを組み合わせることでより複雑なHTTPリクエストを送信できます。
例えば、以下のようなオプションの併用が考えられます。
- Cookieとヘッダの送信
curl -b 'cookie1=value1' -H 'X-MyHeader: 123' https://example.com
- POSTデータとリクエストヘッダの送信
curl -d 'param1=value1' -H 'Content-Type: application/json' https://example.com
- レスポンスヘッダの表示と保存
curl -i -o response.txt https://example.com
- SSL証明書検証スキップとリダイレクト先への自動フォロー
curl -k -L https://example.com
- プロキシ経由でのBasic認証
curl -x proxy.server:8080 -u username:password https://example.com
- データバイナリのPOST送信
curl --data-binary '@file.zip' -H 'Content-Type: application/zip' https://example.com
このようにCURLは柔軟なオプション指定が可能で、それらを組み合わせることで複雑なAPIテストを実行できます。CURLのマニュアルを参考に、自分の用途に応じたオプション指定を習得していくことが大切です。
WindowsとMacとLinux:CURLオプション使い方の相違点
Windows、Linux、MacでCURLの基本的な使い方は同じですが、以下のような違いがある点に注意が必要です。OSごとのこれらの違いを理解して、必要なオプションを指定することが大切です。
インストール方法が異なる
前述のように、Windowsでは直接実行ファイルをダウンロードし、MacやLinuxではパッケージマネージャを使用してインストールできます。
SSL証明書の検証が異なる
- Windows: デフォルトで検証する
- Linux: デフォルトで検証しない (-kオプション不要)
- Mac: デフォルトで検証する
プロキシ設定が異なる
- Windows: システムプロキシを自動利用
- Linux: -xオプションで明示的に設定
- Mac: システムプロキシを自動利用
リダイレクトが異なる
- Windows: デフォルトで10回までリダイレクト
- Linux: デフォルトでリダイレクトしない
- Mac: デフォルトで10回までリダイレクト
レスポンス形式が異なる
- Windows: バイナリ形式
- Linux: テキスト形式
- Mac: テキスト形式
cURLの制限とGUIツールのメリット
現在、Apidog、PostmanやSwaggerなどのGUIツールが盛り上がっています。なぜかこれらのツールを使用する必要がありますか?実際にCURLを利用してHTTPリクエストを送信する時、CURLには主に以下のような制限があると言えます。
- コマンドライン操作が必要なため、使いこなすのが難しい
- レスポンス結果の内容を確認しづらい場合がある
- 複雑なリクエストの作成が面倒になることがある
- Cookieやセッションの管理がややこしい
- テストシナリオの記述や再実行がしづらい
- 大量のデータ送受信に向いていない
- グラフィカルなレポートが生成できない
そこで、多くのユーザーは、GUIツールのApidogかPostmanを導入しています。これらのGUIツールに比べてみると、CURLの使い勝手が悪く、リクエストの再利用やテスト自動化も難しくなり、レスポンス結果の可視化も実現し難くなるのは短所であるのでしょう。
Apidog:CURLに完全互換できるAPI管理ツール
Apidogは完全に日本語化されたAPI管理ツールとして、APIの設計、仕様書生成、テスト自動化などのことも実現できます。
cURLよりも便利にAPIをテスト&管理
Apidogは直感的なAPI管理ツールとして、GUIでcURLよりも便利にAPIをテストすることできます。また、ApidogはHTTP APIの他に、gRPC、WebSocket、GraphQLなどのAPIプロトコルにも対応できるので、非常に便利なツールになります。
cURLを1クリックでインポート
また、ApidogはcURLにも完璧に互換していますので、1クリックだけで、CURLリクエストを簡単にApidogにインポートして利用できますし、Apidogに保存しているAPIをもCURLに逆生成することもできますので、非常に便利なツールです。
ステップ⒈Apidogを開き、左上にある「+」ボタンにガーソルを置き、「cURLをインポート」をクリックします。
ステップ⒉cURLを入力ボックスに貼り付けると、「OK」ボタンをクリックします。
ステップ⒊Apidogは一瞬でcURLを解析でき、各タブでcURLで定義したものを確認することができます。間違いがない場合は、「送信」をクリックして簡単にリクエストを送信できるようになります。
上記のように、Apidogは非常に使いやすいAPI管理ツールとして、非常に簡単な方法でCURLリクエストをインポートして利用することができます。
まとめ
CurlはコマンドラインからHTTPリクエストを送信するための強力なツールですが、リクエストの再利用や結果の可視化が難しいなどの制限もあります。Curlの制限を補完するため、Apidogという使いやすくて強力的なGUIベースのツールが利用されるのが一般です。
ApidogはCurlリクエストを簡単にインポートでき、可視化・保存・自動化などを実現できますので、CurlとApidogを併用することで、APIテストをより効率的・効果的に行うことが期待されます。