この投稿は インタープリズムの面々が、普段の業務に役立つ記事を丹精込めて書き上げる! Advent Calendar 2016 - Qiitaの7日目 の記事です。
hiranoです。私はCUIのコマンドが好きです。 起動しておく必要がないし、使おうと思ったらどこでも使えるので。
CUIライフを豊かにしてくれるかもしれない
いい感じにhttpリクエストを投げられて、いい感じに結果を表示してくれるhttpie
を紹介します。
curl というものがある
httpie
を紹介する前に curl
の紹介です。
CUIでhttpリクエストを投げる有名なコマンドにcurl
があります。
(余談ですがカールって読むみたいです)
私はこれ使いこなせてません。なぜならヘッダ追加したりPOST投げたりする時のやり方が憶えられない。
例えばこんなの。
# POSTでリクエストを投げる curl -X POST httpbin.org/post # POSTでFORMデータを含めて投げる curl -X POST -d firstname=hoge -d lastname=hogege httpbin.org/post # POSTでJSONデータを投げる curl -X POST -H "Content-type: application/json" -d '{"firstname":"hoge","last_name":"hogege","hobbies":["reading","walking"]}' httpbin.org/post # ヘッダを追加して投げる curl -H 'hkey1:value1' -H 'hkey2:value2' httpbin.org/get # レスポンスヘッダーも表示 curl -i httpbin.org/get # basic認証 curl --user myuser:mypassword httpbin.org/basic-auth/myuser/mypassword # gzip圧縮された結果を表示 → 一度ダウンロードして展開するしかなさそう curl httpbin.org/gzip > test.gz gzip -d test.gz cat test
個人的には X
ってなんだよ d
とか H
ってなんだよ。う、あ、頭が…
httpbin (閑話休題)
と、サラッと httpbin を使っていますが、これ非常に便利です。 一言で言えば
自分で色々と用意しなくても色々なリクエストを試すことが出来るサイト
です。 トップページにアクセスすると、対応しているリクエストがずらーっと表示されるので大体分かると思います。
httpbin(1): HTTP Client Testing Service
httpie というものがある
真打ちの登場です。インストール方法は公式を見てください。
httpie
を使うと先の例が以下のようになります。
# POSTでリクエストを投げる http POST httpbin.org/post # POSTでデータを含めて投げる http --form POST httpbin.org/post firstname=hoge lastname=hogege # POSTでJSONデータを投げる http POST httpbin.org/post firstname=hoge lastname=hogege hobbies:='["reading","walking"]' # ヘッダを追加して投げる http httpbin.org/get hkey1:value1 hkey2:value2 # レスポンスヘッダーも表示 → デフォルトで表示されるので特にオプションは不要 http httpbin.org/get # basic認証 http -a myuser:mypassword httpbin.org/basic-auth/myuser/mypassword # gzip圧縮された結果を表示 → デフォルトでgzipに対応しているので勝手に展開される http httpbin.org/gzip
全体的にオプションが少なめで、書き方に統一感が感じられます。
また、出力結果が明らかに違います。
curl
httpie
まとめ
httpie
の利点を改めて列挙すると以下のような感じです。
- 書き方のルールを導入することで、Methodの指定にオプションが不要
header
,form
(json
) を送る時に区切り文字を:
,=
のどちらかにすればよくオプションが不要- JSONをサポートしているのでシンプルなJSONならデータだけ渡せばOK
- 実行結果が人間が読むのに適している
ほぼ curl
と同じ機能を持ち、使いやすさが向上している感じです。
サーバーで操作する際は curl
しか使えない時はありますが、そうでない限りは httpie
を使うと色々と良さそうです。
みなさんのCUIライフに幸あれ。
参考にさせていただいたサイト
curl
と httpie
の違いについて非常によくまとまっていて、より深く使いたい人はこちらが良いと思います。
インタープリズムの面々が、普段の業務に役立つ記事を丹精込めて書き上げる! Advent Calendar 2016 - Qiitaの8日目の記事