cURLコマンドでGET/POST/PUT/DELETEリクエストを送信
cURLは、HTTPリクエストを送信するためによく使われるコマンドラインツールになります。本文では、cURLコマンドを使って、GET/POST/PUT/DELETEリクエストを送信する方法を皆さんに紹介します。APIテストが必要となる場合、この記事をぜひ参照してください。
cURLは、HTTPリクエストを送信するためによく使われるコマンドラインツールになります。本文では、cURLコマンドを使って、GET/POST/PUT/DELETEリクエストを送信する方法を皆さんに紹介します。APIテストが必要となる場合、この記事をぜひ参照してください。
また、ApidogというGUIツールで、直感的な操作でAPIリクエストを送信する手順をも一緒に紹介するので、コマンドラインに詳しくない方も、簡単にAPIをテストできるようになります。
Curlとは
CURLとは、コマンドラインからHTTPリクエストを送信するためのオープンソースのライブラリやツールのことです。CURLはAPIテストにおいて重要なツールとして広く利用されています。Curlは、主に次のことを実現できます:
- さまざまなプロトコル(HTTP、HTTPS、FTP、SMTP等)に対応している
- GETやPOSTなどのリクエストメソッドを簡単に指定できる
- ヘッダーやリクエストボディのカスタマイズが簡単
- SSL/TLSによる暗号化通信に対応
- プロキシ経由の通信に対応
- リダイレクト、認証、Cookieの処理に対応
- レスポンスのヘッダやボディを表示できる
cURLでAPIリクエストを送信
cURLコマンドでAPI確認を行う場合、主なHTTPメソッドによるリクエストをもサポートできています。cURLコマンドで異なるメソッドを指定するには、常に-Xオプション
を利用しますが、GETリクエストを送信する場合、わざと指定する必要がなく、curlコマンドの後に直接にURLを入力してもOKになります。
次は、cURLコマンドで最もよく見られるHTTPリクエストを送信する方法を紹介します。
cURLでGETリクエスト
GETリクエストを送信する場合はURLを指定するだけです。
例えば、example.comのトップページにアクセスするには次のようにします。
curl https://example.com
このコマンドを実行すると、example.comのHTMLソースがターミナルに表示されます。
追加のオプションを指定することで、さらに詳細な制御ができます。
-i
をつけるとレスポンスヘッダーを表示-I
をつけるとヘッダーのみ表示-v
をつけると通信の詳細を表示
などがあります。GETリクエスト以外にも、cURLはPOSTリクエスト送信など多くのことができる強力なツールです。コマンドラインからHTTP通信を扱うのに便利です。
cURLでPOSTリクエスト
POSTリクエストを送信するには、cURLの-X
オプションを使ってリクエストメソッドをPOSTに指定します。
基本的な形式は以下です。
curl -X POST [URL]
また、POSTリクエストではリクエストボディを送信することができます。-d
オプションや-F
オプションで指定します。
例えば、フォームデータをPOSTする場合はこのようになります。
curl -X POST https://example.com/form -d 'name=John&email=john@example.com'
JSONデータをPOSTする場合は、-H
オプションでContent-Typeを指定します。
curl -X POST https://example.com/api -H 'Content-Type: application/json' -d '{"name":"John", "email":"john@example.com"}'
このように、cURLはコマンドラインから簡単にPOSTリクエストを送信できる便利なツールです。リクエスト方法の指定やデータの送信などを柔軟に行うことができます。
cURLでPUTリクエスト
PUTリクエストを送信するには、cURLでも同様に-X
オプションを使ってリクエストメソッドをPUTに指定します。
基本的な形式は以下のようになります。
curl -X PUT [URL]
例えば、以下のようにJSONデータをPUTリクエストで送信できます。
curl -X PUT https://example.com/api/users/1 \
-H 'Content-Type: application/json' \
-d '{"name": "John", "email": "john@example.com"}'
この例では、example.comの/api/users/1エンドポイントにPUTリクエストを送信しています。
-X PUT
でリクエストメソッドをPUTに指定-H
でContent-Typeをapplication/jsonに設定-d
でリクエストボディにJSONデータを設定
することで、JSON形式のデータをPUTリクエストとして送信できます。
PUTリクエストは主にリソースの更新に用いられます。cURLを使うことでコマンドラインから直感的にPUTリクエストを测试できるので、API開発時などにとても便利です。
cURLでDELETEリクエスト
DELETEリクエストを送信するには、依然としてcURLで-X
オプションを使ってリクエストメソッドをDELETEに指定します。
基本的な形式は以下のようになります。
curl -X DELETE [URL]
例えば、以下のようにDELETEリクエストを送信できます。
curl -X DELETE https://example.com/api/users/1
この例では、example.comの/api/users/1エンドポイントにDELETEリクエストを送っています。
DELETEリクエストは主にリソースの削除に用いられます。リクエストボディは必要ない場合が多いため、上記のようにURLだけを指定するのが一般的です。が、必要に応じて、ヘッダーや認証情報を指定することもできます。
curl -X DELETE -H "Authorization: Bearer xxx" https://example.com/api/users/1
このように、cURLを使えばコマンドラインから直感的にDELETEリクエストを送信し、APIの動作をテストできます。API開発時にとても便利なツールだと言えます。
cURLでAPIリクエスト送信の要点まとめ
上記のcURLコマンドで各種のHTTPリクエストを送信する方法をまとめてみると、cURLコマンドを利用して、APIリクエストを送信することの要点は次のようになると思います。
- cURLはコマンドラインからHTTPリクエストを送信するための強力なツール
-X
オプションでGET/POST/PUT/DELETEなどのリクエストメソッドを指定できる- URLを指定するだけで簡単にGETリクエストが送信できる
-d
や-F
オプションでPOSTのリクエストボディを指定できる-H
オプションでリクエストヘッダーを柔軟に制御できる- PUTやDELETEも同様のオプション使用で送信可能
- 開発時のAPIテストにとても向いている
- コマンドライン操作に長けているならcURLは強力な武器になる
以上のように、cURLを使えばコマンドラインから自由自在にHTTPリクエストを作成/送信することができます。APIやWebアプリケーションの開発・デバッグに大いに活用できます。また、上記に触れていたcURLのオプション以外、他にも利用可能なcURLオプションもたくさんあります。
Apidog:直感的な操作でAPIリクエストを送信
cURLは非常に強力で機能が豊富なコマンドラインツールですが、その反面、習得に一定のコストがかかります。GUIベースのツールと比べると、cURLの使い方を覚えるまでに時間がかかりますので、初心者にはすぐcURLコマンドの使い方を習得することができない可能性があります。そこで、ここではApidogという直感的で使いやすいGUIのAPIクライアントツールを皆さんに紹介します。Apidogを使用すると、どの種類のHTTPリクエストをも直感的なUIで送信できるので、非常に便利です。
Apidogは、十数種のHTTPメソッドにも対応可能なので、GET、POST、PUT、DELETEなどのリクエストを送信する場合でも、上記画像のように直感的なUIで簡単に指定してリクエストを送信することができます。
CURLにも完全に互換可能
また、ApidogはcURLにも完全に互換できるので、1クリックだけでCURLリクエストを簡単にApidogにインポートして利用できますし、Apidogに保存しているAPIをもCURLに逆生成することもできますので、非常に便利なツールです。
ステップ⒈Apidogを開き、左上にある「+」ボタンにガーソルを置き、「cURLをインポート」をクリックします。
ステップ⒉cURLを入力ボックスに貼り付けると、「OK」ボタンをクリックします。
ステップ⒊Apidogは一瞬でcURLを解析でき、各タブでcURLで定義したものを確認することができます。間違いがない場合は、「送信」をクリックして簡単にリクエストを送信できるようになります。
上記のように、Apidogは非常に使いやすいAPI管理ツールとして、非常に簡単な方法でCURLリクエストをインポートして利用することができます。
まとめ
cURLはHTTPリクエストを送信できる強力なツールで、GETやPOST、PUT、DELETEなどのメソッドを指定してAPIをテストできます。しかし、コマンドライン操作が必要なため、初心者には敷居が高い面があります。そこで、GUIベースのツールApidogがおすすめです。Apidogを使えば、直感的なUI操作で簡単にAPIリクエストを送信できます。また、ApidogはcURLとの互換性があるので、cURLコマンドをそのままインポートして使うこともできます。逆にApidogで作成したリクエストをcURLコマンドとしてエクスポートすることも可能です。
要するに、APIのテスト・デバッグにはApidogがおすすめです。cURLほどの機能はないものの、シンプルなUI操作で直感的にAPIリクエストが送信できるので、初心者にも扱いやすいツールといえます。ただし、cURLの豊富な機能が必要な場合は、ApidogとcURLを組み合わせて利用するのが良いでしょう。