Webプロジェクトを開発する際にプログラマが解決しなければならない最も重要なタスクの1つは、そのようなプロジェクトのクライアント部分とサーバー部分の間のデータ交換を整理することです。 このように見えるかもしれません:ユーザーがブラウザで開いているページの特定のボタンを押すと、システムはサーバーにリクエストで応答し、その後サーバーはリクエストしたデータをページに送信します。 そのようなデータをページに表示するには、データをリロードせずに処理されます。その後、ページが更新され、ユーザーは必要なものを受け取ります。

このようなシステム間の対話の基礎は、
XMLHttpRequest
オブジェクトのインスタンスが使用されるアプリケーションでのAJAXテクノロジーです。 プログラマーがAJAXおよび
XMLHttpRequest
を簡単に操作できるようにするために、開発者に便利なインターフェイスを提供する特殊なライブラリが作成され、低レベルのメカニズムを使用する必要がなくなりました。
本日、私たちが翻訳した資料は、HTTPを操作するための5つの一般的なツール、Axios、Request、Superagent、Fetch、およびSupertestの分析に当てられています。
アクシオス
HTTPリクエストを実行するための
Axiosライブラリは、
promiseに基づいています。 Node.jsおよびブラウザーアプリケーションでの使用に適しています。 このライブラリは、IE8 +を含むすべての最新ブラウザーをサポートしています。
▍強み
- Node.js環境およびブラウザーで動作します。
- 約束をサポートします。
- リクエストを実行およびキャンセルできます。
- 応答タイムアウトを設定できます。
- XSRF攻撃に対する保護をサポートします。
- 要求と応答をインターセプトできます。
- データのアップロードの進行状況の表示をサポートします。
- ReactおよびVueに基づくプロジェクトで広く使用されています。
弱点
スーパーエージェント
Axiosのような
Superagentライブラリは、Node.jsおよび最新のブラウザーに適しています。 開発者に、使いやすいシンプルで理解しやすいAPIを提供します。
Superagentを使用してHTTPリクエストを実行するには、適切な
request
オブジェクトメソッドを呼び出すだけです。
request .get('') .then(res => log(res)) .catch(err => log(err))
▍強み
- プラグインをサポートします。
- 設定可能。
- HTTPリクエストを作成するための素晴らしいインターフェイスがあります。
- クエリを完了するための複数の呼び出しのチェーンをサポートします。
- Node.js環境およびブラウザーで動作します。
- データのアップロードおよびダウンロードの進行状況表示をサポートします。
- チャンク転送エンコードメカニズムをサポートします。
- コールバックをサポートします。
- このライブラリ用に多くのプラグインが開発されています。
弱点
- これには、標準に準拠していない種類のAPIがあります。
リクエスト
リクエストライブラリは、レビュー済みの以前のツールと比較して、HTTPリクエストを実行するための簡略化されたツールです。 このライブラリを使用する場合、他のライブラリを使用する場合よりも少ないコードを記述する必要があります。
Promiseは使用しませんが、この機能が必要な場合は、
Request-Promiseライブラリを使用できます。これは、Requestライブラリのラッパーを実装し、
Promiseを使用できるようにします。
▍強み
弱点
フェッチ
このレビューで取り上げられている他のツールとは異なり、
Fetchはライブラリではありません。 これは標準のブラウザAPIであり、
XMLHttpRequest
代替です。
▍強み
- 柔軟性と使いやすさ。
- 「コールバックの地獄」を回避するプロミスの使用。
- 最新のすべてのブラウザーによるサポート。
- 要求/応答アプローチに従う。
- シンプルで素晴らしい構文。
- React Nativeでサポートされています。
弱点
- サーバー環境では機能しません。
- リクエストのキャンセルなど、HTTPライブラリで利用可能な機能の一部は実装していません。
- 要求モード、ヘッダー、資格情報などのデフォルトパラメータの組み込みサポートは含まれていません。
スーパーテスト
Supertestライブラリ
は 、Superagentライブラリに基づいています。 Node.jsに基づいてHTTPサーバーをテストするように設計されています。 スーパーテストにより、開発者は独自のAPIおよびスーパーエージェントライブラリが提供する低レベルAPIにアクセスできます。
▍強み
- 便利なAPIがあります。
- HTTPテストの構築を簡素化します。
- Chai.jsやMochaなどのプロジェクトをテストするために、ライブラリと組み合わせて使用できます。
弱点
まとめ
この記事では、ブラウザーテクノロジーとNode.jsプラットフォームを使用してアプリケーションを作成するJS開発者に役立つ、HTTPを操作するための一般的なツールをいくつか検討しました。 特定のプロジェクトのHTTPサブシステムのベースを選択する場合、最初に適切に見えるいくつかのツールを試してから、最終決定を行うことをお勧めします。
親愛なる読者! どのHTTPライブラリを使用していますか?