Vladimir Dyuzhev
MockMotor Creator
Mocking Plain Text Services
Not only JSON, XML or SOAP mock responses. MockMotor can produce plain text, too.
Most of the world services exchange either JSON, SOAP or plain XML. Some, however, pass around different payload types.
MockMotor can read and produce many of those other content types, too.
Reading and Generating Plain Text
With JS
When a JS mock response cannot parse the incoming request as a JSON, it considers the whole request a text.
The response script can then read the content of that text from the request
(a.k.a. input
) variable and use it to produce a response.
For example, here is a simple HelloWorld response, replying Hello, X
where X is sent in as the plain text request:
The request
variable contains the whole name as it was sent in (say, John Doe
), and the response contains Hello, John Doe
as plain text, too,
with an appropriate text/plain
content type.
With XQ
XQ is oriented to work with XML. It can, however, produce plain text, too.
When an XQ mock response cannot parse the incoming request as XML, it considers the whole request a text.
The response script can then read the content of that text from the $request
(a.k.a. $input
) variable and use it to produce a response.
Here is a version of HelloWorld response from the previous section, but built using XQ. It also replies Hello, X
where X is sent in as the plain text request:
The request
variable contains the whole name as it was sent in (say, John Doe
). XQ has to use string-oriented functions to concatenate strings, hence
the call to concat()
. The response contains Hello, John Doe
as plain text.
Example: CSV Service
For building more complex textual responses, I suggest to use JS responses and accumulate the result in the output
variable.
For example, here is a very basic CSV (comma-separated value) response that builds its response payload programmatically:
The output
(a.k.a. response
) variable contains the response payload. The response builds this payload from data provided in the mockmeta
variable, but can
also build it from the accounts
, or perform some computations and add the results to CSV.
The end result is plain text content in the output
variable. Since the content type is set to plain/csv
, the client can read the response payload as CSV data.