H5/小程序一次请求链路如下图所示,ISV在AIoT创新工厂注册的所有接口都可以通过AI.apiFunctionHandler发起请求调用不同的接口。
注:在使用H5 sdk文档(https://www.yuque.com/qw5nze/ga14hc/awho3k)时,更新依赖 genie-sdk 1.1.53以上,删除 node_modules 文件,然后 cnpm i 或者 npm i 重新安装依赖。

image.png

1.1、AI.apiFunctionHandler接口

在H5页面通过AI.apiFunctionHandler接口发起请求,根据apiNameEn(即IoT平台接口的apiCode)和apiParam会调用对应的ISV接口,

1.1.1、调用示例

  1. AI.apiFunctionHandler({
  2. apiNameEn: 'xx', //IoT平台接口中的apiCode
  3. apiParam: {
  4. requestParam: JSON.stringify({releaseStatus:2,name: 'xxx',age: 12}), //name、age均为ISV在AIoT创新工厂注册接口的所需入参
  5. openAccountId: 9844,
  6. // 注:类似于 requestParam 这种 Object/Array 的参数,需要转为字符串传入
  7. }
  8. }).then(resp => {
  9. console.log('返回数据', resp)
  10. }).catch(err => {
  11. console.log('失败返回', err)
  12. })

1.1.2、必填参数说明

参数名称 说明
apiNameEn ISV接口名称 (指 saas 平台的 apiCode)
apiParam[openAccountId] ISV账号ID
apiParam[requestParam] 具体参数,以后需要透传的参数传在这里
apiParam.requestParam[releaseStatus] 根据平台跳转过去的url中type参数是否等于localDebug or debug,如果带两个值其中之一则设置releaseStatus=1标识测试,否则设置releaseStatus=2标识线上

1.1.3、默认传参

此项参数列表都会随h5/小程序每次访问作为默认参数传给ISV服务,ISV在h5/小程序无需感知默认每次必传。

参数名称 说明
releaseVersion ISV 创建的api接口版本号,如果api有升级则每次按照升级后的稳定版传参,ISV进行api版本升级的处理差异兼容
timestamp 请求时间戳
openUserId 用户id
deviceId 设备id
productId 产品pid

1.2、H5 视觉

H5页面视觉规范参见 https://www.aligenie.com/doc/357554/dwqd68