PhpStorm 2019.2ヘルプ

PhpStormコードエディターのHTTPクライアント

Webサービスをテストするときは、PhpStorm コードエディターで直接HTTPリクエストを作成、編集、および実行できます。

HTTPリクエストは .http および .rest ファイルに保存され、HTTP file icon アイコンでマークされています。

HTTPファイルのサポートには、以下の機能が含まれます。

開始する前に、必要に応じて、設定/環境設定 Ctrl+Alt+S ダイアログのHTTP プロキシーページでプロキシ設定を構成します

HTTPリクエストファイルの作成

スクラッチファイルまたはHTTP 要求タイプの物理ファイルからHTTPリクエストを処理できます。各ファイルには複数の要求を含めることができ、必要な数のファイルを作成できます。

スクラッチ・ファイルを使用して、開発中にHTTP要求をテストできます。スクラッチファイルはプロジェクト内に保存されないため、PhpStormは変更し、リクエストに関する追加情報を追加できます。HTTP要求がスクラッチファイルから実行されると、応答出力ファイルへのリンクが要求の下および要求履歴ファイルの上部に追加されます。

HTTPリクエストスクラッチファイルを作成する

Ctrl+Shift+Alt+Insert を押してHTTP 要求を選択します。

物理ファイルは、HTTP要求の文書化、テスト、および検証に使用できます。物理ファイルはプロジェクト内に保存され、PhpStormは変更しません。HTTP要求が物理ファイルから実行される場合、このファイルは変更されません。実行された要求に関する情報と応答出力ファイルへのリンクが、要求履歴ファイルの先頭に追加されます。

物理HTTPリクエストファイルを作成する

ファイルメニューで新規をポイントし、HTTP 要求をクリックします。

F6 リファクタリング移動を使用して、HTTP要求をスクラッチから物理ファイルに移動したり、物理ファイル間で移動したりできます。

HTTPリクエストを移動する

  1. エディターで、移動する要求にキャレットを置き、次のいずれかを実行します。

    • メインメニューまたはコンテキストメニューから、リファクタリング | 移動を選択します。

    • F6を押します。

  2. 表示されるダイアログで、the Browse button をクリックしてファイルを選択するか、要求の移動先のファイルへのフルパスを入力します。存在しないファイルの名前を指定できることに注意してください。その場合、指定された名前の新しいファイルが自動的に作成されます。

HTTPリクエストの作成

次の一般的な構文を使用して、作成されたHTTP要求ファイルに HTTP要求を直接入力できます。

Method Request-URI HTTP-Version Header-field: Header-value Request-Body

PhpStormはエディターでのHTTPリクエストフォーマットを使用します。これはHTTPリクエストに関する情報を作成、実行、保存する簡単な方法を提供します。その可能性の概観を得るために、HTTPリクエストコレクションを探ることができ、合成された要求のほんの一握りの選択です。

HTTPリクエストコレクションからリクエストを開く

  1. エディターの右上隅にある Open HTTP Requests Collection icon をクリックするか、メインメニューでツール | HTTP クライアント | HTTP リクエスト集を開くを選択します。

  2. リストから、開きたいHTTP 要求コレクションを選択します。

    Open HTTP Requests Collection popup

HTTPリクエストの作成をスピードアップするには、ライブテンプレートを使用してください。ex: gtrは単純なGETリクエストに展開されます。mptrmultipart/form-data POSTリクエストに展開されます。

cURLリクエストの変換

cURL(英語)リクエストを使用している場合は、エディターでのHTTPリクエスト形式に変換できます。

  • cURLリクエストを .http ファイルに貼り付けると、その場で変換されます。

  • あるいは、メインメニューからツール | HTTP クライアント | cURL を HTTP リクエストに変換するを選択します。開いたダイアログで、cURLリクエストを入力します。

    the Convert cURL to HTTP Request dialog

    変換をクリックすると、変換されたリクエストを含む新しいスクラッチファイルが作成されてエディターに表示されます。

リクエストの例を考えてみましょう。

curl 'http://httpbin.org/' -H 'Connection: keep-alive' -H 'Accept: text/html' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9,es;q=0.8'

変換すると、このリクエストは次のようになります。

GET http://httpbin.org/ Connection: keep-alive Accept: text/html Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9,es;q=0.8

以下のcURLオプションがサポートされています。

オプション

説明

-X, --request(英語)

使用するリクエストメソッド。

-H, --header(英語)

リクエストに含めるリクエストヘッダー。

-u, --user(英語)
--basic(英語)
--digest(英語)

要求とともに提供されるユーザーの資格情報、および使用する許可方法。

-d, --data, --data-ascii(英語)
--data-binary(英語)
--data-raw(英語)
--data-urlencode(英語)

POSTリクエストで送信されるデータ。

-F, --form(英語)

POST要求で送信されるマルチパート/フォームデータメッセージ。

--url(英語)

取得するURL(主に設定ファイルでURLを指定するときに使用されます)。

-i, --include(英語)

HTTP応答ヘッダーを出力に含めるかどうかを定義します。

-v, --verbose(英語)

詳細動作モードを有効にします。

-L, --location(英語)

要求されたページが別の場所に移動された場合に要求を再送信することを可能にします。

環境変数を使用する

HTTPリクエストを作成するときは、環境変数を使用してその要素をパラメータ化できます。例:リクエストにホスト名を明示的に指定する代わりに、{{host}} プレースホルダを使用できます。次に、目的のホスト定義を保持しているプロジェクト内に一連の環境変数を定義します。リクエストを実行するときは、定義された環境、たとえばリクエストを送信するホストなどを選択します。

Run request: select environment

選択された環境は、要求を構造を見るしてブラウザで要求を開くとき、または実行/デバッグ構成の作成のときにデフォルトの環境として使用されます。

変数の名前は任意ですが、文字、数字、アンダースコア記号 _、またはハイフン記号 -のみを含めることができます。変数は、以下の要求コンポーネントの値を保持できます。

  • ホスト、ポート、およびパスを要求する

  • クエリパラメータまたは値

  • ヘッダー値

  • 要求本体の内部に直接提供されるか、外部ファイルで提供される任意の値。

環境変数を定義する

環境変数は環境ファイルで定義されます。

  1. プロジェクト内で、次のファイルを作成します。

    • rest-client.env.json (または http-client.env.json)は、共通の変数を含む通常のファイルであり、プロジェクトとともに配布されることを意図しています。

    • rest-client.private.env.json (または http-client.private.env.json)は、パスワード、トークン、証明書、およびその他の機密情報を含む可能性のあるプライベートファイルです。このファイルは、デフォルトでVCS無視ファイルのリストに追加されます。 http-client.private.env.json ファイルで指定された変数の値は、環境ファイルの値をオーバーライドします。

  2. 作成したファイルに目的の変数を入力します。

    次のサンプル http-client.env.json 環境ファイルは、開発本番の 2つの環境を定義しています。追加の http-client.private.env.json ファイルは機密認証データを保持します。

    { "development": { "host": "localhost", "id-value": 12345, "username": "", "password": "", "my-var": "my-dev-value" }, "production": { "host": "example.com", "id-value": 6789, "username": "", "password": "", "my-var": "my-prod-value" } }
    { "development": { "username": "dev-user", "password": "dev-password" }, "production": { "username": "user", "password": "password" } }

    HTTPリクエストの例は次のとおりです。

    GET http://{{host}}/api/json/get?id={{id-value}}&key={{unresolved_var}} Authorization: Basic {{username}} {{password}} Content-Type: application/json { "key": {{my-var}} }

    上記の要求を実行すると、PhpStormは定義された実行環境の中から選択を提供します。

    run_request_in_env

    選択に応じて、結果の要求は次のいずれかになります。

    GET http://localhost/api/json/get?id=12345&key={{unresolved_var}} Authorization: Basic dev-user dev-password Content-Type: application/json { "key": "my-dev-value" }
    GET http://example.com/api/json/get?id=6789&key={{unresolved_var}} Authorization: Basic user password Content-Type: application/json { "key": "my-prod-value" }

    {{unresolved-var}} 変数は環境ファイルで定義されていないため、PhpStormはどちらの場合も要求の一部として {{unresolved-var}} テキストを送信します。

応答ハンドラスクリプトを使用する

応答ハンドラスクリプトを使用すると、受信したHTTP応答にプログラム的に対応できます。これらのスクリプトを使用すると、受信したデータを自動的に処理し、指定した条件に対して検証することができます。応答ハンドラスクリプトはHTTP要求ファイル内の要求の一部として提供され、応答が受信されるとすぐに実行されます。応答処理の例を表示するには、auth-requestsまたはtest-responses 要求コレクションを開きます。

応答ハンドラスクリプトは、その場で、または外部ファイルを参照して、要求に挿入できます。

スクリプトをリクエストに挿入する

  • その場でスクリプトを挿入するには、その前に > を付けて {% %}で囲みます。

    GET host/api/test > {% // Response Handler Script ... %}
  • 外部ファイルからスクリプトを挿入するには、>を先頭に追加します。

    GET host/api/test > scripts/my-script.js

レスポンスハンドラのスクリプトはJavaScript ECMAScript 5.1(英語)で書かれています。コーディング支援とドキュメントはバンドルされた HTTP Response Handler ライブラリーによって処理されます。インプレーススクリプトの場合、この機能は自動的に有効になります。外部スクリプトの場合は、手動で有効にする必要があります。

JavaScriptファイルでHTTP レスポンス・ハンドラーのコーディング支援を有効にする

  1. スクリプトファイルをエディターで開きます。

  2. コンテキストメニューでJavaScript ライブラリーの使用 | HTTP レスポンス・ハンドラーを選択します。

HTTP Response Handler ライブラリーは、レスポンスハンドラスクリプトを作成するために使用される2つのオブジェクトを公開します。

  • client オブジェクトはセッションメタデータを格納します。これはスクリプト内で変更できます。 client 状態はPhpStormを閉じるまで保持されます。 variable_name として client.global に保存されたすべての変数は、{{variable_name}}として後続のHTTPリクエストにアクセス可能です。

  • response は受信したレスポンスに関する情報を保持しています:そのコンテンツタイプ、ステータス、レスポンスボディなど。

エディターでHTTP レスポンス・ハンドラーライブラリーを開くには、ライブラリーオブジェクトにキャレットを置き、Ctrl+Bを押します。

応答ハンドラスクリプトにテストを含めることができます。これにより、HTTPクライアントをテストフレームワークとして使用できます。テストを作成するには、client.test(testName, function) メソッドを呼び出します。テスト内では、client.assert(condition, message) メソッドを呼び出すことによって条件をアサートすることができます。

GET https://httpbin.org/status/200 > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); %}

HTTPリクエストの実行

  1. 独自のWebサービスをテストしようとしているなら、そのサービスがデプロイされ実行されていることを確認してください。

  2. 以下のいずれかを行います。

    • エディターで、実行したいリクエストの横にあるガターの中の実行 The Run button をクリックします。リストから<リクエスト名>を実行を選択します。

    • エディターで、リクエストのコンテキストメニューから<リクエスト名>を実行を選択します。

    • 実行したい要求にキャレットを置き、Alt+Enter を押して<リクエスト名>を実行 インテンションアクションを選択します。

    要求が実行されると、PhpStormは自動的に専用の一時HTTPリクエストの実行/デバッグ設定を作成します。必要に応じて永続的な実行/デバッグ構成として保存してくださいができます。

ブラウザでリクエストを開く

設定/環境設定ダイアログ(Ctrl+Alt+S)のWeb ブラウザーページで指定されたブラウザでHTTP要求を開くことができます。システムのデフォルトブラウザまたは選択したものを選択してください。

以下のいずれかを行います。

  • キャレットを要求の1行目に置き、メインメニューから表示 | ソースに移動を選択するか、Ctrl+B または F4を押します。

  • Ctrl+Click 要求行:

    open_request_in_browser

HTTPリクエストの実行/デバッグ設定の操作

HTTP 要求タイプの実行構成を使用してHTTP要求を実行できます。実行構成では、いつでも要求を実行したり、サービスツールウィンドウに追加したり、複合構成にすることができます

詳細は実行/デバッグ構成の操作を参照ください。

HTTPリクエストの実行/デバッグ設定を作成する

  1. 以下のいずれかを行います。

    • エディターで、実行/デバッグ構成を作成したい要求のコンテキストメニューから<設定名>を作成するを選択します。

      Create a run configuration from the editor
    • または、メインメニューから実行 | 構成の編集を選択してから Add icon をクリックし、リストからHTTP 要求を選択します。

      Add new HTTP Request Run Configuration
  2. 実行/デバッグ構成パラメーターを指定します。

    • 環境リストで、要求で使用される環境変数のセットを定義する環境を選択します。

    • ファイルフィールドに、HTTPリクエストファイルへのパスを指定します。パスを手動で入力し、入力時にパス補完 Ctrl+Space を使用するか、Open from disk をクリックして、表示されるダイアログで必要なフォルダーを選択できます。

    • リクエストファイルに複数のリクエストが含まれている場合は、リクエストリストで実行するリクエストのインデックスを選択します。

エディターからHTTPリクエストを実行すると、PhpStormはリクエストパラメータで一時的な実行/デバッグ設定を自動的に作成します。一時的な実行/デバッグ構成は、永続的な実行/デバッグ構成と同じように機能します。実行/デバッグ構成ダイアログを使用してその設定を変更することができ、オプションとしてそれを永続的なものとして保存することができます。

一時的なHTTPリクエストの実行/デバッグ設定を保存する

以下のいずれかを行います。

  • 実行/デバッグ構成セレクターで、<設定名>を保存を選択します。

  • 実行/デバッグ構成ダイアログで、設定を選択して保存アイコン(Save button)をクリックします。

  • エディターで、実行された要求のコンテキストメニューから<設定名>を保存を選択します。

    Save a temporary run configuration

実行/デバッグ構成を使用して要求を実行する

以下のいずれかを行います。

  • 実行/デバッグ構成セレクターで、希望の実行設定を選択します。次に、メインツールバーの実行アイコン(Run button)をクリックするか、Shift+F10を押します。

  • Shift+Alt+F10を押し、リストから希望の実行設定を選択して、Enterを押します。

    Run configuration popup

Webサービスからの応答を表示する

HTTPリクエストを実行すると、PhpStormは自動的に .idea/httpRequests/ ディレクトリーの別のファイルにレスポンスを保存します。最近保存された50件の応答を表示し、要求履歴を使用して対応するファイルに移動することができます。リクエストがスクラッチファイルから実行された場合、そのレスポンス出力へのリンクも元のリクエストに追加されます。

HTTP Response

応答によって受信されたCookieは、.idea/httpRequests/ ディレクトリーの専用 http-client.cookies ファイルに自動的に保存されます。保存できるクッキーの数は300に制限されています。有効期限に達していない限り、Cookieの名前は、Cookieに指定されたドメインパスに一致するURLへの後続の各要求に自動的に含まれます。

the http-cookies file

受け取った回答を見る

  1. 応答が受信されるとすぐに自動的に開く実行ツール・ウィンドウに切り替えます。

  2. デフォルトでは、サーバー応答はcontent-type(英語)フィールドを介して要求ヘッダーで指定された形式で表示されます。応答を別の形式に変換するには、HTML として表示 The View as HTML buttonXML として表示 The View as XML button、またはJSON として表示 The View as JSON buttonをクリックします。

  3. 応答ハンドラスクリプトの一部として実行されたテストの結果がある場合は、それが実行ツールウィンドウのテストタブに表示されます。

    The Tests tab of the Run tool window

エディターで応答ファイルを開く

  • 開きたい応答へのリンクにキャレットを置き、メインメニューから表示 | ソースに移動を選択するか、Ctrl+B または F4を押します。

  • Ctrl+Click 応答行:

    open_response

スクラッチファイル内のレスポンスを比較する

スクラッチファイルから要求が実行されると、応答出力ファイルへのリンクが元の要求に追加されます。

以下のいずれかを行います。

  • 応答ファイルへのリンクにキャレットを置きます。 Alt+Enter を押して<レスポンス名>と比較 インテンションアクションを選択します。

  • 左側のガターの Compare responses アイコンをクリックして、リストから<レスポンス名>と比較を選択します。

    compare_responses_menu

リクエスト履歴内のレスポンスを比較する

物理ファイルから要求が実行されると、応答出力へのリンクが要求履歴に追加されます。

  1. 応答ファイルへのリンクにキャレットを置きます。メインメニューから表示 | ソースに移動を選択するか、Ctrl+B または F4 を押してこのファイルを新しいエディタータブで開きます。

  2. メインメニューから表示 | 比較...を選択するか、または Ctrl+Dを押します。PhpStormは、httpRequests フォルダーから応答ファイルを開くように促します。

  3. 現在のファイルと比較したい応答ファイルを選択して、「 開く」をクリックします。

2つの応答ファイルが差分ビューアーで開かれ、それらの内容を比較できます。

compare_responses_diff

リクエスト履歴を表示する

PhpStormは、最近実行された50のリクエストを自動的に http-requests-log.http ファイルに保存します。このファイルは、プロジェクトレベルで .idea/httpRequests/ ディレクトリーに保存されています。リクエスト履歴を使用して、特定のレスポンスにすばやく移動したり、リクエストを再発行したりできます。要求履歴から要求が再発行された場合は、その実行情報と応答出力へのリンクが要求履歴ファイルの先頭に追加されます。

ps_requests_history

オープン要求履歴

エディターの右上隅にある Show HTTP Requests History をクリックするか、メインメニューからツール | HTTP クライアント | HTTP リクエスト・ヒストリーの表示を選択します。

プロキシ設定の構成

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、外観 & 振る舞いシステム設定を選択してから、HTTP プロキシーを選択します。

  2. 開いたプロキシダイアログで、手動プロキシー構成を選択して以下を指定します。

    • ホスト名およびポート番号フィールドにプロキシのホスト名とポート番号を入力します。

    • 認証を有効にするには、プロキシー認証チェックボックスを選択して、対応するフィールドにユーザー名とパスワードを入力します。

最終更新日: 2019年9月23日

関連ページ:

エディターの基本

PhpStormエディターは、コードの作成、読み取り、変更に使用するIDEの主要部分です。エディターは次の領域で構成されています。スクロールバーは現在のファイルのエラーと警告を表示します。パンくずリストは、現在のファイルのコード内を移動できます。左のガターは行番号と注釈を示しています。タブには、現在...

色とフォントの設定

開発者として、エディターのソースコード、検索結果、デバッガ情報、コンソールの入出力など、多くのテキストリソースを使用します。色とフォントスタイルは、このテキストの書式設定に使用され、一目で理解しやすくなります。PhpStormは推奨する色とフォントを定義するカラースキームを使います。配色は、ウィンド...

コードとパスの自動補完

このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。基本補完:基本コード補完を使用すると、可視性の範囲内でクラス、メソッド、およびキーワードの名前を完成させることができます。コード補完を起動すると、PhpStormは...

コードリファレンス情報

定義:PhpStormでは、タグ、クラス、フィールド、メソッド、関数などのシンボルがプロジェクトでどのように定義されているかを確認することができます。この目的のために、IDEにはクイック定義ポップアップがあります。シンボルの定義を表示するには、エディターでシンボルを選択し、 を押します(またはをクリ...

ソースファイルの構造の表示

構造ツールウィンドウ または構造ポップアップ を使用して、エディターで現在開かれているファイルの構造を調べることができます。デフォルトでは、PhpStormは現在のファイルのすべてのクラス、メソッド、およびその他の要素を表示します。表示したい要素を切り替えるには、構造ツールウィンドウのツールバーの...

言語インジェクション

言語インジェクションを使用すると、コードに埋め込まれた他の言語のコードを操作できます。言語(HTML、CSS、XML、RegExpなど)を文字列リテラルに挿入すると、そのリテラルを編集するための包括的なコード支援が得られます。言語インジェクションを開始する前に、IntelliLangプラグインが有効...