製品・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ヘッダーが返されます。そのページを全履歴と見なすと、古い改訂版を見落とします。