API 快速接入
1. API接入说明
API接入需要业务端自行完善与yunapi服务接口交互处理。业务端从 门户网站 获取 开发接口 信息。其中 接口地址
作为yunapi接口访问地址(定义为 [YunapiUrl]
),密钥、企业ID用于接口签名校验。
注意:访问轻量化引擎数据服务接口时, 所有的请求接口都需要将签名信息放在请求的Headers里面,用于接口校验。签名信息由接口信息生成,各个字段的含义及生成示例如下:
字段 | 必选 | 类型 | 描述 |
---|---|---|---|
timeStampData | 是 | String | 当前时间戳 |
partnerID | 是 | String | 接口信息中的”企业ID“ |
apiKeyData | 否 | String | MD5 加密密钥 |
shaKeyData | 否 | String | SHA 加密密钥 |
Note:
apiKeyData 密钥与 shaKeyData 密钥必须存在一个。
签名生成参考:公共HTTP请求头定义
2. 业务快速接入
2.1 获取minio临时上传url
获取MinIO临时授权接口信息:
POST [YunapiUrl] /nds_requests/common/GetPresignedUploadUrl
请求参数说明:
{"fileName":""}
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"inputNdsFile": "202305101737093718/box.par",
"url": "http://xxx/202305101737093718/box.par?X-Amz-Algorithm..."
}
}
相关参数说明,请参考 模型上传-GetPresignedUploadUrl 。
2.2 使用minio临时上传url上传文件至minio
后端API上传,使用PUT方式请求返回的临时上传路径data.url
前端网页上传,上传URL为1中返回的临时上传路径data.url 。例如:
//前端页面上传处理
let file = $('#fileSelect')[0].files[0];//选择文件
$.ajax({
url: url, //url是接口返回的临时授权路径
type: "put",
data: file,
async: true,
processData: false,
contentType: false,
error: function (xhr, status, error) {
},
success: function (result) {
},
});
2.3 插入任务
模型文件上传后,可以将其插入转换任务,以便生成轻量化数据。
插入一条转换任务:
POST [YunapiUrl] /nds_requests/common/InsertTask
请求参数说明:
{
"inputNdsFile":"",
"mainFile":"",
"returnURL":"",
"taskDescription":"",
"priority":""
}
返回数据示例如下:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"taskID": 998720
}
}
相关参数说明,请参考插入任务-InsertTask。
如果请求参数中包含 returnURL ,则任务处理完成后将对该路径进行回调,请参考回调处理 returnURL。
2.4 查询任务
可通过接口主动查询任务状态,查看模型处理情况。
查询转换结果:
POST [YunapiUrl] /nds_requests/common/QueryTask
请求参数说明:
{"taskID":""}
返回数据示例:
{
"status": {
"code": 1,
"msg": "成功"
},
"data": {
"status": 2,
"errorDescription": "OK",
"errorDetail": "OK",
"outputFiles": "145bf249-98e1-4a7e-8ba2-11a85800a82f.zip",
"outFilePathType": 0,
"outputNdsFiles": "aHR0cDovLzEwLjEyMi44Mi45Mjo5MDAwL3l1bmFwaS9lbnRlcnByaXNlLzgxMzg2MzgzMzI2MDQ1MjgxNjkzL2Rvd25sb2FkLzRmM2Q4MjZkLTIwMTQtNDRmMi1iMmU2LTZiOWVmOTBmZWQzMi56aXA/WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1USURCRUQwRTBZMTBENjA5OVYxSSUyRjIwMjQwMTE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDExNlQwMjEyNDNaJlgtQW16LUV4cGlyZXM9MTcyODAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZYLUFtei1TaWduYXR1cmU9YzVkNGYyZmIyMDQzNjRiMzU5MTczYzEwNTc2YTEwMzA1YjExYTNhZWEwYTQzNWUxYmY0OWVjYTg1OWI2YTgwNA=="
"errorType": 1,
"previewURL": "aHR0cHM6Ly9hcGkuM2RvcGVuLmNuL3ByZXZpZXcuaHRtbD9pdGVtQ29kZT02OEMwQTM3MUFFOTk3NUNGNkEzMTUyQzNERTczQzlGQw==",
"jsonURL": "aHR0cHM6Ly9taW5pby4zZG9wZW4uY24vM2RvcGVuL3RlbXBGaWxlL01vZGVsRmlsZS9OZXdkaW1jaGluYS8xNjgzNzEzOTQ2NjI3LzAvcHJvZHVjdERhdGEuanNvbg==",
"imgURL": "aHR0cHM6Ly9taW5pby4zZG9wZW4uY24vM2RvcGVuL3RlbXBGaWxlL01vZGVsRmlsZS9OZXdkaW1jaGluYS8xNjgzNzEzOTQ2NjI3L1RodW1ibmFpbC5wbmc="
}
}
相关参数说明,请参考查询任务-QueryTask。
2.5 预览轻量化模型
将字段 previewURL(通过base64编码)解密后,获得轻量化模型预览地址。也可在门户网站,将轻量化模型文件下载到本地磁盘。集成Viewer组件后,通过浏览器预览。
