OpenAPI Explorer提供API的mock功能,帮助开发者在开发阶段更方便的调试代码。

背景信息

OpenAPI Explorer提供API的mock功能,供开发者在使用阿里云Open API开发时,更方便的调试代码,模拟真实调用返回数据。

操作步骤

  1. 在OpenAPI Explorer中找到想要调用的API,查看mock数据。
  2. 获取API对应mock数据的url地址。
  3. 在代码中,进行调用mock地址。以nodejs为例:
    const Core = require('@alicloud/pop-core');
    const urllib = require('urllib');
    
    // 是否使用 OpenAPI Mock,建议放到配置文件中
    const isUseMock = true
    
    // OpenAPI Mock 固定域名(无需修改)
    const mockServerDomain = 'https://api.aliyun.com/mock'
    
    // OpenAPI Product 产品标识 (Dysmsapi为短信服务)
    const mockProductName = 'Dysmsapi'
    
    // 要请求的 API 名称
    const apiName = 'QuerySendDetails'
    
    // 开始请求
    if( isUseMock ) {
      doMockRequest(apiName)
    } else {
      doOnlineRequest(apiName)
    }
    
    /**
     * 正常 OpenAPI 调用逻辑
     */
    function doOnlineRequest(apiName, params = {}) {
      const client = new Core({
        accessKeyId: '<accessKeyId>',
        accessKeySecret: '<accessSecret>',
        endpoint: 'https://dysmsapi.aliyuncs.com',
        apiVersion: '2017-05-25'
      });
      return client.request(apiName, params, {method: 'POST'}).then((result) => {
        console.log(result);
        return result
      }, (ex) => {
        return ex
      })
    }
    
    /**
     * 请求 OpenAPI Mock 数据
     * @param apiName: 请求 API 名称
     * @param tag: 返回数据的场景,默认为default
     */
    function doMockRequest(apiName, params, tag) {
      tag = tag || "default";
      return urllib.request(`${mockServerDomain}/${mockProductName}/${apiName}?tag=${tag}`).then(result => {
        console.log(result.data.toString());
        return result.data.toString();
      });
    }