某些场景中,咱们可能须要根据接口的入参规则,加入适当的逻辑处理后再返回数据。一个简单的场景就是登陆场景,须要根据用户名密码,判断是否登陆成功。再或者,咱们须要根据产品ID动态返回产品信息,等等。如今fastmock提供了这种场景的解决方案,下图中展现了如何若是在mock规则中获取请求中的各个部分的数据而后再返回,其中包括了四种数据。javascript
如:上图中的对应接口录入规则为java
{ "code": "0000", "data": { "token": function({_req, Mock}) { return _req.headers.token; }, "id": function({_req, Mock}) { return _req.params.id; }, "name": function({_req, Mock}) { return _req.body.name; }, "age": function({_req, Mock}) { return _req.query.age; } }, "desc": "成功" }
再举一个验证登陆信息的例子:json
{ "code": "0000", "data": { "verifySuccess": function({_req, Mock}) { let body = _req.body; return body.username === 'admin' && body.password === '123456'; }, "userInfo": function({_req, Mock}) { let body = _req.body; if (body.username === 'admin' && body.password === '123456') { return Mock.mock({ username: "admin", email: "@email", address: "@address" }); } else { return null; } }, }, "desc": "成功" }
上面的规则中定义了登陆接口只有请求体{username: 'admin', password: '123456'}时,才会返回用户信息,且带有mock生成的随机邮箱地址和居住地址restful