1. 概要

このチュートリアルでは、事前リクエストスクリプトを使用して、PostmanのすべてのリクエストにHTTPヘッダーを追加する方法を学習します。

2. HTTPヘッダー

実装に飛び込む前に、HTTPヘッダーとは何かを確認しましょう。

HTTPリクエストでは、ヘッダーはクライアントとサーバーのHTTP通信間の追加情報を提供するフィールドです。 HTTPヘッダーはキーと値のペアの形式であり、要求と応答の両方に添付できます。

承認、コンテンツタイプ、およびCookieは、HTTPヘッダーによって提供できるメタデータの例です。

例えば:

Authorization: Bearer YmFyIiwiaWF0IjoxN;
Content-Type: application/json;
Cookie: foo=bar;

Postmanの事前リクエストスクリプト機能を使用して、JavaScriptコードを実行してヘッダーを設定します。

3. サーバーの実行

このチュートリアルでは、デモンストレーションの目的で、以前のBaeldungプロジェクト spring-boot-jsonを使用します。 このアプリケーションは、 Student javaモデルでCRUD操作を受け入れる単一のコントローラーStudentController、で構成されています。

Maven install コマンドを使用してすべての依存関係をインストールする必要があります。次に、 SpringBootStudentsApplication ファイルを実行します。これにより、ポート8080でTomcatサーバーが起動します。

Postmanを使用すると、次のエンドポイントにGETリクエストを送信してサーバーが実行されていることを確認し、JSONレスポンスを期待できます。

http://localhost:8080/students/

例えば:

サーバーが実行されていることを確認したので、Postmanによって送信されたリクエストにプログラムでHTTPヘッダーを追加できます。

4. 事前リクエストスクリプトでヘッダーを追加

事前リクエストスクリプトを使用してPostmanのHTTPリクエストにヘッダーを追加するには、 pmという名前のPostmanJavaScriptAPIオブジェクトによって提供されるリクエストデータにアクセスする必要があります。

pm .request objectを呼び出すことで、リクエストメタデータに対して操作を実行できます。 したがって、リクエストを送信する前に、HTTPヘッダーを追加、変更、削除できます。

前に説明したように、HTTPヘッダーにはキーと値のペアの形式があります。 Postman JavaScript APIは、リクエストにヘッダーを追加するときにキーと値の両方が提供されることを想定しています。

name:value formatを文字列として使用して、ヘッダーを追加できます。

pm.request.headers.add("foo: bar");

次のように、キーおよびプロパティを使用してJavaScriptオブジェクトを渡すこともできます。

pm.request.headers.add({
  key: "foo",
  value: "bar"
});

ただし、Postmanのドキュメントによると、 id name disable などのプロパティをヘッダーオブジェクトに追加できます。これにより、 PostmanJavaScriptランタイム環境。

では、これを実際に見てみましょう。 まず、個々のPostmanリクエストにスクリプトを追加します。 次に、コレクション全体のヘッダーを追加します。

4.1. 個別のリクエスト

事前リクエストスクリプトを使用して、Postmanの個々のリクエストにヘッダーを追加できます。 前のセクションで示した実装を参照できます。 ただし、2番目のオブジェクトに焦点を当てます。ここでは、JavaScriptオブジェクトを渡して、機能を拡張する追加のプロパティを追加できるようにします。

Postmanウィンドウのpre-requestScriptに、クライアントがタイプjsonの応答を期待していることを示す次のスクリプトを追加します。

pm.request.headers.add({
    key: "Accept",
    value: "application/json"
});

Postmanでは、リクエストは次のようになります。

次に、送信ボタンをクリックしてGETリクエストを送信します。 リクエストが送信されたら、Postmanコンソールを開き(通常は左下隅の console ボタンをクリックして)、最新のリクエストを展開してリクエストヘッダーセクションを表示する必要があります:

コンソールに、 Accept:“ application / json” ヘッダーが表示され、スクリプトによってGETリクエストに正常にアタッチされたことを示しています。 さらに、応答の本文とステータスコードをチェックして、要求が成功したことを確認できます。

事前リクエストスクリプトをさらに検証するために、次のヘッダーを追加し、 406 NotAcceptableのステータスコードとともに空の応答を期待できます。

pm.request.headers.add({ 
    key: "Accept",
    value: "image/*" 
});

4.2. コレクション

同様に、事前リクエストスクリプトを使用してコレクション全体にHTTPヘッダーを追加できます。

まず、Student APIコレクションを作成して、Postman を使用してAPIエンドポイントをテストし、すべてのリクエストにPre-requestスクリプトで追加したヘッダーが含まれていることを確認します。

Postmanでは、左側のコレクションメニューオプションに移動して、WebAPIエンドポイントをグループ化できます。 次に、プラス記号ボタンをクリックして、 Student API Collection:という名前の新しいコレクションを作成します。

コレクションにhttp:// localhost:8080 / student /http:// localhost:8080 / student /2の2つのエンドポイントも追加したことに注意してください。

個々のリクエストと同様に、左側のメニューで Student API Collection を選択し、 Pre-request Script タブに移動することで、プレリクエストスクリプトをコレクションに追加できます。 これで、スクリプトを追加できます。

pm.request.headers.add({ 
    key: "Accept",
    value: "application/json" 
});

Postmanでは、StudentAPIコレクションは次のようになります。

コレクションを実行する前に、前のセクションで最初に追加した事前要求スクリプトを削除したことを確認する必要があります。 それ以外の場合、HTTPヘッダーはリクエストスクリプトで指定されたものによって上書きされ、コレクションレベルのヘッダーは削除されます。

これで、コレクションを実行する準備が整いました。 コレクションバーの実行ボタンを押すと、ランナータブが自動的に開きます。

Runner タブでは、リクエストの注文、コレクションからのリクエストの選択または選択解除、および追加設定の指定を行うことができます。 Run Student API Collection をクリックして、リクエストを実行します。

コレクション全体が終了すると、実行の順序とテスト結果(ある場合)を確認できます。 ただし、HTTPヘッダーがリクエストの一部であることを確認したいので、Postmanコンソールを開くことで確認できます。

ここでも、コンソールでリクエストのリクエストヘッダーセクションを展開し、プレリクエストスクリプトがAcceptヘッダーを追加したことを確認できます。 さらに、ステータスコードと応答本文を確認することで、要求が成功したことを確認できます。

5. 結論

この記事では、Postmanのリクエスト前のスクリプト機能を使用して、すべてのリクエストにHTTPヘッダーを追加しました。 まず、HTTPヘッダーとは何かを確認しました。 次に、ヘッダーを追加するために、個々のリクエストとコレクションの両方にプレリクエストスクリプトを追加しました。 事前リクエストスクリプトやその他の機能の詳細については、Postmanドキュメントを参照してください。

このチュートリアルで作成されたコレクションは、GitHubから入手できます。