このトピックでは、REST データ プロトコルの要求/応答ペアの形式について説明します。
要求
要求ファイルには、有効な HTTP ヘッダが含まれている必要があります。 URL はヘッダの最初の行です。 その他のヘッダ行はオプションです。
REST データ プロトコル ハンドラは、すべての HTTP メソッド/動詞(GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、および PATCH)をサポートします。
URL 行の形式は次のとおりです。
<メソッド><空白文字><REST API パス><空白><HTTP バージョン>
以下に例を示します。
PUT /rest-example/control/users/save HTTP/1.1
要求にボディが含まれる場合は、空白行を使用してボディをヘッダから離します。
以下の例では、ボディが含まれる要求を JSON 形式で示します。
PUT /rest-example/control/users/save HTTP/1.1 accept: application/json content-Type: application/json Connection: Keep-Alive User-Agent: LISA
{
"user": {
"emailAddress": "test@test.com",
"firstName": "first-9",
"lastName": "last-9",
"password": "aaaaaaaa",
"username": "dmxxx-009"
}
}
JSON または XML ボディは、単一の行にまとめることができます。
{ "user": { "emailAddress": "test@test.com","firstName": "first-9", "lastName": "last-9", "password": "aaaaaaaa", "username": "dmxxx-009" }}
応答
応答ファイルには、HTTP 応答コードが含まれます。 このファイルには、ヘッダおよびボディを含めることができます。 応答コードは、ファイル内の最初の行である必要があります。形式は以下のとおりです。
<HTTP バージョン><空白文字><HTTP 応答コード>
以下に、ボディがある応答の例を示します。
HTTP/1.1 200
"user":{"emailAddress":"lisa.simpson@itko.com","firstName":"lisa",
"lastName":"simpson","password":"60fAFoq+W0R4HrLgsfPodkWRw9I=",
"phoneNumber":"","username":"lisa_simpson"}}
応答に応答コード行が含まれない場合、応答コードはデフォルトで 200 (OK)になります。
仮想サービス イメージ レコーダおよび[要求/応答ペアからの仮想サービス]インターフェースには、REST データ プロトコルが作成したルールを確認および変更できるページが含まれます。
以下の図は、仮想サービス イメージ レコーダのウィンドウを示しています。
![[REST データ プロトコル]画面のスクリーン キャプチャ。](o2258624.png)
上部ペイン([URI ルール])には、ルールが表示されます。 ルールを選択すると、下部ペイン([一致するトラフィックのサンプル])にルールに一致するトラフィックのサンプルが表示されます。 表示される行の最大数を設定するには、lisa.properties ファイル内の lisa.protocol.rest.editor.observedtraffic.max プロパティを設定します。
ルールに一致しない HTTP 要求のリストを表示するには、[一致しないトラフィック]をクリックします。 ルールが収集されたトラフィックすべてに一致する場合、このリストは空です。 表示される要求の最大数を設定するには、lisa.properties ファイル内の lisa.protocol.rest.editor.unmatchedtraffic.max プロパティを設定します。
[URI ルール]ペインでは、ルールを追加、更新、並べ替え、および削除できます。
![VSE の REST データ プロトコルの[一致しないトラフィック]ウィンドウ](o2274021.png)
ルール内のパラメータをもっと意味のある名前に置換できます。 以下に例を示します。
GET /Service/rest/customer/{customerid}/order/{orderid}
同じ操作に一致する複数のルールを作成できます。 ルールは表示された順に照合されます。 そのため、リストの下の位置にあるルールが一致すると予想しているときに、リストの上の位置にあるルールが一致する可能性があります。 順序を変更するには、並べ替えボタンを使用します。
ルールを削除する場合は、[一致しないトラフィック]をクリックして、キャプチャされたトラフィックに対するルールを削除した場合の影響を確認します。
以下の設定プロパティの値を変更するには、[プロパティ]をクリックします。
[プロパティ]をクリックすることにより、トラフィックの再分析を実行できます。[プロパティ]ページが表示されたら、値を変更せずに[OK]をクリックします。 たとえば、スクリプタブル データ プロトコルと REST データ プロトコルをチェーン化した後、これを実行する場合があります。
この数を超えると変動が大きすぎるのでルールを生成する必要があると認識される、トークンに対して許可される変更の最大数を定義します。
URI を「/」文字で区切られた「トークン」のリストと考えます。 たとえば、「GET /rest/user/1234」という URI には以下のトークンが含まれます。
デフォルト値を変更するには、lisa.properties ファイル内の lisa.protocol.rest.maxChanges プロパティを設定します。
REST データ プロトコルが変数トークンの検索を開始する URL 内の位置を定義します。
開始位置は、URI を構成しているトークンのリスト内のトークンのインデックスです。 たとえば、以下の URI があるとします。
GET /service/rest/customers"
「GET」は位置 0 にあります。また、「customers」は位置 3 にあります。
デフォルト値を変更するには、lisa.properties ファイル内の lisa.protocol.rest.startPosition プロパティを設定します。
HTTP 要求のリソース識別子を検出するには、REST データ プロトコルが使用する正規表現文字列を定義します。 デフォルト値を変更するには、lisa.properties ファイル内の lisa.protocol.rest.idPattern プロパティを設定します。
REST データ プロトコルがルールのパラメータに使用するプレフィックスを定義します。
この設定の目的は、ユーザは変数であることを知っていても、アナライザが自動検出しない可能性がある特定のパターンに従うトークンをアナライザが識別できるように支援することです。
たとえば、以下の URI があるとします。
GET /rest/user/person-1234-dev
ユーザは、person-nnnn-nnn という形式のユーザ ID が必ず「user」の後に続くことを知っています。 この場合、このパターンを直接検出する正規表現を定義できます。 この例では、正規表現は以下のとおりです。
person-[0-9]{4}-[a-z]{3}
デフォルト値を変更するには、lisa.properties ファイル内の lisa.protocol.rest.parameterBaseName プロパティを設定します。
これらのプロパティの 1 つ以上の値を変更した場合、このデータ プロトコルは記録されたトラフィックを再分析します。
以下の図は、[アナライザ プロパティ]ウィンドウを示しています。
![VSE の REST データ プロトコルの[アナライザ プロパティ]ウィンドウ](o2274022.png)
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|