curlコマンドは便利ですが、使いにくいと思いませんか?
我慢して使ってきましたが、もうその我慢から解放されます。
HTTPieがcURLの代わりになります。
cURLと同じことが、HTTPieで簡単に行えます。
本記事の内容
- HTTPieとは?
- HTTPieのシステム要件
- HTTPieのインストール
- HTTPieの動作確認
それでは、上記に沿って解説していきます。
HTTPieとは?
HTTPie(エイチティーピー)とは、コマンドラインのHTTPクライアントです。
HTTPieは、API や HTTP サーバのテスト、デバッグ、および一般的な操作のために設計されています。
早い話、cURLみたいなモノです。
でも、HTTPieはcURLよりも人間に優しいコマンドとなっています。
シンプルで理解しやすいのです。
Wget(wgetコマンド)のようにダウンロードも可能となります。
そのため、HTTPieを使えばWgetを使う必要もありません。
マニュアルとなるドキュメントも充実しています。
cURLやWgetに慣れていない人ほど、HTTPieはおススメです。
また、cURLに我慢ならない人もHTTPieで救われるでしょう。
以上、HTTPieについての説明でした。
次は、HTTPieのシステム要件を確認します。
HTTPieのシステム要件
現時点(2021年5月)でのHTTPieの最新バージョンは、2.4.0となります。
この最新バージョンは、2021年2月6日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
そして、サポート対象となるPythonのバージョンが重要です。
Python 3.6以降が、サポート対象となります。
今回は、この中でもLinxuを対象に話を進めていきます。
考え方はLinxuすべてで通用するはずです。
検証例としては、Ubuntuを使って説明します。
まずは、みなさんの利用されているLinuxにおけるPythonのバージョンを確認しましょう。
Ubuntu 20.04なら、デフォルトでPython 3.8がインストールされています。
確認して、Python 3.6以降であるからと言って、安心しないでください。
そして、決してそのままHTTPieをインストールしてはいけません。
その理由は、次の記事で解説しています。
次の記事でその理由を確認してください。
そして、そのまま新しいPythonをインストールしましょう。
HTTPieをインストールするには、次のパッケージが必要とsetup.pyに記述されています。
そのため、デフォルトのPythonの依存関係に影響が及びます。
install_requires = [ 'requests[socks]>=2.22.0', 'Pygments>=2.5.2', 'requests-toolbelt>=0.9.1', 'setuptools', ]
もちろん、デフォルトのPythonのバージョンアップなんて絶対に禁止です。
本当に、OSがぶっ壊れることすらあり得ます。
実際、私は以前にDebianをぶっ壊した経験があります。
以上、HTTPieのシステム要件についての説明でした。
次は、HTTPieをインストールしていきましょう。
HTTPieのインストール
公式ページでは、OS毎にインストール方法が用意されています。
しかし、pipコマンドを使ってインストールする方法を紹介します。
pipコマンドの利用なら、最新版のHTTPieがインストール可能です。
それ以外の場合は、最新とは限りません。
では、最初に現状のインストール済みパッケージを確認しておきます。
$ pip3 list Package Version ---------- ------- pip 21.1.1 setuptools 56.2.0
次にするべきことは、pipとsetuptools自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
$ python3 -m pip install --upgrade pip setuptools
では、HTTPieのインストールです。
HTTPieのインストールは、以下のコマンドとなります。
$ python3 -m pip install httpie
インストールが完了したら、パッケージの確認を行いましょう。
$ pip3 list Package Version ----------------- --------- certifi 2020.12.5 chardet 4.0.0 httpie 2.4.0 idna 2.10 pip 21.1.1 Pygments 2.9.0 PySocks 1.7.1 requests 2.25.1 requests-toolbelt 0.9.1 setuptools 56.2.0 urllib3 1.26.4
最新版のHTTPie 2.4.0が、インストールされています。
それに伴い、多くのパッケージがインストールされました。
そうすると、やはりデフォルトのPythonを利用したままでは危険です。
それだけ依存関係に影響を与える可能性があることになります。
以上、HTTPieのインストールについての説明でした。
最後に、HTTPieの動作確認を行います。
HTTPieの動作確認
以下のコマンドが、「Hello World」に該当します。
https httpie.io/hello
実行すると、以下のような表示となります。
$ https httpie.io/hello HTTP/1.1 200 OK CF-Cache-Status: DYNAMIC CF-RAY: 652c24ef4cd4f8a7-NRT Connection: keep-alive Content-Length: 116 Content-Type: text/x-rst;charset=utf-8 Date: Fri, 21 May 2021 07:38:17 GMT Etag: "234b9a1fe19f125356a5396c8cc72d54493a2eef" Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" NEL: {"report_to":"cf-nel","max_age":604800} Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?s=JSnbtdhmoMU%2FtMz8056Gq6In3PtwY4CFaq7u5EWnHeVw2jxAFvuUCyKovwQAkbBHqnupce7dm3LCqru%2FSdkxnB%2BMLxLbNEyHP0Y%3D"}],"group":"cf-nel","max_age":604800} Server: cloudflare alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400 cf-request-id: 0a2f7569910000f8a7013b5000000001 Hello, World! 👋 ~~~~~~~~~~~~~~~~ Thank you for trying out HTTPie 🥳 I hope this will become a friendship.
新しくインストールしたPython上で、HTTPieが動いています。
以上、HTTPieの動作確認の説明となります。