Endpoint dataset
Basis URL: https://navv-ci-core.navvigasi.workers.dev. Semua endpoint (kecuali /v1/session) membutuhkan Authorization: Bearer <token sesi dataset>.
| Endpoint | Fungsi |
|---|---|
POST /v1/session |
Buat sesi dengan admin token. Body { email, role: "operator" | "reviewer" } → { token, actorId, email, role } |
GET /v1/internal/product-drafts |
100 draft terbaru |
GET /v1/internal/product-drafts/:id |
Satu draft |
POST /v1/internal/product-drafts |
Buat draft |
PATCH /v1/internal/product-drafts/:id |
Edit draft. Wajib expectedRevision |
POST /v1/internal/product-drafts/:id/submit |
Kirim ke review |
POST /v1/internal/product-drafts/:id/review |
{ decision: "approve" | "reject" | "request_changes" } |
GET /v1/catalog/products?q=>in=&limit= |
Katalog terbit. q mencari di nama/merek (min 2 huruf); limit maks 50 |
GET /v1/catalog/products/:id |
Satu produk beserta alias |
Contoh: buat draft
Section titled “Contoh: buat draft”curl -X POST https://navv-ci-core.navvigasi.workers.dev/v1/internal/product-drafts \ -H "authorization: Bearer $TOKEN_SESI" -H "content-type: application/json" \ -d '{ "name": "Susu UHT Cokelat 250 mL", "brand": "ContohMerek", "variant": "cokelat", "gtin14": "8991234567891", "netContent": { "value": 250, "unit": "MLT" }, "packageFamily": "carton", "tradeItemLevel": "each", "aliases": ["susu coklat", "choco milk"], "notes": "Sumber: foto kemasan 22 Okt" }'Respons 201: { "data": { "id": "...", "status": "draft", "revision": 1, "payload": { ... } } }.
Contoh: edit lalu submit lalu publish
Section titled “Contoh: edit lalu submit lalu publish”# 1. edit (revisi saat ini = 1)curl -X PATCH .../v1/internal/product-drafts/$ID -d '{"expectedRevision":1,"brand":"Merek Baru"}' ...# 2. submitcurl -X POST .../v1/internal/product-drafts/$ID/submit -d '{}' ...# 3. publishcurl -X POST .../v1/internal/product-drafts/$ID/review -d '{"decision":"approve"}' ...Mencari duplikat sebelum membuat draft
Section titled “Mencari duplikat sebelum membuat draft”curl ".../v1/catalog/products?q=susu%20cokelat&limit=50" -H "authorization: Bearer $TOKEN_SESI"curl ".../v1/catalog/products?gtin=8991234567891" -H "authorization: Bearer $TOKEN_SESI"Respons: { "data": { "items": [ ... ], "hasMore": false } }.