Authentification et conventions générales
URL de base, authentification Bearer JWT, en-tête x-organization-id, pagination et format de réponse.
Authentification#
Les API utilisent la session Supabase de l’utilisateur. Dans le navigateur, le cookie de session suffit ; pour les intégrations, passez le JWT Supabase de l’utilisateur en Authorization: Bearer <jwt>. Sans authentification, 401.
BASE="https://saas.docklify.com/api"
TOKEN="<supabase-access-jwt>"
ORG="<organization-id>"
curl -s "$BASE/wms/inventory?page=1&page_size=20" \
-H "Authorization: Bearer $TOKEN" \
-H "x-organization-id: $ORG" | jq .Portée organisation#
Presque tous les endpoints sont isolés par tenant. Passez l’organisation via l’en-tête x-organization-id (recommandé) ou le paramètre organization_id. Un non-membre reçoit 403 ; sans organisation, 400.
Pagination#
Les endpoints de liste acceptent page et page_size (défaut 20, max 100 ; la file d’impression jusqu’à 200). Les réponses incluent meta : { total, page, page_size }.
Format de réponse#
Le succès renvoie { ok: true, data, meta? }. Les erreurs WMS renvoient { code, message, details? } avec le statut HTTP du catalogue (voir l’article des codes). Branchez sur code, jamais sur message.
// success (HTTP 200)
{ "ok": true, "data": { "id": "…" }, "meta": { "total": 128, "page": 1, "page_size": 20 } }
// error (e.g. HTTP 409)
{ "code": "WMS_STOCK_001", "message": "库存可用量不足", "details": { "item_id": "…" } }