Guia do produto e da API

Rascunhos, publicação e versões

Salvar não é publicar

Salvar atualiza o rascunho do modelo. Publicar seleciona uma versão para produção. Um modelo pode ter uma versão publicada enquanto você trabalha em um rascunho mais recente; não presuma que o rascunho já está publicado.

Antes de publicar

Teste a prévia com dados de exemplo e dados reais longos e confira os formatos necessários. Compare versões ativa e publicada no Histórico. Publique quando o conteúdo desejado para produção estiver pronto.

Restaurar do histórico

Restaurar uma versão histórica salva o conteúdo como nova versão ativa; não apaga o histórico anterior. Confira o conteúdo após restaurar. Publique separadamente se quiser substituir a versão publicada.

Ler, restaurar e publicar uma versão

Cada salvamento manual cria uma nova versão e nada é sobrescrito. Restaurar uma versão anterior não exclui as mais recentes: grava a definição antiga como nova versão, mantendo o histórico completo.

cURL
# Lista de versões - mais recente primeiro
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# A definição de uma versão
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history/3 \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# Voltar àquela versão - gravada como nova versão, preservando a antiga
curl -X POST https://api.pdfgine.com/api/v1/templates/invoice/history/3/restore \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# Publicar o rascunho
curl -X POST https://api.pdfgine.com/api/v1/templates/invoice/publish \
  -H "X-PDFgine-Key: $PDFGINE_KEY"
HTTP 409
{
  "type": "https://pdfgine.dev/problems/template-conflict",
  "title": "Conflito de modelo",
  "status": 409,
  "detail": "O modelo foi alterado por outra operação. Carregue a versão atual e tente novamente.",
  "templateCode": "invoice",
  "currentVersion": 19,
  "currentDraftRevision": 0
}

Uma gravação com expectedVersion desatualizado é recusada em vez de mesclada. O corpo do 409 informa o modelo, sua versão atual e a revisão do rascunho; leia a definição atual, reaplique sua alteração e grave novamente.

Conflitos e códigos de conexão

Salvar uma versão antiga pode gerar conflito se outra sessão alterou o modelo. Revise o estado e o histórico em vez de sobrescrever às cegas. O código de conexão identifica o modelo nas solicitações API. Se mudar, atualize também as integrações que o usam.

Fluxo completo de relatório →

Os problemas mais comuns

  • Salvar não é publicar. Um rascunho pode estar perfeito por dias enquanto a produção continua usando a última versão publicada.
  • Restaurar não exclui nada. Grava a definição antiga como nova versão, preservando o histórico e aumentando o número da versão.
  • Um 409 repetido com o mesmo expectedVersion é recusado novamente. Leia a versão atual, aplique sua alteração sobre ela e grave.
  • Uma renderização com purpose editor-test usa o rascunho; production usa a versão publicada. Duas renderizações aparentemente iguais podem vir de designs diferentes.
  • O endpoint de histórico é paginado. Sem limit, você recebe a página mais recente e um cabeçalho Link; tratar essa página como todo o histórico esconde as revisões antigas.