BLOGTIMES
2014/03/18

curl で RESTful な API を叩く

  restful  cli 
このエントリーをはてなブックマークに追加

先日から RESTful な API を叩くために Chrome のアドオン*1や専用の Java アプリ*2について調べましたが、バッチで自動化ということを考えるとコマンドラインから実行できる方法が欲しくなります。
以前、さくらのクラウド API を使ってローカルにバックアップを取るスクリプトを書いたときには curl を使ったのですが、使い方をきちんと調べていなかったので、もう一度基本的な使い方をまとめておきます。

GET / POST / PUT / DELETE のリクエストそれぞれを http://example.com/path/to/rest/api に対して送信する場合の書き方は以下の通りになります。

curl -s -G -d param1=aaa -d param2=bbb "http://example.com/path/to/rest/api"
curl -s -X POST -F param1=aaa -F param2=bbb -F file=@hoge.data "http://example.com/path/to/rest/api"
curl -s -X PUT -F param1=aaa -F param2=bbb "http://example.com/path/to/rest/api"
curl -s -X DELETE -F param1=aaa -F param2=bbb "http://example.com/path/to/rest/api"

メソッドの指定方法は GET のときは -G オプション、それ以外のリクエストの時は -X オプションを使って -X method という感じで指定します。

パラメータの指定方法は -d name=value もしくは -F name=value という2つのオプションで指定します。複数のパラメータを送信したい場合にはこれらを複数記述することができます。この2つの違いは、-d が application/x-www-form-urlencoded で送信されるのに対して、-F は multipart/form-data となることが異なります。よって、HTML の時に <input type="file"~のような記述をするような場合には -F を使う必要があります。それ以外の場合は -d でも大丈夫なはず。また、curl ではファイルを送信したい場合は value の部分に @ファイル名 と書くことができます。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6585
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン