Idempotência
Os pedidos de escrita aceitam um cabeçalho Idempotency-Key para que um pedido repetido nunca seja aplicado duas vezes.
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"}'
Regras
- Gere uma chave única por cada escrita lógica (um UUID funciona bem).
- Reutilize a mesma chave apenas para repetições exatas dessa escrita.
- Não reutilize uma chave entre payloads diferentes - isso devolve
409comcode: "CONFLICT". - As chaves são respeitadas durante 24 horas.
Onde se aplica
Idempotency-Key é obrigatório em todas as operações de escrita POST e PATCH de itens, pedidos, contatos, documentos de estoque e webhooks. As operações DELETE são naturalmente idempotentes e não exigem esse cabeçalho.
Com o SDK
O SDK aceita uma opção idempotencyKey em todos os métodos de escrita:
await fabhub.createItem(
{ name: 'Widget', itemType: 'product' },
{ idempotencyKey: crypto.randomUUID() },
);