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 重新安装依赖。
1.1、AI.apiFunctionHandler接口
在H5页面通过AI.apiFunctionHandler接口发起请求,根据apiNameEn(即IoT平台接口的apiCode)和apiParam会调用对应的ISV接口,
1.1.1、调用示例
AI.apiFunctionHandler({
apiNameEn: 'xx', //IoT平台接口中的apiCode
apiParam: {
requestParam: JSON.stringify({releaseStatus:2,name: 'xxx',age: 12}), //name、age均为ISV在AIoT创新工厂注册接口的所需入参
openAccountId: 9844,
// 注:类似于 requestParam 这种 Object/Array 的参数,需要转为字符串传入
}
}).then(resp => {
console.log('返回数据', resp)
}).catch(err => {
console.log('失败返回', err)
})
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