首页 > 其他分享 >API Mock

API Mock

时间:2025-01-16 08:59:54浏览次数:1  
标签:匹配 API Mock 规则 模板 wx

API Mock

为了让开发者更方便地开发小程序,开发者工具提供了 API Mock 的能力,可以模拟部分 API 的调用结果。

运行环境

  • 下载并安装 1.02.2003062 或以上版本的开发者工具,下载地址

使用方法

基础用法

Mock 的入口在工具调试面板顶部的 Tab,点 + 新建规则

入口

规则示例

基础用法

运行如下代码:

wx.request({
  url: 'https://example.com/ajax?dataType=member',
  dataType: 'json',
  success(res) {
    console.log(res)
  }
})

将命中上面的规则,得到以下数据:

示例

规则优先级

当对一个 API 配置了多个规则时,靠前的规则,会优先匹配,当一条规则被命中,后面的规则将不会再被执行。

可以通过拖拽的形式,改变规则的优先顺序,得到想要的 Mock 结果。

多层级参数匹配

如果匹配的参数类型不是一个基本类型,而是一个 Object 参数下的某个属性,这时需要用到多层级匹配。

例如:当wx.request调用的data参数带有一个名为mock的属性值为true的时候,才通过 Mock 规则返回结果,参数匹配规则应填写:

多层级参数匹配

上述例子中的wx.request调用,需要修改成:

wx.request({
  url: 'https://example.com/ajax?dataType=member',
  data: {         // \
    mock: true	  // - 添加这三行
  },              // /
  dataType: 'json',
  success(res) {
    console.log(res)
  }
})

才能命中此规则。

使用数据模板

当需要模拟的数据比较复杂的时候,可以使用数据模板快速生成符合你要求的数据。

数据模板的语法采用自开源库 Mock.js,详细的语法可以在该项目文档中查看。

例如:上面的例子,想要返回的 list 包含 10 项不同的数据,可以在“数据生成”中选择“数据模板”,填入如下模板:

{
  "data": {
    "list|10": [
      {"id|+1": 1, "name": "@FIRST"}
    ]
  },
  "statusCode": 200,
  "header": {
    "content-type": "application/json; charset=utf-8"
  }
}

模板编辑器下方会根据模板实时生成数据预览,方便确认模板的正确性。

数据模板

重新调用上面的代码,将返回:

数据模板返回

规则导入导出

当需要与项目中其他成员共享规则时,可以在 Mock 中导出规则配置,再把配置文件发送给其他成员导入即可,操作入口如图:

导入导出

注意事项

  • 规则匹配中的正则表达式均不区分大小写;

  • wx.request中暂时无法使用dataType参数进行匹配;

  • 在匹配规则中的参数名中,“.”属于特殊字符,如果要匹配的参数名中包含“.”将无法匹配成功,例如

      {
        "propName": {
          "key": "value",
          // 通过 propName.namespace1.key 无法匹配到此参数,应尽量避免这种情况。
          "namespace1.key": "value1"
        }
      }
    
  • 蓝牙模块相关的 API,实际调用中需要先调用

    wx.openBluetoothAdapter
    

    进行初始化,但是在 Mock 的规则命中后将没有这些限制,需要注意

    • getBLEDeviceServices
    • getBLEDeviceCharacteristics
    • createBLEConnection
    • closeBLEConnection
    • writeBLECharacteristicValue
    • startBluetoothDevicesDiscovery
    • stopBluetoothDevicesDiscovery
    • getConnectedBluetoothDevices
    • getBluetoothDevices
    • getBluetoothAdapterState
    • closeBluetoothAdapter
  • 目前支持Mock 的 API 列表:

    • request
    • downloadFile
    • getLocation
    • checkSession
    • requestPayment
    • startSoterAuthentication
    • checkIsSupportSoterAuthentication
    • checkIsSoterEnrolledInDevice
    • startBeaconDiscovery
    • stopBeaconDiscovery
    • getBeacons
    • startWifi
    • stopWifi
    • getConnectedWifi
    • connectWifi
    • getBLEDeviceServices
    • getBLEDeviceCharacteristics
    • createBLEConnection
    • closeBLEConnection
    • writeBLECharacteristicValue
    • startBluetoothDevicesDiscovery
    • stopBluetoothDevicesDiscovery
    • openBluetoothAdapter
    • getConnectedBluetoothDevices
    • getBluetoothDevices
    • getBluetoothAdapterState
    • closeBluetoothAdapter
    • stopHCE
    • startHCE
    • sendHCEMessage
    • getHCEState
    • setBackgroundFetchToken
    • getBackgroundFetchToken
    • getBackgroundFetchData

标签:匹配,API,Mock,规则,模板,wx
From: https://www.cnblogs.com/AtlasLapetos/p/18641876

相关文章

  • Java中的高效集合操作:Stream API实战指南
    Java中的高效集合操作:StreamAPI实战指南1.引言:集合操作的痛点在日常开发中,我们经常需要对集合进行各种操作,比如过滤、映射、排序、聚合等。传统的做法是使用for循环或Iterator,代码冗长且容易出错。比如:List<String>names=newArrayList<>();for(Useruser:users......
  • 轻松使用API将人像动漫化
    本文将介绍一种人像动漫化API对接说明,它可以通过输入一张人脸照片,生成个性化的二次元动漫形象,可用于打造个性头像、趣味活动、特效类应用等场景,提升社交娱乐的体验。接下来介绍下人像动漫化API的对接说明。申请流程要使用API,需要先到人像动漫化API对应页面申请......
  • 【转】[C#] WebAPI 使用async和await
    转自:kimi.ai在.NETFramework4.5及以上版本中,WebAPI支持async和await关键字的使用。使用async和await对调用方(客户端)和服务器端都有不同的影响,以下是详细说明:对调用方(客户端)的影响响应时间:对于单个客户端请求来说,使用async并不会显著减少请求的响应时间。无论是同步还是......
  • 获取阿里巴巴商品详情的高效途径:API调用与代码示例
    在当今电商蓬勃发展的时代,阿里巴巴作为全球知名的B2B平台,汇聚了海量的商品信息。对于开发者和商家而言,能够精准、高效地获取这些商品详情数据,无疑将为业务拓展和决策提供强大助力。本文将为您详细解读如何通过阿里巴巴开放平台API获取商品详情,并附上实用的代码示例,助您轻松上手......
  • API网关(API GATEWAY)是什么?有什么作用?
    API网关(APIGATEWAY)是什么?有什么作用?|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|----......
  • elasticsearch的RestAPI之操作文档
    RestClient操作文档新增文档将DB表中的数据同步到elasticsearch1)查询数据库1.1)数据库查询后的结果是一个Hotel类型的对象1@Data2@TableName("tb_hotel")3publicclassHotel{4@TableId(type=IdType.INPUT)5privateLongid;6privateString......
  • js 调用 IIS部署的 WebAPI 相关配置
    1.跨域问题处理需要在web.config添加节点<system.webServer><httpProtocol><customHeaders><addname="Access-Control-Allow-Origin"value="*"/><addname="Access-Control-Allow-Headers"......
  • 你有用过HTML5的Device API吗?说说它都有哪些应用场景?
    HTML5的DeviceAPI应用场景解析HTML5的DeviceAPI为前端开发者提供了一系列强大的工具,使得Web应用能够更深入地与用户的设备进行交互。以下是对HTML5DeviceAPI的一些主要应用场景的详细解析:一、重力感应与方向控制通过HTML5的DeviceOrientation接口,开发者可以获取到设备的方......
  • ryujin 1.2.78下载(龙神模拟器),配置19.0的key和对应固件,解决amiibo API错误(需要翻墙vpn)
    1.下载不废话Release1.2.78·Ryubing/Ryujinx·GitHub,找对应的版本下载下载后解压得到publish文件夹,打开里面的Ryujinx.exe,会报错,别管先挂着,接着看步骤22.配置switch的key和固件推荐(不用vpn):下面步骤2.1和2.2 key和固件的下载要使用vpn,你可以直接用夸克打开下面......
  • FastGPT及大模型API(Docker)私有化部署指南
    FastGPT及大模型API(Docker)私有化部署指南​​经过优化,在不影响FastGPT功能的情况下,大幅降低了部署的设备配置要求,仅需1c1h即可正常部署使用。官方要求配置:​​优化后的实际占用情况:运行内存仅需370M(测试学习场景下)​​官方推荐部署容器:​pg​......