UbuntuにcURLの代わりにHTTPieをインストールする

UbuntuにcURLの代わりにHTTPieをインストールする サーバー

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の動作確認の説明となります。

タイトルとURLをコピーしました