멱등성
쓰기 요청은 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가 적합합니다).
- 해당 쓰기의 정확한 재시도에 대해서만 동일한 키를 재사용하세요.
- 서로 다른 페이로드에 키를 재사용하지 마세요 - 그러면
code: "CONFLICT"와 함께409가 반환됩니다. - 키는 24시간 동안 유효합니다.
적용 대상
Idempotency-Key는 품목, 주문, 연락처, 재고 문서 및 웹훅에 대한 모든 POST 및 PATCH 쓰기 요청에 필요합니다. DELETE 작업은 본질적으로 멱등하므로 이 헤더가 필요하지 않습니다.
SDK 사용
SDK는 모든 쓰기 메서드에서 idempotencyKey 옵션을 받습니다:
await fabhub.createItem(
{ name: 'Widget', itemType: 'product' },
{ idempotencyKey: crypto.randomUUID() },
);