The method script executing prior to generation body response. It's designed to provide the possibility to work with Store Arrays. It should be written in JavaScript.
It can be defined in the Method script field of edit method from
Store Arrays is the JSON arrays that could contain up to 100 records or up to 5kb of JSON data. In the method script Store Arrays available as javascript Array object with all corresponding methods. All Store Arrays located in the storeArrays namespace.
For example: To add to Store Array users
Use push method:
storeArrays.users.push(body); // this adds a body JSON to the users Store Array
In method script, you have access to all methods, variables, and namespaces from Templates.
For example, to generate new Id you can use random.uuid()
which is described in Dynamic templating section :
body.id = random.uuid();
storeArrays.users.push(body);
For further usage in the template you can use a sResult variable, by default it empty object - {}
, so you can create custom fields.
const id = random.uuid();
storeArrays.users.push(body);
sResult.id = id;
Then you can use sResult in templates:
Template:
{
"resultId": "{{sResult.id}}"
}
With Store Arrays and method scripts you can easily create a simple CRUD API mocks For example Store Array users will be used.
Method script:
body.id = random.uuid();
storeArrays.users.push(body);
Template:
"{{body}}"
Method script:
const index = storeArrays.users.findIndex(u => u.id === params.id);
if (index > -1) {
body.id = params.id;
storeArrays.users[index] = body;
sResult.success = true;
} else {
sResult.success = false;
sResult.error = 'Record not found';
}
Template:
"{{sResult}}"
Method script:
const index = storeArrays.users.findIndex(u => u.id === params.id);
if (index > -1) {
storeArrays.users.splice(index, 1);
sResult.success = true;
} else {
sResult.success = false;
sResult.error = 'Record not found';
}
Template:
"{{sResult}}"
Method script:
const index = storeArrays.users.findIndex(u => u.id === params.id);
if (index > -1) {
sResult.data = storeArrays.users[index];
sResult.success = true;
} else {
sResult.success = false;
sResult.error = 'Record not found';
}
Template:
"{{sResult}}"
Template:
"{{storeArrays.users}}"
© Fake.rest 2019 - 2020