Passer au contenu principal

HTTP API

Tous les points de terminaison sont servis à partir de l’hôte du pilote configuré.
http://<driver-host>:8080
https://plato-printer.local

Cible d’imprimante commune

Les points de terminaison de ciblage d’imprimante nécessitent ip_address et port.
{
  "vendor_id": 1208,
  "product_id": 1208,
  "ip_address": "192.168.1.50",
  "port": "9100",
  "beep": false
}
vendor_id et product_id sont acceptés pour la compatibilité client. Le chemin d’impression réseau actuel cible les imprimantes ip_address et port.

POST /imprimer

Met en file d’attente un travail d’impression et revient immédiatement.
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
}
ChampRequisRemarques
ip_addressOuiAdresse IP de l’imprimante.
portOuiPort TCP de l’imprimante, généralement 9100.
chunksOuiTableau non vide de morceaux base64 ESC/POS.
beepNonAjoute la séquence de bips configurée après l’impression/découpe.
runAtNonHorodatage en millisecondes, chaîne numérique ou chaîne de date analysable. Les valeurs futures retardent le travail BullMQ.
Réponse réussie :
{
  "ok": true,
  "jobId": "42",
  "queued": true
}
Erreurs de validation :
StatutErreur
400Missing printer address
400Missing print data
400Invalid runAt timestamp

POST /statut

Renvoie l’état de l’imprimante en cache ou en direct.
{
  "ip_address": "192.168.1.50",
  "port": "9100",
  "validate": true
}
Réponse:
{
  "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
}
Comportement d’état :
  • Si la file d’attente contient des tâches en attente, actives ou retardées, l’état renvoie l’état mis en cache avec busy: true.
  • Si la file d’attente est inactive, le pilote peut sonder l’imprimante.
  • source: "probe" signifie qu’une vérification de socket en direct a été effectuée.
  • source: "cache" signifie que la réponse provient de l’état stocké et du nombre de files d’attente.

POST/bip

Met en file d’attente la séquence de bips pour une imprimante.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
Réponse:
{
  "ok": true,
  "jobId": "43",
  "queued": true
}

POST /tiroir-caisse

Met en file d’attente la commande d’impulsion du tiroir-caisse ESC/POS.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
Réponse:
{
  "ok": true,
  "jobId": "44",
  "queued": true
}

OBTENIR/santé

Renvoie l’état du processus et la version de build.
{
  "ok": true,
  "version": 66,
  "uptime": 123.45
}

GET / état de la file d’attente

Renvoie les files d’attente d’imprimante connues.
{
  "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 /statut-mesh

Lorsque le maillage est activé :
{
  "enabled": true,
  "path": "/mesh",
  "port": 8080,
  "connectedPeers": [],
  "peerCount": 0
}
Lorsque le maillage est désactivé :
{
  "enabled": false,
  "message": "Mesh disabled by config.json"
}

OBTENIR /ca.crt

Disponible lorsque HTTPS est activé. Télécharge le certificat CA sous le nom plato-printer-ca.crt.

WS/maille

Point de terminaison de signalisation PeerJS monté lorsque features.meshEnabled est vrai.