创建模型并进行格式转换
本章节通过调用一系列API,以创建模型并进行格式转换为例,介绍工业数据转换引擎云服务(Industrial Data Exchange Engine Service,iDEE) API的使用流程。
API的调用方法请参见如何调用API。
调用流程
创建模型并进行格式转换的流程如下:
- 调用认证鉴权接口,获取用户的Token,在后续的请求中需要将Token放到请求消息头中作为认证。
- 调用创建模型接口,创建模型。
- 调用获取模型文件的上传ID接口,获取模型ID。
- 调用上传文件接口,上传源模型文件。
- 调用确认模型文件上传结果接口,确认文件上传结果。
- 调用创建转换任务接口,创建转换任务。
- 调用根据ID查询转换任务接口,查询转换状态。
前提条件
- 已获取IAM的EndPoint和iDEE的EndPoint。
- 已获取获取项目ID和获取账号ID。
操作步骤
- 调用认证鉴权接口,获取用户的Token。
- 请求消息
POST https://{iam_endpoint}/v3/auth/tokens
请求消息头:
Content-Type: application/json
请求Body:
{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } }
其中,加粗的斜体字段需要根据实际值填写。
- iam_endpoint:表示IAM的终端节点。
- user_name:表示IAM用户名。
- user_password:表示IAM用户登录密码。
- domain_name:表示IAM用户所属的账号名。
- project_name:表示项目名,代表服务的部署区域。
- 响应消息
返回状态码“201 Created”,在响应Header中获取“X-Subject-Token”的值即为Token。如下所示:
X-Subject-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX...
- 请求消息
- 调用创建模型接口,创建模型。
- 请求消息
POST https://{Endpoint}/idee/common/api/public/v1/models
请求消息头:
X-auth-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type: application/json
请求Body:
{ "name": "model_name", "file_name": "file_name", "description": "model_description" }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示iDEE的终端节点。
- model_name:表示模型在iDEE业务面上的名称。
- file_name:表示待上传模型的文件名称。
- model_description:表示模型在iDEE业务面上的描述。
- 响应消息
{ "data": { "id": "990348516764340224", "name": "bike amination_20240902_061816.zip", "owner_id": "fdb77f81ddc84a1898385d95f0ee9c86", "status": "UPLOAD_WAITING", "main_source_artifact_id": "990348516948889600", "error_message": null, "description": null, "format": null, "model_size": null, "tenant_id": "1a0405c9b8434356a88d9b78ba552867", "creator": "fdb77f81ddc84a1898385d95f0ee9c86", "create_time": "2024-09-01T22:18:16Z", "last_update_time": "2024-09-01T22:18:16Z" } }
在返回结果中,
- id:表示新建的模型ID,记录该值用于后续步骤。
- status:表示模型上传状态。此处为“UPLOAD_WAITING”,表示待上传。
- main_source_artifact_id:表示待上传模型的文件ID,即源模型文件ID。记录该值用于后续步骤。
- 请求消息
- 调用获取模型文件的上传ID接口,获取待上传模型文件的ID。
- 请求消息
POST https://{Endpoint}/idee/download/api/common/v1/artifacts/{artifact_id}/upload
请求消息头:
X-auth-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type: application/json
请求path:
"artifact_id": "990348516948889600"
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示iDEE的终端节点。
- artifact_id:表示文件ID,即2中返回的“main_source_artifact_id”参数值。
- 响应消息
{ "upload_id": "990353899776036865" }
返回结果中,upload_id表示上传模型文件的ID。
- 请求消息
- 调用上传文件接口,上传源模型文件。
- 请求消息
POST https://{Endpoint}/idee/download/api/public/v1/files/upload
请求消息头:
X-auth-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type: application/json
请求Body:
upload_id: 3中返回的上传ID file: 源文件
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示iDEE的终端节点。
- upload_id:表示3中返回的上传ID。
- file:表示源模型文件。
- 响应消息
{ "data": { "upload_id": "990353899776036865" } }
返回结果中,upload_id表示上传模型文件的ID。
- 请求消息
- 用确认模型文件上传结果接口,确认文件上传结果。
- 请求消息
POST https://{Endpoint}/idee/common/api/public/v1/artifacts/{artifact_id}/upload
请求消息头:
X-auth-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type: application/json
其中,加粗的斜体字段需要根据实际值填写。
artifact_id:表示文件ID,即2中返回的“main_source_artifact_id”参数值。
- 响应消息
{ "data": { "artifact_id": "988388187893321728", "status": "PROCESS_SUCCEEDED", "error_message": null } }
返回结果中,status表示模型文件上传状态(UPLOAD_WAITING:待上传;UPLOAD_SUCCEEDED:上传成功;UPLOAD_FAILED:上传失败)。
- 请求消息
- 调用创建转换任务接口,创建转换任务。
- 请求消息
POST https://{Endpoint}/idee/common/api/public/v1/models/{model_id}/conversions
请求消息头:
X-auth-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX... Content-Type: application/json
请求Body:
{ "type": "STEP", "target_file_name": "string" }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示iDEE的终端节点。
- model_id:模型ID,即1中返回的“id”参数值。
- type:表示转换类型,即想要转换的目标文件格式。当前支持转换类型为STEP,PARASOLID,XCAF。
- target_file_name:表示目标文件名。
- 响应消息
{ "data": { "id": "989318656184995840", "model_id": "988695063084322816", "type": "STEP", "status": "CONVERTING", "target_file_name": "test1005", "storage_size": null, "start_time": "2024-08-30T02:05:58Z", "end_time": "2024-08-30T02:05:59Z", "error_msg": null, "tenant_id": "1a0405c9b8434356a88d9b78ba552867", "creator": "fdb77f81ddc84a1898385d95f0ee9c86", "create_time": "2024-08-30T02:05:58Z" } }
返回结果中,status表示转换任务状态。
- 请求消息