API dokümantasyonu
ZPL etiketini HTTP isteğiyle PNG'ye çevir. Kargo, e-ticaret ve depo sistemlerinden doğrudan çağrılabilir.
Hızlı başlangıç
- Hesap oluştur veya giriş yap.
- Hesabım sayfasından bir API anahtarı oluştur. Anahtar yalnızca oluşturulduğu anda gösterilir; kopyala.
- Aşağıdaki "API'yi dene" bölümüne anahtarı yapıştırıp bir etiket gönder, ya da kendi sisteminden
POST /convertçağır.
İlk isteğin
Bir ZPL etiketini PNG olarak almak için tek istek yeter. Dört dilde de aynı sonucu verir.
curl -X POST 'https://zpl.podyumplus.com/convert' \
-H 'X-API-Key: <ANAHTAR>' \
-H 'Content-Type: text/plain; charset=utf-8' \
--data-raw '^XA^CI28^FO40,40^A0N,40,40^FDAlıcı: Ahmet Yılmaz^FS^XZ' \
-o etiket.png
import fs from 'node:fs';
const res = await fetch('https://zpl.podyumplus.com/convert', {
method: 'POST',
headers: { 'X-API-Key': '<ANAHTAR>', 'Content-Type': 'text/plain; charset=utf-8' },
body: '^XA^CI28^FO40,40^A0N,40,40^FDAlıcı: Ahmet Yılmaz^FS^XZ',
});
if (!res.ok) throw new Error((await res.json()).error);
fs.writeFileSync('etiket.png', Buffer.from(await res.arrayBuffer()));
<?php
$ch = curl_init('https://zpl.podyumplus.com/convert');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => '^XA^CI28^FO40,40^A0N,40,40^FDAlıcı: Ahmet Yılmaz^FS^XZ',
CURLOPT_HTTPHEADER => ['X-API-Key: <ANAHTAR>', 'Content-Type: text/plain; charset=utf-8'],
CURLOPT_RETURNTRANSFER => true,
]);
file_put_contents('etiket.png', curl_exec($ch));
import requests
res = requests.post(
'https://zpl.podyumplus.com/convert',
headers={'X-API-Key': '<ANAHTAR>', 'Content-Type': 'text/plain; charset=utf-8'},
data='^XA^CI28^FO40,40^A0N,40,40^FDAlıcı: Ahmet Yılmaz^FS^XZ'.encode('utf-8'),
timeout=30,
)
res.raise_for_status()
open('etiket.png', 'wb').write(res.content)
Yanıt başarılıysa PNG dosyası gelir. Hata olursa {"error": "..."} JSON'u döner; hata kodları aşağıda.
Kimlik doğrulama
Her /convert isteğinde X-API-Key başlığı gerekir. Anahtar, hesabınıza bağlıdır ve günlük kullanım hakkı hesap başına sayılır.
X-API-Key: zpl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Uç noktalar
| Yöntem ve yol | Kimlik | Ne yapar |
|---|---|---|
POST /convert | API anahtarı | ZPL'i PNG'ye çevirir. Ana uç nokta. |
GET /health | Yok | Servis çalışıyor mu. {"ok": true} döner. |
Parametreler
| Ad | Nerede | Değerler | Açıklama |
|---|---|---|---|
X-API-Key | Başlık | Metin | Zorunlu. Hesabınızın anahtarı. |
Content-Type | Başlık | text/plain veya application/json | Düz ZPL göndermek için text/plain; JSON gövde için application/json. |
dpmm | Sorgu | 6, 8, 12, 24 | Yazıcı çözünürlüğü: 152, 203 (varsayılan), 300 ve 600 dpi. |
format | Sorgu | png (varsayılan), json, pdf | png: ilk etiketin PNG'si. json: tüm etiketler base64 PNG olarak JSON içinde. pdf: tüm etiketler, her biri ayrı sayfa olarak tek PDF (sayfa boyutu etiketin gerçek ölçüsü). |
gray | Sorgu | 1 | Gri tonlu (anti-aliased) çıktı. Verilmezse siyah-beyaz. |
rotate | Sorgu | 0 (varsayılan), 90, 180, 270 | Çıktı görüntüsünü saat yönünde döndürür. 90 ve 270'te genişlik ile yükseklik yer değiştirir. |
width | Sorgu | 10 – 300 (mm) | Etiket genişliği. Verilmezse ZPL'deki ^PW kullanılır. |
height | Sorgu | 10 – 600 (mm) | Etiket yüksekliği. Verilmezse ZPL'deki ^LL kullanılır. |
Etiket boyutu ZPL içindeki ^PW (genişlik) ve ^LL (yükseklik) değerlerinden alınır. Belirtilmemişse 4×6 inç kullanılır. Türkçe karakterler için etikette ^CI28 kullanmak gerekmez; kodlama belirtilmemişse UTF-8 varsayılır.
Yanıtlar ve hatalar
Başarılı yanıt (200)
Varsayılan: ilk etiketin PNG'si, Content-Type: image/png. Yanıt başlığı X-Label-Count toplam etiket sayısını verir.
{
"count": 2,
"labels": [
{ "width": 812, "height": 600, "png_base64": "iVBORw0KGgo..." },
{ "width": 812, "height": 600, "png_base64": "iVBORw0KGgo..." }
]
}
Hata yanıtları
Hatalar her zaman {"error": "..."} biçiminde JSON olarak döner.
| Kod | Anlamı | Ne yapmalı |
|---|---|---|
400 | Geçersiz ZPL (^XA yok), hatalı dpmm, 10'dan fazla etiket | İstek gövdesini ve parametreleri kontrol et. |
401 | Anahtar eksik, yanlış veya silinmiş | Anahtarı kontrol et; gerekirse yenisini oluştur. |
405 | Yanlış yöntem (ör. GET /convert) | POST kullan. |
413 | İstek gövdesi 512 KB'tan büyük | Etiketi küçült veya parçala. |
429 | Günlük kullanım hakkı doldu | Ertesi gün (UTC) tekrar dene. |
500 | Beklenmeyen hata veya çizim zaman aşımı | Tekrar dene; sürerse etiketi bize ilet. |
503 | Sunucu yoğun, kuyruk dolu | Kısa bir süre sonra tekrar dene. |
Sınırlar
- İstek başına: en fazla 512 KB gövde ve 10 etiket.
- Günlük kullanım: hesap başına 100 istek (her
/convertisteği bir hak sayılır). Limit UTC gece yarısında sıfırlanır. - Çizim süresi: etiket başına en fazla 5 saniye.
- Eşzamanlılık: sunucu aynı anda birkaç çizim yapar; yoğunlukta 503 dönebilir.
Kod örnekleri
cURL, JavaScript, PHP ve Python örnekleri için ana sayfadaki API bölümüne bak. Hızlı bir cURL örneği:
curl -X POST 'https://zpl.podyumplus.com/convert?dpmm=8' \
-H 'X-API-Key: <ANAHTAR>' \
-H 'Content-Type: text/plain' \
--data-raw '^XA
^CI28
^FO40,40^A0N,40,40^FDAlıcı: Ahmet Yılmaz^FS
^XZ' \
-o etiket.png
API'yi dene
Anahtarını gir, bir etiket gönder ve sonucu burada gör. İstekler doğrudan bu sunucuya gider; anahtar tarayıcı dışına çıkmaz ve sayfa kapandığında silinir.
Eşdeğer cURL
