製品・APIガイド

下書き、公開、バージョン

保存と公開の違い

保存は作業中の下書きを更新します。公開は本番で使用するバージョンを選びます。公開済みバージョンを維持しながら新しい下書きを編集できるため、下書きの変更がすでに公開済みとは限りません。

公開前の確認

サンプルデータと、実際の利用を想定した長いデータの両方でプレビューし、必要な出力形式を確認してください。履歴で編集中と公開済みのバージョンを比較し、本番で使う内容が完成したら公開してください。

履歴からの復元

過去のバージョンを復元すると、その内容を新しい編集中バージョンとして保存します。以前の履歴は削除されません。復元後は内容を再確認してください。公開済みバージョンも置き換える場合は、別途公開してください。

バージョンの読み取り、復元、公開

手動保存のたびに新しいバージョンが作成され、上書きされることはありません。古いバージョンを復元しても、新しいバージョンは削除されません。古い定義が新しいバージョンとして書き込まれるため、履歴は完全に保持されます。

cURL
# バージョン一覧 - 新しい順
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# 1つのバージョンの定義
curl -s https://api.pdfgine.com/api/v1/templates/invoice/history/3 \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# そのバージョンに戻す - 新しいバージョンとして記録し、古いものは保持
curl -X POST https://api.pdfgine.com/api/v1/templates/invoice/history/3/restore \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

# 下書きを公開
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": "テンプレートの競合",
  "status": 409,
  "detail": "別の操作によりテンプレートが変更されました。現在のバージョンを読み込み、もう一度お試しください。",
  "templateCode": "invoice",
  "currentVersion": 19,
  "currentDraftRevision": 0
}

古いexpectedVersionを含む書き込みは、マージされずに拒否されます。409の本文には、テンプレート、現在のバージョン、下書きの改訂番号が含まれます。現在の定義を読み取り、変更を適用し直して、もう一度書き込んでください。

競合と接続コード

別のセッションが同じテンプレートを変更した場合、古いバージョンからの保存は競合することがあります。変更を無条件に上書きせず、現在の状態と履歴を確認してください。接続コードはAPIリクエストでテンプレートを識別します。コードを変更したら、利用している連携も更新してください。

レポート作成の全体フロー →

よくある問題

  • 保存と公開は異なります。下書きが何日も前に完成していても、本番生成は最後に公開したバージョンを使用し続けます。
  • 復元では、何も削除しません。古い定義を新しいバージョンとして書き込むため、履歴が保持され、バージョン番号は増え続けます。
  • 同じexpectedVersionで409を再試行すると、再び拒否されます。現在のバージョンを読み取り、その上に変更を適用して書き込んでください。
  • purposeがeditor-testの生成は下書き、productionは公開済みバージョンを使用します。一見同じ2つの生成でも、異なるデザインを使用している場合があります。
  • 履歴エンドポイントはページ分割されます。limitを指定しない場合、最新のページとLinkヘッダーが返されます。そのページを全履歴と見なすと、古い改訂版を見落とします。