Autodesk Platform Services非公开实体搜索端点访问及父级信息咨询
关于APS未公开端点
/dm/v3/projects/{{projectId}}/entities:search的访问问题及文件父级获取方案咨询 背景
通过分析ACC网络请求,我发现一个未公开的APS端点:https://developer.api.autodesk.com/dm/v3/projects/{{projectId}}/entities:search,计划用它构建搜索功能,实现递归匹配文件名的最新版本文件搜索,同时获取筛选文件的祖先文件夹详情。目前遇到两个问题:
- UI调用时,已在请求中添加头
"Access-Control-Allow-Origin": "*",但仍触发CORS拦截; - Postman调用时,已为APS应用授权所有公开API权限,却返回错误:
{ "developerMessage": "The client_id specified does not have access to the api product", "moreInfo": "https://aps.autodesk.com/en/docs/oauth/v2/developers_guide/error_handling/", "errorCode": "AUTH-001" }
ACC生产环境该端点返回示例:
{ ... documents: [ { "parentFolder": { ... "parents": [ { ... "urn": "urn:adsk.wipprod:fs.folder:co.xxxxxx", "name": "Project Files" } ] } } ] }
咨询问题
- 无法访问该端点的原因及正确访问步骤;
- 是否应通过该端点获取文件父级(名称和urn),或有其他推荐方案。
问题解答
1. 无法访问端点的原因及访问步骤
原因剖析
- CORS问题:
Access-Control-Allow-Origin是服务器端返回的响应头,不是客户端请求头。你在UI请求中添加这个头完全无效,浏览器会因为服务器未返回允许跨域的响应头而拦截请求。 - AUTH-001错误:该端点属于APS未公开的内部API,不在官方开放的权限范围内——即使给应用授权所有公开API权限,也无法访问这类未对外披露的接口。
正确实现思路
放弃依赖未公开端点,使用APS官方公开的Data Management API完成需求:
- 采用
/data/v1/projects/{{projectId}}/items/search公开搜索接口,支持文件名匹配、筛选最新版本文件; - 调用要求:
- 应用已授权
data:read权限; - 请求携带有效的OAuth2令牌(需包含目标项目的访问权限);
- 跨域问题通过APS开发者控制台解决:在应用设置的“Allowed Origins”列表中添加你的前端域名,无需手动设置请求头。
- 应用已授权
2. 文件父级信息获取方案
不推荐使用未公开端点
未公开端点无官方维护,随时可能变更、下线,稳定性无法保障,生产环境绝对不能依赖。
推荐方案
- 通过公开API递归获取:
- 调用
/data/v1/projects/{{projectId}}/items/{{itemId}}获取文件详情,其中relationships.parent字段包含父文件夹ID; - 再调用
/data/v1/projects/{{projectId}}/folders/{{folderId}}获取文件夹详情,通过该接口返回的relationships.parent可递归获取所有祖先文件夹;
- 调用
- 搜索时关联获取:调用
/data/v1/projects/{{projectId}}/items/search时,添加include=parent参数,直接在搜索结果中返回父文件夹基础信息,减少请求次数。
内容的提问来源于stack exchange,提问作者Async Await
相关产品推荐
相关产品推荐

