もちゅろぐ

iOSやSwift、モバイル設計だったりRailsについてまとめていく

クライアントエンジニアにはcurlよりHTTPieがお薦め

f:id:motom552:20190224144043p:plain MacLinuxで使うcurlですが、iOSAndroid, フロントエンドWeb開発においてはcurlよりHTTPieを使ったほうが楽だったので紹介します。

クライアントエンジニアはcurlの学習コストが割に合わない

サーバーをよく弄るWebエンジニアはLinux上の操作が多いため既存パッケージのcurlを覚え使えたほうがフットワークが軽いと思います。

しかしAPIを叩く側多いiOSAndroid開発、フロントエンドWebの開発をするクライアントエンジニアにとって自分の開発機がそのまま開発環境になることがほとんどだと思います。

curlのようなパッケージソフトはコマンドとそのオプションを覚えるコストがかかります。 自分はせっかく覚えてもすぐに忘れてまた調べ直すので開発スピードを阻害する要因の一つです。 しかし今回紹介するHTTPieはRESTful APIを叩きやすいコマンドになります。

サンプル

あるサービスのタイムラインを取得

下のようにRESTful APIのように叩けます。

$ http get https://hogehoge.jp/timelines

あるサービスの自分のプロフィールを取得

ヘッダーもすごく簡単です。

$ http get https://hogehoge.jp/users/me/profile "Authorization:bearer accesstoken" 

あるサービスの自分のプロフィールを変更

ボディパラメータも学習コストは低いです。

$ http patch https://hogehoge.jp/users/me/profile "Authorization:bearer accesstoken" name=hoge

インストール方法

MacであればHomebrewを使えば一発です。

$ brew install httpie

比較的よく使うオプション

フォーム(application/x-www-form-urlencoded)送信

-f または --form オプション追加

$ http --form POST api.example.org/person/1 name='hoge'

JSONパラメータを送信

コマンドライン上だと数字も文字列として扱うので次の形式で入れると Boolean, Number, Object といったJSON型を指定できます。

$ http POST api.example.org/person/1 name=Jonh age:=29 male:=true hobbies:='["hobby1", "hobby2"]'

公式ドキュメントがかなり豊富で読みやすい

英語になりますが、難しい単語は少ないので読みやすいです。 HTTPie documentation