17 KiB
17 KiB
AI 生图平台素材接口文档
用途:AI 生图平台统一通过同一条接口,查询
标准模型白底图或任务-详情整套预览下载链接当前主域名:https://sc.jiansun.vip当前资源主域名:https://s3.jiansun.vip备用资源域名:https://s3.yydd.ai(备用 / 回切用,非默认对接地址) 旧应用域名:https://3d.yydd.ai(仅保留兼容跳转)
1. 基础信息
- 接口基地址:
https://sc.jiansun.vip/api/external/ - 鉴权方式:请求头
X-API-Key - 请求方式:
GET - 返回格式:
application/json - 主接口路径:
/api/external/standard-model-white-background - 默认资源类型:
white-background
1.1 当前网络口径
- 接口查询、鉴权和下载 token 入口统一使用
https://sc.jiansun.vip task-detail分支返回的预览图直链,当前默认资源域名使用https://s3.jiansun.viphttps://s3.yydd.ai当前只保留为备用资源域名;除非单独通知切换,否则调用方继续以https://s3.jiansun.vip为准
返回统一格式:
{
"success": true,
"data": {}
}
失败时:
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "错误说明"
}
}
1.2 响应诊断头
为便于调用方排查“接口慢”到底是服务端慢还是链路慢,当前接口额外返回以下响应头:
| 响应头 | 说明 |
|---|---|
X-Trace-Id |
本次请求追踪 ID,排查时可提供给素材平台定位服务端日志 |
X-Server-Duration-Ms |
服务端实际处理耗时,单位毫秒 |
Server-Timing |
标准服务端耗时头,内容与上面一致 |
X-Resource-Type |
本次实际走的资源分支 |
X-Request-Sku |
本次实际识别后的 SKU;未传时不返回 |
X-Request-Spu |
本次实际识别后的 SPU;未传时不返回 |
2. 通用请求规则
2.1 请求头
| 参数 | 必填 | 说明 |
|---|---|---|
X-API-Key |
是 | 外部接口访问密钥 |
2.2 查询参数
| 参数 | 必填 | 说明 |
|---|---|---|
resourceType |
否 | 资源类型。可选 white-background 或 task-detail。不传时默认 white-background |
sku |
条件必填 | sku 和 spu 二选一即可 |
spu |
条件必填 | sku 和 spu 二选一即可 |
补充说明:
sku、spu都按大小写不敏感查询,建议调用方统一传大写。- 当前服务端会先把
sku、spu标准化为大写后再做精确匹配,建议调用方直接传大写,避免自身重复大小写转换。 - 如果
sku和spu同时传入,接口优先按spu处理。 shopName当前与categoryName含义一致,都是“店铺”。
3. 白底图查询
3.1 适用场景
resourceType=white-background- 不传
resourceType时也走这一分支,兼容老调用方 - 支持两种查询方式:
sku:直接拿到该 SKU 的完整白底图信息spu:先拿到该 SPU 下全部 SKU 清单,再让用户选 SKU
3.2 按 SKU 查询白底图
请求
GET /api/external/standard-model-white-background?resourceType=white-background&sku={SKU}
X-API-Key: your-api-key
兼容老调用方式:
GET /api/external/standard-model-white-background?sku={SKU}
X-API-Key: your-api-key
成功响应示例
{
"success": true,
"data": {
"resourceType": "white-background",
"sku": "TEXT001452",
"materialId": "484bd047-c956-48cf-a0f4-401f696aef8d",
"productModel": "TEXT0014",
"categoryName": "旗舰店",
"shopName": "旗舰店",
"whiteBackgroundUploaded": true,
"whiteBackgroundComplete": false,
"whiteBackgroundFixedCount": 2,
"whiteBackgroundOtherCount": 1,
"whiteBackgroundCount": 3,
"missingViews": [
{
"key": "leftBack45",
"label": "左后45°"
}
],
"whiteBackground": {
"fixed": [
{
"key": "leftFront45",
"label": "左前45°",
"fileName": "左前45°.png",
"fileSize": 123456,
"downloadUrl": "https://sc.jiansun.vip/api/external/download?token=xxx"
},
{
"key": "rightFront45",
"label": "右前45°",
"fileName": "右前45°.png",
"fileSize": 123456,
"downloadUrl": "https://sc.jiansun.vip/api/external/download?token=yyy"
}
],
"other": [
{
"key": "other-1",
"label": "其他图片1",
"fileName": "detail-1.png",
"fileSize": 123456,
"downloadUrl": "https://sc.jiansun.vip/api/external/download?token=zzz"
}
]
},
"downloadUrls": {
"zip": "https://sc.jiansun.vip/api/external/download?token=zip-token"
}
}
}
字段说明
| 字段 | 说明 |
|---|---|
resourceType |
固定为 white-background |
sku |
实际命中的 SKU |
materialId |
标准模型素材 ID |
productModel |
所属 SPU |
categoryName |
店铺 |
shopName |
店铺,当前与 categoryName 相同 |
whiteBackgroundUploaded |
是否已有白底图 |
whiteBackgroundComplete |
固定 8 个角度是否已补齐 |
whiteBackgroundFixedCount |
已有固定角度图数量 |
whiteBackgroundOtherCount |
已有 other 图数量 |
whiteBackgroundCount |
白底图总数 |
missingViews |
还缺少的固定角度图 |
whiteBackground.fixed |
固定角度白底图列表 |
whiteBackground.other |
其他白底图列表 |
downloadUrls.zip |
当前 SKU 白底图 ZIP 下载链接 |
固定角度顺序固定为:
leftFront45rightFront45leftBack45rightBack45frontbackleftright
单张图片对象字段:
| 字段 | 说明 |
|---|---|
key |
固定图为固定角度 key,other 图为 other-* |
label |
图片说明 |
fileName |
文件名 |
fileSize |
文件大小,单位字节 |
downloadUrl |
单张白底图下载链接 |
3.3 按 SPU 查询白底图 SKU 清单
请求
GET /api/external/standard-model-white-background?resourceType=white-background&spu={SPU}
X-API-Key: your-api-key
成功响应示例
{
"success": true,
"data": {
"resourceType": "white-background",
"spu": "TEXT0014",
"materialId": "484bd047-c956-48cf-a0f4-401f696aef8d",
"categoryName": "旗舰店",
"shopName": "旗舰店",
"skuCount": 2,
"skuList": [
{
"skuName": "TEXT001452",
"skuId": "sku-id-1",
"hasWhiteBackground": true,
"whiteBackgroundCount": 2,
"previewImage": {
"downloadUrl": "https://sc.jiansun.vip/api/external/download?token=xxx",
"fileName": "右前45°.png",
"fileSize": 123456
}
},
{
"skuName": "TEXT001453",
"skuId": "sku-id-2",
"hasWhiteBackground": false,
"whiteBackgroundCount": 0,
"previewImage": null
}
]
}
}
字段说明
| 字段 | 说明 |
|---|---|
resourceType |
固定为 white-background |
spu |
实际命中的 SPU |
materialId |
标准模型素材 ID |
categoryName |
店铺 |
shopName |
店铺,当前与 categoryName 相同 |
skuCount |
该 SPU 下 SKU 数量 |
skuList[].skuName |
SKU 名称 |
skuList[].skuId |
SKU 记录 ID |
skuList[].hasWhiteBackground |
是否已有任意白底图 |
skuList[].whiteBackgroundCount |
当前固定角度白底图数量 |
skuList[].previewImage |
右前 45° 预览图;如果没有该角度则为 null |
说明:
- 这个接口主要给 AI 平台先展示 SKU 列表用。
- 选定 SKU 后,再调用“按 SKU 查询白底图”接口拿完整白底图信息。
4. 任务-详情整套查询
4.1 适用场景
resourceType=task-detail- 按
任务-详情素材类型直接查询,不再要求先存在标准模型 - 只返回:
materialType='任务-详情'- 同时拥有主图、SKU 图、详情图
deletedAt=null的候选素材
- 返回的是预览图直链数组,不是 zip,也不是 token 下载链接
- 返回顺序按
uploadedAt倒序,也就是最新上传的排前面 - 当前默认返回的资源直链域名是
https://s3.jiansun.vip https://s3.yydd.ai保留备用说明,但不是当前默认示例地址
4.2 按 SPU 查询任务-详情整套候选
请求
GET /api/external/standard-model-white-background?resourceType=task-detail&spu={SPU}
X-API-Key: your-api-key
注意:
task-detail响应顶层的categoryName/shopName是便捷字段,取本次返回候选列表中的第一条候选素材。- 如果 AI 平台要展示候选素材的实际店铺,请优先读取
candidates[].categoryName或candidates[].shopName。 - 如果同一个 SPU 下有多条候选素材,且它们店铺不同,请以各自
candidates[]内的字段为准。
成功响应示例
{
"success": true,
"data": {
"resourceType": "task-detail",
"spu": "SPU001",
"sku": null,
"categoryName": "旗舰店",
"shopName": "旗舰店",
"candidateCount": 1,
"candidates": [
{
"materialId": "material-2",
"taskNo": "TASK202601141713525624",
"productModel": "SPU001",
"categoryName": "旗舰店",
"shopName": "旗舰店",
"sceneName": "客厅",
"uploadedAt": "2026-03-18T10:00:00.000Z",
"isFullSet": true,
"downloadUrls": {
"main": [
"https://s3.jiansun.vip/gongxiangpan/preview/main-1.jpg"
],
"sku": [
"https://s3.jiansun.vip/gongxiangpan/preview/sku-1.jpg"
],
"detail": [
"https://s3.jiansun.vip/gongxiangpan/preview/detail-1.jpg"
],
"all": [
"https://s3.jiansun.vip/gongxiangpan/preview/main-1.jpg",
"https://s3.jiansun.vip/gongxiangpan/preview/sku-1.jpg",
"https://s3.jiansun.vip/gongxiangpan/preview/detail-1.jpg"
]
}
}
]
}
}
4.3 按 SKU 查询任务-详情整套候选
请求
GET /api/external/standard-model-white-background?resourceType=task-detail&sku={SKU}
X-API-Key: your-api-key
处理逻辑
- 先通过
SKU -> 标准模型 SPU - 再按这个 SPU 查询所有整套
任务-详情候选 - 顶层
categoryName/shopName是便捷字段,取本次返回候选列表中的第一条候选素材 - 如果 AI 平台要展示候选素材的实际店铺,请优先读取
candidates[].categoryName或candidates[].shopName
成功响应示例
{
"success": true,
"data": {
"resourceType": "task-detail",
"spu": "SPU001",
"sku": "SKU001",
"categoryName": "旗舰店",
"shopName": "旗舰店",
"candidateCount": 1,
"candidates": [
{
"materialId": "material-2",
"taskNo": "TASK202601141713525624",
"productModel": "SPU001",
"categoryName": "旗舰店",
"shopName": "旗舰店",
"sceneName": "客厅",
"uploadedAt": "2026-03-18T10:00:00.000Z",
"isFullSet": true,
"downloadUrls": {
"main": [
"https://s3.jiansun.vip/gongxiangpan/preview/main-1.jpg"
],
"sku": [
"https://s3.jiansun.vip/gongxiangpan/preview/sku-1.jpg"
],
"detail": [
"https://s3.jiansun.vip/gongxiangpan/preview/detail-1.jpg"
],
"all": [
"https://s3.jiansun.vip/gongxiangpan/preview/main-1.jpg",
"https://s3.jiansun.vip/gongxiangpan/preview/sku-1.jpg",
"https://s3.jiansun.vip/gongxiangpan/preview/detail-1.jpg"
]
}
}
]
}
}
候选素材字段说明
| 字段 | 说明 |
|---|---|
materialId |
任务-详情素材 ID |
taskNo |
任务号 |
productModel |
对应 SPU |
categoryName |
店铺 |
shopName |
店铺,当前与 categoryName 相同 |
sceneName |
场景 |
uploadedAt |
上传时间,ISO 8601 格式 |
isFullSet |
是否整套;当前规则为“同时拥有主图、SKU 图、详情图” |
downloadUrls.main |
主图预览直链数组 |
downloadUrls.sku |
SKU 图预览直链数组 |
downloadUrls.detail |
详情图预览直链数组 |
downloadUrls.all |
main + sku + detail 合并后的数组 |
说明:
task-detail分支返回的是全部候选,不是只返回一条。- 预览链接可以直接打开或下载。
- 历史
任务-详情会按同一套资产规则判断,不再依赖人工勾选。 - 顶层
categoryName/shopName是便捷字段;如果要给用户展示候选素材的真实店铺,请优先使用candidates[].shopName。
5. 下载说明
5.1 白底图
白底图返回的是下载链接:
- 单张图:
whiteBackground.fixed[*].downloadUrl/whiteBackground.other[*].downloadUrl - 整包 ZIP:
downloadUrls.zip
调用方式:
GET https://sc.jiansun.vip/api/external/download?token=xxx
5.2 任务-详情整套
任务-详情返回的是可直接访问的预览图直链数组:
downloadUrls.maindownloadUrls.skudownloadUrls.detaildownloadUrls.all
这一分支不返回 zip,也不需要再调下载 token 接口。
补充说明:
- 当前默认回包中的预览图资源域名为
https://s3.jiansun.vip https://s3.yydd.ai仅保留为备用资源域名说明,不作为当前默认对接地址
6. 错误码
6.1 通用错误
| HTTP 状态码 | 错误码 | 说明 |
|---|---|---|
| 401 | INVALID_API_KEY |
API Key 无效或缺失 |
| 400 | MISSING_PARAM |
没有传 sku 或 spu |
| 400 | RESOURCE_TYPE_INVALID |
resourceType 不是 white-background 或 task-detail |
| 500 | SERVER_ERROR |
服务器内部错误 |
6.2 白底图分支错误
| HTTP 状态码 | 错误码 | 说明 |
|---|---|---|
| 404 | SKU_NOT_FOUND |
未找到对应的标准模型 SKU |
| 409 | SKU_NOT_UNIQUE |
SKU 重复,暂无法对外提供白底图 |
| 404 | SPU_NOT_FOUND |
未找到对应的标准模型 SPU |
| 404 | NO_SKUS |
该 SPU 下没有 SKU 数据 |
| 404 | WHITE_BACKGROUND_NOT_FOUND |
该 SKU 暂无白底图 |
6.3 任务-详情分支错误
| HTTP 状态码 | 错误码 | 说明 |
|---|---|---|
| 404 | SKU_NOT_FOUND |
未找到对应的标准模型 SKU |
| 409 | SKU_NOT_UNIQUE |
SKU 重复,暂无法对外提供任务-详情整套素材 |
| 404 | TASK_DETAIL_NOT_FOUND |
该 SPU 下,或该 SKU 所属 SPU 下暂无任务-详情素材 |
| 404 | FULL_SET_NOT_FOUND |
有任务-详情素材,但没有任何一条同时拥有主图、SKU 图、详情图 |
7. cURL 示例
7.1 按 SKU 查询白底图
curl -X GET \
"https://sc.jiansun.vip/api/external/standard-model-white-background?sku=TEXT001452" \
-H "X-API-Key: your-api-key"
7.2 按 SPU 查询白底图 SKU 清单
curl -X GET \
"https://sc.jiansun.vip/api/external/standard-model-white-background?resourceType=white-background&spu=TEXT0014" \
-H "X-API-Key: your-api-key"
7.3 按 SPU 查询任务-详情整套候选
curl -X GET \
"https://sc.jiansun.vip/api/external/standard-model-white-background?resourceType=task-detail&spu=SPU001" \
-H "X-API-Key: your-api-key"
7.4 按 SKU 查询任务-详情整套候选
curl -X GET \
"https://sc.jiansun.vip/api/external/standard-model-white-background?resourceType=task-detail&sku=SKU001" \
-H "X-API-Key: your-api-key"
8. 接入建议
- 老的白底图调用方可以不改,继续传
sku即可。 - 如果是 AI 生图平台新流程,建议:
- 白底图:
spu -> sku -> 白底图详情 - 任务-详情:直接按
spu或sku查整套候选
- 白底图:
task-detail返回多个候选时,建议调用方按uploadedAt再做一次前端展示排序或筛选。task-detail使用的是预览图直链,不适合再按源文件 zip 的思路处理。
9. 当前联调状态
截至 2026-03-21,正式环境已部署并验证通过的内容:
/api/external/standard-model-white-background已支持white-background和task-detail- 不传
resourceType时,白底图老调用方式保持兼容 task-detail已支持spu/sku两种查询- 返回中已补充
shopName 任务-详情整套字段isFullSet已改为按主图 / SKU 图 / 详情图自动判定- 对外文档默认资源域名已统一到
https://s3.jiansun.vip,同时保留https://s3.yydd.ai作为备用说明 - 相关测试已通过:
standard-model-white-background-route、task-detail-full-set、url-rewrite - 构建验证已通过:
npm run build - 正式环境健康检查已通过:
/api/health - 正式环境真实调用已验证:
resourceType=task-detail&spu=CTG0290返回200resourceType=task-detail&sku=DNZ025802返回200- 白底图
spu=CTG0149返回200