Lewati ke konten

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=&gtin=&limit= Katalog terbit. q mencari di nama/merek (min 2 huruf); limit maks 50
GET /v1/catalog/products/:id Satu produk beserta alias
Terminal window
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": { ... } } }.

Terminal window
# 1. edit (revisi saat ini = 1)
curl -X PATCH .../v1/internal/product-drafts/$ID -d '{"expectedRevision":1,"brand":"Merek Baru"}' ...
# 2. submit
curl -X POST .../v1/internal/product-drafts/$ID/submit -d '{}' ...
# 3. publish
curl -X POST .../v1/internal/product-drafts/$ID/review -d '{"decision":"approve"}' ...
Terminal window
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 } }.