Ana içeriğe atla

HTTP API

Tüm uç noktalara, yapılandırılmış sürücü ana bilgisayarından hizmet verilir.
http://<driver-host>:8080
https://plato-printer.local

Ortak Yazıcı Hedefi

Yazıcı hedefleme uç noktaları ip_address ve port gerektirir.
{
  "vendor_id": 1208,
  "product_id": 1208,
  "ip_address": "192.168.1.50",
  "port": "9100",
  "beep": false
}
vendor_id ve product_id, istemci uyumluluğu açısından kabul edilir. Geçerli ağ yazdırma yolu, ip_address ve port yazıcılarını hedefler.

POST /yazdır

Bir yazdırma işini kuyruğa alır ve hemen geri döner.
POST /print
Content-Type: application/json
``````json
{
  "vendor_id": 1208,
  "product_id": 1208,
  "ip_address": "192.168.1.50",
  "port": "9100",
  "beep": true,
  "chunks": ["GSB2MAA..."],
  "runAt": 1735689600000
}
AlanGerekliNotlar
ip_addressEvetYazıcı IP adresi.
portEvetYazıcı TCP bağlantı noktası, genellikle 9100.
chunksEvetBoş olmayan base64 ESC/POS parçaları dizisi.
beepHAYIRYazdırma/kesme sonrasında yapılandırılmış bip sesi dizisini ekler.
runAtHAYIRMilisaniyelik zaman damgası, sayısal dize veya ayrıştırılabilir tarih dizisi. Gelecek değerler BullMQ işini geciktirir.
Başarılı yanıt:
{
  "ok": true,
  "jobId": "42",
  "queued": true
}
Doğrulama hataları:
DurumHata
400Missing printer address
400Missing print data
400Invalid runAt timestamp

POST /durum

Önbelleğe alınmış veya canlı yazıcı durumunu döndürür.
{
  "ip_address": "192.168.1.50",
  "port": "9100",
  "validate": true
}
Cevap:
{
  "ok": true,
  "printerKey": "192.168.1.50:9100",
  "status": "online",
  "validated": true,
  "busy": false,
  "source": "probe",
  "lastPingOn": "2026-06-16T07:00:00.000Z",
  "lastError": null,
  "waiting": 0,
  "active": 0,
  "delayed": 0,
  "failed": 0,
  "completed": 0
}
Durum davranışı:
  • Kuyrukta bekleyen, etkin veya gecikmeli işler varsa durum, busy: true ile önbelleğe alınmış durumu döndürür.
  • Kuyruk boşsa sürücü yazıcıyı inceleyebilir.
  • source: "probe", canlı soket kontrolünün gerçekleştirildiği anlamına gelir.
  • source: "cache", yanıtın depolanan durumdan ve kuyruk sayımlarından geldiği anlamına gelir.

POST /bip sesi

Bir yazıcı için bip sesi sırasını sıraya koyar.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
Cevap:
{
  "ok": true,
  "jobId": "43",
  "queued": true
}

POST /para çekmecesi

ESC/POS nakit çekmecesi darbe komutunu sıraya koyar.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
Cevap:
{
  "ok": true,
  "jobId": "44",
  "queued": true
}

GET /sağlık

İşlem durumunu ve derleme sürümünü döndürür.
{
  "ok": true,
  "version": 66,
  "uptime": 123.45
}

GET /sıra durumu

Bilinen yazıcı kuyruklarını döndürür.
{
  "queue": [
    {
      "printerKey": "192.168.1.50:9100",
      "status": "online",
      "validated": false,
      "busy": false,
      "source": "cache",
      "lastPingOn": "2026-06-16T07:00:00.000Z",
      "lastError": null,
      "waiting": 0,
      "active": 0,
      "delayed": 0,
      "failed": 0,
      "completed": 0
    }
  ],
  "totalPending": 0,
  "isProcessing": false
}

GET / ağ durumu

Ağ etkinleştirildiğinde:
{
  "enabled": true,
  "path": "/mesh",
  "port": 8080,
  "connectedPeers": [],
  "peerCount": 0
}
Ağ devre dışı bırakıldığında:
{
  "enabled": false,
  "message": "Mesh disabled by config.json"
}

GET /ca.crt

HTTPS etkinleştirildiğinde kullanılabilir. CA sertifikasını plato-printer-ca.crt olarak indirir.

WS / ağ

features.meshEnabled doğru olduğunda PeerJS sinyal uç noktası bağlanır.