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 nanevents. - Oswa resevwa webhook
job.printedakjob.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
- Referans API REST
- Referans SDK Node
- Modèl: enprime yon etikèt ou fè nan tablo de bò a ak
{ templateId, data }.