概要

スイート内で一致するレスポンダーを見つける前に、すべての受信リクエストを検証するには、応答条件適用前出力を利用できます応答条件適用前出力を使用すると、検証ツールを実行し、結果をデータバンク変数に保存して、リクエスト ボディ応答条件またはカスタム応答条件の一部として使用できます。この構成により、無効なリクエストをフィルタリングし、カスタマイズ可能なエラーメッセージで応答できるため、各レスポンダーでロジックを重複させることなく、すべてのリクエストに一貫した検証ルールを簡単に適用できます。

ワークフロー

この例では JSON バリデータを使用していますが、他のバリデータやツールでもプロセスは同じです。

  1. スイートの先頭に、すべての受信リクエストのエントリ ポイントとして機能するレスポンダーを追加します。
  2. 検証ツール (JSON バリデータや GraphQL クエリ バリデータなど) を、レスポンダーの応答条件適用前受信リクエストに連結します。
  3. 検証ツールに Text Data Bank を連結します。完了すると、以下のような設定になっているはずです。
  4. 検証結果を変数に抽出するように Text Data Bank を構成します。以下の例では、validation_error という変数に抽出されています。
  5. メッセージ レスポンダーを開き、[レスポンダー応答条件] > [HTTP メソッド] に移動します。[応答条件の有効化] を有効にし、POST と PUT を選択します。
  6. レスポンダー応答条件] タブで、以下に説明するいずれかの方法を使用して、抽出された検証結果を参照します。
    • 方法 1 - カスタム スクリプト (推奨):
      スクリプトを使用して検証結果を評価するには、[レスポンダー応答条件] > [カスタム (Groovy)] の下に次のようなスクリプトを追加します。
      def correlateOnValidationError(context) {
      	value = context.getValue("Generated Data Source", "validation_error")
      	return value != null && value.length() > 0
      }

    • 方法 2 - XPath:
      XPath を使用して検証結果を評価するには、[レスポンダー応答条件] > [リクエストボディ] > [XPath] の下に次のような XPath を追加します。
      string-length("${validation_error}") > 0

  7. [レスポンス] タブで、リクエストが検証に失敗した場合に次のようなカスタム エラー メッセージを返すように、メッセージ レスポンダーのレスポンダー ペイロードを構成します。
    {
    	"status": 400,
    	"error" : "${validation_error}"
    }
  8. 入力モードを JSON 形式に切り替え、値を上書きするかどうかの確認メッセージが表示されたら [はい] をクリックします。
  9. [オプション] > [リターン ステータス] でリターン ステータス コードを更新します。
  • No labels