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组件后,通过浏览器预览。