Node.js上传文档至BIM360/ACC失败,步骤7报BAD_INPUT错误
排查步骤7创建Item时的400 BAD_INPUT错误
问题描述
按照官方分步指南操作,使用Node.js结合axios发起网络请求,步骤6(创建存储空间)返回200状态码看似正常,但执行步骤7(创建Item)时收到400错误:
errors: [ { id: 'dcda72b1-04c2-441b-a928-aafbb1d32d39', status: '400', code: 'BAD_INPUT', title: 'Object violates schema "create_item".', detail: 'See meta section for details.' } ],
请求体JSON输出如下:
{"jsonapi":{"version":"1.0"},"data":{"type":"items","attributes":{"displayName":"testing.pdf","extension":{"type":"items:autodesk.core:File","version":"1.0"}},"relationships":{"tip":{"data":{"type":"versions","id":"1"}},"parent":{"data":{"type":"folders","id":"urn:adsk.wipprod:fs.folder:co.hRlS3cVYRhuXeBmzluk9Ug"}}}},"included":[{"type":"versions","id":"1","attributes":{"name":"testing.pdf","extension":{"type":"versions:autodesk.core:File","version":"1.0"}},"relationships":{"storage":{"data":{"type":"objects"}}}}]}
排查思路
补全storage关联的ID字段
你的请求体中included[0].relationships.storage.data仅包含type: "objects",缺少必填的id。这个ID是步骤6创建存储空间接口返回的object ID,必须替换进去,否则无法关联到已上传的文件存储位置。核对JSON:API schema字段
逐字段对比官方请求示例:- 确认
included[0].attributes.name与实际上传的文件名完全一致(当前是testing.pdf,需和步骤6上传的文件名匹配) - 扩展字段的
type和version值需严格符合要求(你当前的设置是正确的,但要确保没有拼写错误)
- 确认
验证父文件夹URN的有效性与权限
检查parent.data.id对应的文件夹URN是否有效,且当前授权账号拥有该文件夹的写入权限。可通过调用文件夹详情接口(GET请求)验证权限和URN的正确性。确认请求头设置
确保axios请求的Content-Type严格设置为application/vnd.api+json,这是JSON:API格式的强制要求,缺失或错误会触发schema校验失败。逐行对比官方cURL请求体
将你的JSON请求体和官方步骤7的cURL示例中的请求体进行逐字段对比,排查是否存在字段遗漏、格式错误或值类型不匹配的问题。比如官方示例中storage.data会包含完整的type和id,你当前的请求体缺少关键的id值。
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

