Appearance
Templates API
Endpoints
Listagem e CRUD
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /templates | Lista templates com filtros opcionais |
| GET | /templates/:id | Retorna um template pelo ID |
| POST | /templates | Cria um novo template |
| PUT | /templates/:id | Atualiza um template existente |
| DELETE | /templates/:id | Remove um template |
Upload de PDF
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /templates/upload-pdf | Faz upload de PDF e cria template como draft |
Request:
Content-Type: multipart/form-data
file: <arquivo PDF> (máx. 2MB)Response:
typescript
type UploadPdfResponse = {
id: string
pdfPath: string
status: 'draft'
}Validações (Frontend):
| Validação | Regra |
|---|---|
| Formato | Apenas application/pdf |
| Tamanho | Máximo 2MB (2 * 1024 * 1024 bytes) |
Fluxo:
PdfUploader.vue
↓
Valida formato e tamanho (frontend)
↓
uploadTemplatePdfService(file)
↓
POST /templates/upload-pdf (multipart/form-data)
↓
Backend:
- Faz upload do PDF para S3
- Cria template com status 'draft'
- Retorna { id, pdfPath, status }
↓
Store atualiza:
- templateId = id
- pdfPath = path
- templateStatus = 'draft'
- currentStep = 'editing'