幂等性
写请求接受 Idempotency-Key 标头,以确保重试的请求绝不会重复应用两次。
curl -X POST https://api.fabhub.app/v1/items \
-H "X-API-Key: $FABHUB_API_KEY" \
-H "Idempotency-Key: 0b9c4a2e-2f1d-4c7a-9b3e-2a1f5c8d7e6b" \
-H "Content-Type: application/json" \
-d '{"name":"Widget","itemType":"product"}'
规则
- 为每次逻辑写操作生成唯一密钥(使用 UUID 即可)。
- 仅在对同一次写操作进行精确重试时复用相同密钥。
- 不要在不同负载之间复用密钥 - 这会返回
409并带有code: "CONFLICT"。 - 密钥的有效期为 24 小时。
适用范围
所有针对物料、订单、联系人、库存单据和 Webhook 的 POST 与 PATCH 写入操作都必须提供 Idempotency-Key。DELETE 操作天然具备幂等性,因此无需此标头。
配合 SDK 使用
SDK 在每个写方法上都接受一个 idempotencyKey 选项:
await fabhub.createItem(
{ name: 'Widget', itemType: 'product' },
{ idempotencyKey: crypto.randomUUID() },
);