跳到主要内容

数字产品护照 API:开发者文档

通过客户 API,您自己的系统可以创建产品、维护数据字段、发布护照,并下载二维码和 PDF。认证使用 API Key,由您在平台中自行生成。完整说明以 OpenAPI 3.1 文件形式提供。

更新日期: 2026年10月1日

概述

客户 API 是基于 JSON 的 REST 接口。它操作的是您组织的数据,也就是您在网页界面中看到的同一批产品和护照。典型用途包括对接 ERP 或 PLM 系统、每晚同步主数据,或用脚本获取用于印刷的二维码。

基础 URL 为 https://dpp.com2u.selfhost.eu/api/v1/integration。除二维码和 PDF 下载外,所有响应均为 JSON。

下载规范

所有端点、字段、示例和错误响应的机器可读参考是一份 OpenAPI 3.1 规范,安全方案为 ApiKeyAuth:

API 本身也在 GET /api/v1/integration/openapi.json 提供同一文件,无需 Key。您可以将其导入 Swagger UI、Postman 或任意代码生成器。文件中的说明文字为德语。

快速入门

  1. 注册或登录。API 属于付费套餐,请参见价格。
  2. 在平台中打开“组织”区域并生成 API Key。请立即复制,因为它只显示一次。
  3. 测试连接:
curl -H "X-API-Key: $DPP_API_KEY" \
  https://dpp.com2u.selfhost.eu/api/v1/integration/me

响应会列出您的组织、Key 的权限范围(Scope)、您的套餐以及 API 调用的使用量。

认证

每次调用时在请求头 X-API-Key 中发送 Key。使用 Authorization: Bearer dpp_key_… 效果相同。组织始终由 Key 确定,作为参数传入的组织 ID 不会被采用。API 不接受网页界面的会话令牌。

Key 属于生成它的人员。所有操作都以该人员的所有者或管理员权限执行。如果该人员失去此角色,API 将返回 403,直到生成新的 Key。重新生成会立即撤销原有 Key。平台只保存 Key 的 SHA-256 哈希值。

端点

所有路径都位于 /api/v1/integration 之下。每个端点都需要一个权限范围,新 Key 拥有全部四个。

方法和路径用途权限范围
GET /me组织、权限范围、套餐、使用量任意 Key
GET /schemas模板及其数据字段products:read
POST /products创建产品,可同时传入数据字段products:write
GET /products列出产品(status、q、limit、offset)products:read
GET /products/{id}读取产品products:read
GET /products/{id}/fields读取当前数据字段products:read
PATCH /products/{id}/fields设置数据字段products:write
POST /products/{id}/passports生成并发布护照passports:write
GET /products/{id}/passports列出护照版本passports:read
POST /passports/{id}/publish发布草稿版本passports:write
GET /products/{id}/passport/qrPNG 或 SVG 格式的二维码passports:read
GET /products/{id}/passport/pdfPDF 格式的护照passports:read

创建产品

name 为必填项。如果不提供 schema_key,将使用您组织的默认数据模板(Schema);可用的键可通过 GET /schemas 获取。数据字段可以直接一并传入。field_status 用于设置值的状态,只有 approved 的值才会进入护照。

curl -X POST https://dpp.com2u.selfhost.eu/api/v1/integration/products \
  -H "X-API-Key: $DPP_API_KEY" -H "Content-Type: application/json" \
  -d '{"name":"Battery module X1","category":"Industrial batteries",
       "manufacturer_ref":"ART-4711","schema_key":"battery-v1",
       "fields":{"battery_chemistry":"LFP"},"field_status":"approved"}'

状态码为 201 的响应包含产品的 id。它同时也是写入二维码的唯一产品标识符。与网页界面一样,您套餐的产品额度同样适用。

发布护照,下载二维码和 PDF

护照会将已批准的数据字段固定为一个新版本。如果缺少必填字段,API 返回 422,并在 missing_fields 中列出这些字段。

curl -X POST -H "X-API-Key: $DPP_API_KEY" \
  https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passports

curl -o qr.png -H "X-API-Key: $DPP_API_KEY" \
  "https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/qr?format=png&size=600"

curl -o passport.pdf -H "X-API-Key: $DPP_API_KEY" \
  https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/pdf

如需矢量格式的二维码,请使用 format=svg。PDF 仅在发布后提供,发布前 API 返回 404。二维码指向公开的护照页面,详情请参见从 Excel 创建数字产品护照。

错误代码

状态码含义
401Key 缺失、无效、已撤销或已过期
402额度已用完:API 调用、产品或护照
403缺少权限范围、套餐不含 API、Key 创建者已不再是所有者或管理员、组织已被停用
404对象不存在或属于其他组织
422输入无效、字段未知或缺少必填字段

对于 401 和 403,detail 包含一个带有 code 和 message 的对象,例如 insufficient_scope 或 api_not_in_plan。对于 402,detail 会列出资源、上限和目前的使用量。

限制

通过 API 您可以设置产品层级的数据字段。批次或单件商品的字段请在网页界面中维护。API 没有频率限制,但每个套餐有调用额度;每次经过认证的调用都会计数。获取规范不计数。当前套餐和额度请参见价格页面。如需不通过 API 批量导入,可使用数据模板。

常见问题

在哪里获取 API Key?

在平台的“组织”区域。所有者(Owner)和管理员可以在那里生成 Key。Key 只显示一次,每个组织只有一个 Key。

哪些套餐包含 API?

Starter、Professional 和 Enterprise 套餐包含 API,免费试用套餐不包含。套餐中每个护照额度包含 10 次 API 调用。当前数值请参见价格页面。

有调用频率限制吗?

没有单独的频率限制(HTTP 429)。使用量由套餐的调用额度限制。额度用完后,API 返回 402。

可以将规范导入 Swagger UI 或 Postman 吗?

可以。OpenAPI 3.1 文件提供 JSON 和 YAML 两种格式下载,可导入常用工具和代码生成器。

从您的产品数据开始

免费试用 30 天:导入数据、检查数据,并将其发布为产品护照。