黄子涵

5.1.2 写 mock 文件

mock 文件支持两种请求:

  • get/api/xxx
  • post/api/<id>/123

<id>代表链接路由表达式,如/api/:id/123,id 值会发生改变。具体的文件结构如下所示。

mock
|--get
|--api_xxx.js
post
|--api_@id_xxx.js

以大觅项目中的“猜你喜欢接口”api_list_guesslike.js 为例,此接口的命名:api 代表接口,list 代表所属页面,这里是指列表页面,最后的 guesslike 代表接口名称为“猜你喜欢接口”。具体代码如示例
1 所示 。

示例1

// 猜你喜欢接口
module.exports = function (param) {
let paid = parseInt(param.body.itemTypeId);
if(paid == 0) {
return {
"success": "string",
"errorCode": "string",
"msg": "",
"data|1-4": [
{
"id": '@string("number",2)',
"itemName": '@csentence(5)',
"imgUrl": 'https//pimg.dmcdn.cn/perform/project/1381/138121_n.jpg',
"areaId": '@string("number",3)',
"areaName": '@province',
"address": '@county(true)',
"startDate": '@datetime("yyyy-MM-dd")',
"endDate": '@datetime("yyyy-MM-dd")',
"minPrice": '@integer(60, 100)'
}
]
}
} else if(paid == 1) {
return {
"success": "string",
"errorCode": "string",
"msg": "",
"data|1-4": [
{
"id": '@string("number",2)',
"itemName": '@csentence(10)',
"imgUrl": 'https//pimg.dmcdn.cn/perform/project/1381/138121_n.jpg',
"areaId": '@string("number",3)',
"areaName": '@province',
"address": '@county(true)',
"startDate": '@datetime("yyyy-MM-dd")',
"endDate": '@datetime("yyyy-MM-dd")',
"minPrice": '@integer(60, 100)'
}
]
}
}else {
return {
"success": "string",
"errorCode": "string",
"msg": "",
"data": {
"currentPage": param,
"pageCount": 1,
"pageSize": 10,
"total": 6
}
}
}
}

此接口的模拟要根据项目前期由前后端人员共同协商出的 API-Schema(接口定义文档)实现,先来看一下接口定义文档中的“猜你喜欢接口” 定义,如下图所示。

image

查看了接口定义文档的介绍,再来看示例 1,就很容易理解模拟的接口了。

posted @   黄子涵  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示