Ale dirèkteman nan kontni an

Premye enpresyon depi yon sèvè

Nan mòd cloud, backend ou voye travay la bay cloud JodaPrint lan, epi cloud la pase l bay ajan an pa koneksyon ajan an kenbe louvri a. Sa mache depi nenpòt sèvè, dèyè nenpòt NAT, e enprimant lan pa bezwen aksesib depi entènèt.

1. Kreye yon kle API​

Tablo de bò → Devlopè → Kle API → Kreye. Chwazi otorizasyon jobs:write, jobs:read ak printers:read. Kle a (jp_live_…) parèt yon sèl fwa; mete l nan JODAPRINT_API_KEY.

Sèvi ak yon kle jp_test_… pou enprime nan anviwònman tès la olye sou yon vre enprimant.

2. Jwenn enprimant lan​

curl https://api.jodaprint.dev/v1/printers -H "Authorization: Bearer $JODAPRINT_API_KEY"

Chak enprimant gen yon id cloud (prn_…) epi li fè pati yon aparèy (dev_…). Vize yon enprimant ak printerId, oswa yon aparèy ak deviceId ak yon alias si w vle (receipt, label…) ki defini nan konfigirasyon aparèy la. San alyas, se enprimant pa defo aparèy la ki enprime.

3. Enprime​

Ak curl​

curl https://api.jodaprint.dev/v1/jobs \
-H "Authorization: Bearer $JODAPRINT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: komand-10492-resi" \
-d '{
"printerId": "prn_01J8Z2ABCDEF",
"type": "receipt",
"encoding": "json",
"data": { "width": "80mm", "blocks": [
{ "type": "text", "value": "Bonjou!", "align": "center", "bold": true, "size": 2 },
{ "type": "feed", "lines": 3 },
{ "type": "cut", "mode": "partial" }
] }
}'

Repons lan se travay la (201). Si aparèy la sou liy, li enprime nan mwens pase yon segonn; si se pa sa, travay la rete queued jiskaske aparèy la konekte ankò oswa travay la ekspire (24 èdtan pa defo).

Ak SDK Node la​

npm install @jodaprint/node
import { JodaPrintClient } from "@jodaprint/node";

const jp = new JodaPrintClient({ apiKey: process.env.JODAPRINT_API_KEY! });

const job = await jp.jobs.create(
{
deviceId: "dev_01J8Z2ABCDEF",
alias: "receipt",
type: "receipt",
encoding: "json",
data: { width: "80mm", blocks: [{ type: "text", value: "Bonjou!" }, { type: "cut" }] },
metadata: { orderId: "10492" },
},
{ idempotencyKey: "komand-10492-resi" },
);

const latest = await jp.jobs.get(job.id);
console.log(latest.state); // queued, sending, printed, failed oswa cancelled

Kliyan an eseye ankò lè gen limit vitès (429), erè sèvè ak erè rezo, ak yon delè k ap grandi. Chak kreyasyon travay toujou gen yon kle idanpotans (pa w la oswa youn li jenere): yon nouvo esè pa janm enprime de fwa.

4. Swiv travay la​

  • Mande GET /v1/jobs/{id}: travay la gen istwa eta li yo nan events.
  • Oswa resevwa webhook job.printed ak job.failed: gade Webhook.

Idanpotans​

Yon dezyèm travay ak menm Idempotency-Key nan 24 èdtan retounen premye travay la epi li pa enprime anyen. Sèvi ak nimewo kòmand ou: yon demann ki repete oswa yon doub klik pa janm enprime de fwa.

Apre sa​