diff --git a/API_CONTRACTS.md b/API_CONTRACTS.md index d3f041d..8211e10 100644 --- a/API_CONTRACTS.md +++ b/API_CONTRACTS.md @@ -37,33 +37,35 @@ Retorna a lista de impressoras instaladas no servidor onde a API está rodando. ### 2. Imprimir HTML (Etiquetas/Layouts) -Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada. Ideal para etiquetas. +Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada via Fila de Processamento (BullMQ). - **Método:** `POST` -- **Rota:** `/printer/print-html` +- **Rota:** `/printer/print-html` ou `/printer/:printerName/print-html` - **Corpo da Requisição (JSON):** ```json { "html": "
Minha Etiqueta
...", - "printerName": "POS-80", // Nome exato da impressora (conforme retornado na listagem) + "printerName": "POS-80", // Opcional se passado na URL "width": "60mm", // Opcional. Largura do papel/etiqueta. Default: 80mm - "height": "40mm" // Opcional. Altura da etiqueta. Default: auto + "height": "40mm", // Opcional. Altura da etiqueta. Default: auto + "jobId": "meu-id-unico-123" // Opcional. ID para idempotência na fila. } ``` - **Detalhes:** - O backend injeta automaticamente o script do Tailwind CSS. - O HTML é renderizado via Puppeteer (Chrome headless). + - Tarefas são processadas de forma assíncrona via Redis/BullMQ. --- ### 3. Imprimir Texto Simples (ESC/POS) -Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos, sem formatação complexa. +Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos. - **Método:** `POST` -- **Rota:** `/printer/print` +- **Rota:** `/printer/print` ou `/printer/:printerName/print` - **Corpo da Requisição (JSON):** ```json @@ -76,7 +78,7 @@ Envia comandos de texto diretamente para a impressora. Ideal para cupons simples ], "alignment": "center", // "left", "center", "right". Default: left "upsideDown": false, // Se true, imprime de cabeça para baixo - "printerInterface": "POS-80" // Pode ser nome da impressora (USB) ou "tcp://192.168.1.100" (Rede) + "printerInterface": "POS-80" // Opcional se passado na URL. Suporta "tcp://192.168.1.100" ou nome da impressora. } ``` @@ -98,6 +100,7 @@ export interface PrintHtmlPayload { printerName: string; width?: string; height?: string; + jobId?: string; } export interface PrintTextPayload { @@ -107,3 +110,7 @@ export interface PrintTextPayload { printerInterface?: string; } ``` + +## Swagger + +A documentação interativa completa (OpenAPI) está disponível em `/api`. Lá você pode testar todos os endpoints e ver os esquemas detalhados de cada DTO.