# Response Processor
WARNING
This feature is available as part of vREST NG Pro/Enterprise version.
If you want to pre-process the API response before the validation of your test case/hook then vREST provides some built-in response processors and also allows you to write your own custom response processor by using the utility methods.
First, we will see the built-in response processors, and then we will look at how you may write a custom response processor.
vREST provides the following builtin response processors:
# base64
This response processor converts the API response into a base64 string. This processor might be useful in validating the binary responses by their base64 equivalent.
# blank
This response processor always returns a blank string irrespective of the API response. It is useful in ignoring a large binary/textual response.
# checksum
This response processor converts the API response into an md5 hash string. This processor is also useful in validating the binary responses by their checksum.
# csv2json
If the API response is CSV content then this response processor converts that CSV content into JSON format.
# xml2json
If the API response is XML content then this response processor converts that XML content into JSON format. This makes validating the XML responses a lot easier.
# xls2json
If the API response is an XLS file then this response processor converts that XLS file into JSON format for further validation.
# Custom Response Processor
You may even write a custom response processor. Let's take some practical examples to understand its utility.
# Use case 1: Decode encrypted responses
Suppose your server returns a JSON response but in base64 encoded format. So, in this situation, you may write a custom utility method that will decode the API response first and you may easily validate your API response after that.
Suppose our sample API returns the following encoded API response as shown in the screenshot. For demonstration purposes, the JSON response is only base64 encoded.
Now let's write a custom utility method, which decodes this base64 encoded string into JSON content again. We have specified the utility method named decodeBase64
as shown below:
Let's use this utility method in our test case/hook to decode the API response. Just specify the utility method name in the Response Processor
field. You can see that now vREST is showing the actual response as a JSON string. Which you may easily validate using JSON response validation.
# Use case 2: Infer HTML response as XML
Suppose, if your Test case/Hook is returning an HTML response. And you want to extract some value from the HTML response, but Variables
>> Extract variables from response
section only allows you to extract from the JSON or XML formats and via utility methods, you may extract information from any kind of response but that will require you to write some code. Using response processor, you may instruct vREST to treat the HTML response as XML. And then you will be able to use the XPath expressions to extract any information from the HTML response.
For this, you will need to write a custom utility method, which will instrct vREST to treat the response as XML. We may specify the utility method named as inferAsXML
as shown below:
(function(){
var aFunction = function(response, headers){
return {content: response.content, type: "xml" };
};
return aFunction;
})();
Then just specify this utility method name inferAsXML
in the Response Processor
field of the desired test case or hook.