JetBrains Rider 2020.1ヘルプ

エディター構文でのHTTPリクエストの調査

JetBrains RiderコードエディターでHTTPリクエストを作成するには、次の一般的な構文を使用します。

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

エディターでのHTTPリクエスト形式では、次の例に示すように、追加の機能が導入されています。HTTPリクエストの処理の詳細については、「JetBrains RiderコードエディターのHTTPクライアント」を参照してください。

HTTPリクエストでコメントを使用する

  • リクエスト内で、// または # を使用して任意の行を開始して、コメント行にします。

    // A basic request GET http://example.com/a/

GETリクエストに短い形式を使用する

  • GETリクエストの場合は、リクエストメソッドを省略してURIのみを指定できます。

    // A basic request http://example.com/a/

単一のファイルで複数のリクエストを作成する

  1. リクエストの終わりには、### セパレータをそに入力します。

    // A basic request http://example.com/a/ ###
  2. セパレータに別のリクエストを作成します。

    // A basic request http://example.com/a/ ### // A second request using the GET method http://example.com:8080/api/html/get?id=123&value=content

長いリクエストをいくつかの行に分割する

  • すべてのクエリ文字列行をインデントしますが、最初の行はインデントします。

    // Using line breaks with indent GET http://example.com:8080 /api /html /get ?id=123 &value=content

認証を使用してWebサービスにアクセスする

  • アクセスしているWebサービスに応じて、基本(英語)またはダイジェスト(英語) 許可ヘッダーを提供します。

    // Basic authentication GET http://example.com Authorization: Basic username password ### // Digest authentication GET http://example.com Authorization: Digest username password

要求メッセージ本文を提供する

リクエストの中に空白行を追加し、次のいずれかを実行します。

  • リクエスト本文を適切な場所に入力します。

    // The request body is provided in place POST http://example.com:8080/api/html/post HTTP/1.1 Content-Type: application/json Cookie: key=first-value { "key" : "value", "list": [1, 2, 3] }

    コンテンツタイプヘッダーフィールドの値をJetBrains Riderサポートされている言語のいずれかに設定すると、対応する言語フラグメントがHTTPリクエストメッセージ本文に自動挿入されます。コンテンツタイプが指定されていない場合は、言語フラグメントを手動で挿入できます。詳しくは、言語インジェクションを参照してください。

    要求本体をファイルから読み取るには、< シンボルの後にファイルのパスを入力します。

    // The request body is read from a file POST http://example.com:8080/api/html/post Content-Type: application/json < ./input.json

multipart / form-dataコンテンツタイプを使用する

  • 要求のコンテンツタイプマルチパート/フォームデータに設定します。マルチパート/フォームデータメッセージの一部としてファイルを送信するには、コンテンツ処理ヘッダーに filename パラメータを含めます。

    POST http://example.com/api/upload HTTP/1.1 Content-Type: multipart/form-data; boundary=boundary --boundary Content-Disposition: form-data; name="first"; filename="input.txt" // The 'input.txt' file will be uploaded < ./input.txt --boundary Content-Disposition: form-data; name="second"; filename="input-second.txt" // A temporary 'input-second.txt' file with the 'Text' content will be created and uploaded Text --boundary Content-Disposition: form-data; name="third"; // The 'input.txt' file contents will be sent as plain text. < ./input.txt --boundary--

次のリダイレクトを有効または無効にする

アクセスしているWebサービスに応じて、HTTPリクエストがリダイレクトに従うかどうかを選択します。リダイレクトに従うと、リダイレクトされたページ応答が返されます。それ以外の場合は、実際のリダイレクト応答ヘッダー(301302など)が返されます。

  • リクエストの前に、@no-redirect タグ付きのコメント行を追加します。

    // @no-redirect example.com/status/301

リクエスト履歴へのリクエストの保存を有効または無効にする

必要に応じて、リクエストをリクエスト履歴に保存しないようにすることができます。これは、リクエストに機密データが含まれていてログに記録したくない場合に役立ちます。

  • リクエストの前に、@no-log タグ付きのコメント行を追加します。

    // @no-log GET example.com/api

受信したCookieをCookie jarに保存することを有効または無効にする

必要に応じて、受け取ったクッキーをクッキーjarに保存しないようにすることができます。このようにして、手動で http-client.cookies ファイルから不要なクッキーを削除することを避けるでしょう。

  • リクエストの前に、@no-cookie-jar タグ付きのコメント行を追加します。

    // @no-cookie-jar GET example.com/api

変数を使用する

HTTPリクエストを作成するとき、variablesを使用してその要素をパラメーター化できます。変数は、リクエストのホスト、ポート、およびパスの値、クエリパラメーターまたは値、ヘッダー値、またはリクエスト本文内または外部ファイルで使用される任意の値を保持できます。

リクエスト内に変数を提供する

  • 変数を {{variable}}として二重波括弧で囲みます。

変数の名前には、文字、数字、アンダースコア記号 _、またはハイフン記号 -のみを含めることができます。変数の値は次のいずれかです。

  • 環境変数によって環境ごとに明示的に提供されます

  • $uuid , $timestampおよび $randomInt の事前定義された動的変数によって動的に生成されます

  • client.global.set メソッドを使用して、応答ハンドラースクリプトでプログラムによって定義されます。

環境変数

環境変数を使用すると、プロジェクト内に一連の環境定義を保存できます。例:リクエストでホスト名を明示的に指定する代わりに、{{host}} 変数を作成して使用できます。リクエストを実行すると、定義済みの環境から選択して特定のホストに送信できます。

Run request: select environment

選択した環境は、リクエストの構造を見るブラウザでのリクエストのオープン、リクエスト実行、および実行/デバッグ構成の作成の場合、デフォルトの環境として使用されます。

環境変数を定義する

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

  1. リクエストのエディターパネルの上部にある環境ファイルを追加ショートカットリンクをクリックします。

  2. ポップアップメニューから目的の環境タイプを選択します。

    Select Environment popup

    選択に応じて、JetBrains Riderはプロジェクト内に次のファイルを作成します。

    • 標準を選択すると、http-client.env.json ファイルが作成されます。このファイルには、ホスト名、ポート、クエリパラメータなどの一般的な変数を含めることができ、プロジェクトと一緒に配布するためのものです。

    • Privateを選択すると、http-client.private.env.json ファイルが作成されます。このファイルには、パスワード、トークン、証明書、およびその他の機密情報が含まれる場合があります。デフォルトで、VCS無視ファイルのリストに追加されます。 http-client.private.env.json ファイルで指定された変数の値は、通常の環境ファイルの値をオーバーライドします。

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

    次のサンプル 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}} Authorization: Basic {{username}} {{password}} Content-Type: application/json { "key": {{my-var}} }

    上記のリクエストを実行すると、JetBrains Riderで目的の実行環境を選択できます。

    run_request_in_env

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

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

動的変数

動的変数は、リクエストを実行するたびに値を生成します。

  • $uuid : 普遍的に一意の識別子を生成する (UUID-v4)

  • $timestamp : 現在のUNIXタイムスタンプを生成する

  • $randomInt : 0から1000の間のランダムな整数を生成する

例:

GET http://localhost/api/get?id={{$uuid}}
最終更新日: 2020年7月2日

関連ページ:

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

Webサービスをテストするときは、JetBrains Riderコードエディターで直接HTTPリクエストを作成、編集、および実行できます。HTTPリクエストは.httpおよび.restファイルに保存され、アイコンでマークされています。HTTPファイルのサポートには、以下の機能が含まれます。コードの強...

Web言語による言語インジェクション

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

ライブ・テンプレート

このページでは、HTML、JavaScript、TypeScriptなどで機能するWeb固有のテンプレートについて説明します。.NET言語のテンプレートについては、.NET固有のテンプレートで説明しています。ライブテンプレートを使用して、ループ、条件、さまざまな宣言、印刷ステートメントなどの一般的な...

現在のコンテキストをナビゲートする

JetBrains Riderには、現在のコンテキストに基づいてコードをナビゲートするのに役立つ多くの機能があります。つまり、開いている文書とその中のキャレットの位置に従います。現在のドキュメントでキャレットを移動:キャレットを前の単語に移動キャレットを次の単語に移動キャレットを現在の単語の先頭/末...