curlコマンドでRestAPIを実行

はじめに

RestAPIのテストで、「Postman」などのツールが使えれば良いですが、職場でダウンロードが禁止だったりして使えない場合があります。

ここでは、curlコマンドを使用してRestAPIを実行する方法を記載します。

GET通信

・[URL]の部分は書き換えてください。

・クエリパラメータを使用する場合はURLの後ろに「?」をつけてからパラメータを記載してください。(URL?key=value)

curl -X GET [URL]

以下はサンプルです。

curl -X GET https://example.com/get_api?param=hoge

POST通信

・[URL]の部分は書き換えてください。

・[JSON形式でのBody]はJSONでBodyを書いてください。({“param”: “value”})

curl -d '[JSON形式でのBody]' -H "Content-Type: application/json" -X POST [URL]

以下はサンプルです。

curl -d '{ param: "value" }' -H "Content-Type: application/json" -X POST https://example.com/post_api

DELETE通信

・[URL]の部分は書き換えてください。

・[JSON形式でのBody]はJSONでBodyを書いてください。({“param”: “value”})

curl -d '[JSON形式でのBody]' -H "Content-Type: application/json" -X DELETE [URL]

以下はサンプルです。

curl -d '{ param: "value" }' -H "Content-Type: application/json" -X DELETE https://example.com/delete_api

エラー

curlを実行した時に、以下のエラーがでたら、URLが間違えている可能性が高いので、その部分を確認してください。

curl: (52) Empty reply from server

改行

curlが長くなると、改行することで可読性が上がり、誤字などが見つけやすくなります。

コマンド途中での改行は以下のように「\」(バックスラッシュ)を使用することで改行できます。

curl \
  -d '{ param: "value" }' \
  -H "Content-Type: application/json" \
  -X POST https://example.com/post_api

レスポンス結果を整形

以下のコマンドを実行し、Homebrewにてjqをインストールする。

brew install jq

上記実施後、curlコマンドの末尾に「|」(パイプライン)を使用してjqを繋げる事でレスポンスが整形されて取得できます。

curl -X GET https://example.com/get_api?param=hoge | jq