如何通过Autodesk公开API获取文件的审批状态、文档状态及类型
获取文件审批状态的替代方案
我明白你现在的困境——你需要获取文档的审批状态,但发现UI调用的dm/v1接口是私有未公开的,而当前使用的data/v1/projects/{projectId}/items/{itemId}/versions接口又没返回你需要的信息。这里有几个基于Autodesk公开API的可行方案:
1. 使用BIM 360 Approval API(推荐)
如果你的项目是BIM 360 Docs项目,官方提供了专门的Approval API来管理和查询审批状态,这是获取审批信息最直接的方式:
- 调用
GET /projects/{project_id}/approvals接口,通过添加过滤参数filter[itemId]={itemId}来筛选对应文件项的审批记录。 - 响应中会包含审批的详细信息:比如
status字段对应你看到的approve_status.value,name字段对应approve_status.label,还有审批人、审批时间等完整数据。 - 注意:确保你的应用已申请
data:read权限,并且项目类型为BIM 360 Docs。
2. 检查Data Management API的扩展/自定义属性
有些团队会将审批状态作为自定义属性存储在文件版本中,你可以在当前调用的data/v1/projects/{projectId}/items/{itemId}/versions接口响应里查看以下字段:
custom_attributes数组:如果有配置自定义属性存储审批状态,这里会包含对应的键值对。attributes.extension.data:部分审批相关元数据可能会被放在扩展字段里,具体取决于项目的设置。
3. 扩展Data Management的文件夹内容查询
调用GET /projects/{projectId}/folders/{folderId}/contents时,添加include=versions参数,会返回文件夹内所有文件的版本信息,部分场景下会附带审批状态相关的元数据,你可以从中提取需要的内容。
需要特别提醒的是:Autodesk的私有dm/v1接口没有官方支持,随时可能变更或停止服务,务必使用上述公开API方案来保证稳定性。
内容的提问来源于stack exchange,提问作者M Leipper




