Variables

Variables are available in response scripts and can be used to modify the response payload or its other properties based on data.

There are a few sources of variable values:

  • Request & Response
  • HTTP & REST Properties
  • Accounts
  • Metadata

    Use in Match Options Script

    A match script can use a few variables to narrow its matching.

    Variable Potential Use
    request a.k.a. input Check for specific values in the payload body, e.g. “only match if LOB is TV”
    http Check for required headers, e.g. “only match if Authentication header is set”
    rest Check for URI values, e.g. “only match if URI variable flow equals add
    account and accounts Check for account properties values, e.g. “only match if the selected account is marked for this flow”
    meta Random match, once in a blue moon, to simulate occasional random errors

    Note that if the Match Options Script uses account or accounts variable then the accounts selection is done before executing the matcher script reverting the order that is seen in UI.

    Use in Accounts Selection

    Accounts can be selected by matching their property values against values from the request. Any account that has matching properties is selected for this response execution.

    Variable Potential Use
    request a.k.a. input Compare values from the payload with those in the accounts
    http Compare values from HTTP headers or query string with those in the accounts
    rest Compare URI values with those in the accounts
    meta Can’t really imagine why would someone use meta in account selection :-) but it is possible nonetheless!

    Use in Generating Response Payload

    Almost all variables (except response a.k.a. output) can be used to generate the response. The account/accounts variable is especially useful for producing data-driven response, where the values are specific to this particular mock account or a set of accounts.

    Variable Potential Use
    request a.k.a. input Populate some of the fields from the request, e.g. request timestamp or transaction ID
    http Generate an error response if Authentication header is not set
    rest Consult HTTP Method to provide different status code (Created,Updated, etc)
    account and accounts Populate data-driven fields of the response or generate variable list of nested objects in the response
    meta Use random GUID value for generating transaction ID

    Use in HTTP Status

    The HTTP status field can contain a script that will set the response HTTP status code based on variables data.

    Variable Potential Use
    request a.k.a. input, http, rest, account/accounts, meta Choose HTTP status code based on input or random values
    response a.k.a. output Choose HTTP status code based on generated output, e.g. if a fault is generated then provide HTTP 500

    Use in Delay

    The delay can be a script that sets the response time based on variables data.

    Variable Potential Use
    request a.k.a. input, http, rest, account/accounts, meta Set response time based on the number of matched accounts (to simulate longer processing of large accounts)
    response a.k.a. output Set delay based on the response payload; i.e. a fault is quick and the successful response is slow

    Use in Updating Accounts

    The selected accounts’ properties can be updated using scripts.

    Variable Potential Use
    request a.k.a. input, http, rest, account/accounts, meta Update properties based on request values
    response a.k.a. output Update properties based on values generated in the response

    Use in Save Exchange

    The complete request/response exchange can be saved for extracting under a dedicated URL. The exchange key can be generated using the variables.

    Variable Potential Use
    request a.k.a. input, http, rest, account/accounts, meta Generate key from request values (e.g. account number)
    response a.k.a. output Generate key from response values (e.g. generated transaction ID)