接口服务需在数据服务超市>接口服务进行申请,由审核人在运营中心>任务中心>审核待办中进行审核,此处仅展示审核通过后的接口服务。详细申请步骤请参考接口服务使用指导。
接口申请通过后,可以在我的>可用资产>接口服务中点击查看该接口服务的详细信息,也可以点击操作栏的【授权信息】查看接口地址、密匙、授权时间等信息,用户可以根据这些信息进行接口的调用。
以下为调用接口的具体操作说明:
第1步 接口申请通过后,用户登录API在线调试工具Postman,在个人workspace中添加新标签页,接着点击【Pre-request Script】,将以下代码复制至下图所示处。
//填写 appId 和 appSecret
const appId = "166232xxxxxx8416"
const appSecret = "23d72b82xxxx44e8a9a7xxxxxxfca3a9"
/*
签名串需要包含的内容为:
HTTP 请求方法\n
请求时间戳 timestamp(秒级, 请求时间与服务器时间相差不能超过1分钟)\n
请求随机串 nonce(每个 nonce 只能使用一次,重复使用无效)\n
请求 Path (不包括域名部分, 不包含 QueryString)\n
请求 QueryString (按 key 升序排序 k1=v1&k2=v2&k3=v3)\n
请求 Body (序列化后的 json 字符串, 如果没有 Body, 此行为空, 只保留换行符)\n
*/
//HTTP 请求方法
const method = pm.request.method
//请求时间戳
const timestamp = Date.parse(new Date()) / 1000
//请求随机串
const nonce = require('uuid').v4()
//请求 Path
const path = pm.request.url.getPath()
//请求 QueryString 按 key 升序排序
const qsArray = pm.request.url.query.all().sort((a, b) => a.key > b.key ? 1 : -1)
let qs = ""
qsArray.map((item, index) => {
qs += `${item.key}=${item.value}`
if (index !== (qsArray.length - 1)) {
qs += "&"
}
})
//请求 Body
const body = pm.request.body.toString()
//拼接签名串
const message = `${method}
${timestamp}
${nonce}
${path}
${qs}
${body}
`
//生成签名
const signature = CryptoJS.HmacSHA256(message, appSecret).toString();
console.log(message)
// 签名信息放在 Header Authorization, 格式为
// ANYFABRIC-HMAC-SHA256 appid=${appId},timestamp=${timestamp},nonce=${nonce},signature=${signature}
const authorization = `ANYFABRIC-HMAC-SHA256 appid=${appId},timestamp=${timestamp},nonce=${nonce},signature=${signature}`
console.log(authorization)
pm.request.headers.add({ key: "Authorization", value: authorization });
第2步 在AnyFabric我的>可用资产>接口服务页面点击需要调用的接口名称,进入接口详情页,在“参数信息”一栏查看该接口的请求方式,并在Postman中选择对应的请求方式。
图a 点击接口名称进入详情页
图b 在接口详情页查看接口的请求方式
图c 在Postman中选择对应的请求方式
第3步 点击AnyFabric接口详情页右上角的【查看已授权信息】或在可用资产>接口服务页面点击【授权信息】,复制弹窗的接口地址,粘贴至Postman的地址栏;接着复制AnyFabric中接口授权信息的AppId 和 AppSecret(密匙),替换上述代码中的对应值,其他代码无需改动,详见下图:
第4步 点击Postman上的【Send】按钮,页面下方返回结果,显示“操作成功”即接口调用成功。