Queue ও job-এর জন্য Batch PDF generation API
Queue-safe JSON Render বা Template Render workflow দিয়ে অনেক PDF তৈরি করুন; chunking, retry, idempotency ও storage আপনার system own করে।
/api/v1/template-render Queue বা scheduled job থেকে অনেক PDF render করুন: কাজকে safe request-এ split করুন, প্রতিটি document বা template data item gPdf-এ পাঠান, তারপর returned PDF আপনার নিজের system-এ store বা deliver করুন।
কখন এই API ব্যবহার করবেন
- Scheduled বা event-driven batch-এ invoice, statement, label বা report generate করতে হবে।
- Stable template আছে এবং endpoint limit-এর মধ্যে একাধিক data item পাঠাতে পারেন।
- Browser worker চালানো ছাড়াই queue-friendly rendering দরকার।
- Deduplication, retry এবং output storage আপনি own করতে পারেন।
এটি কী replace করে না
- gPdf-কে batch scheduler, queue, storage system বা idempotency ledger বানাতে চান।
- Published rate-limit header বা server-side idempotency-key contract দরকার।
- Campaign-এর সব document render করার জন্য এক unbounded request দরকার।
কোন endpoint call করবেন
/api/v1/template-render
Template Render এই workflow-এর default path।
/api/v1/pdf/render
Workflow-তে related API path, template contract অথবা capabilities lookup দরকার হলে ব্যবহার করুন।
নূন্যতম request
POST /api/v1/template-render - দুই invoice data item-সহ ছোট batch।
{
"template_id": "invoice",
"data": [
{
"invoice_number": "INV-2026-101",
"date_of_issue": "2026-05-29",
"bill_to_name": "Buyer A",
"subtotal": "$50.00",
"total": "$50.00",
"amount_due": "$50.00",
"items": []
},
{
"invoice_number": "INV-2026-102",
"date_of_issue": "2026-05-29",
"bill_to_name": "Buyer B",
"subtotal": "$75.00",
"total": "$75.00",
"amount_due": "$75.00",
"items": []
}
]
}
gPdf কী করে
- প্রতিটি JSON Render বা Template Render request-এর PDF rendering।
- Documented public limit-এর মধ্যে Template Render data array।
- Queue worker-এর জন্য উপযোগী fast stateless render response।
- Shared request ID এবং error envelope behavior।
আপনার system-এর দায়িত্ব
- Queue design, chunking, concurrency, retry, deduplication এবং output storage।
- Business object selection, template choice এবং delivery workflow।
- Partial failure-এর পরে backoff policy, alerting এবং recovery।
Production checklist
- প্রতিটি request documented item ও payload limit-এর মধ্যে থাকে এমনভাবে work chunk করুন।
- প্রতি request-এর জন্য একটি X-Request-Id generate করুন এবং সেটিকে আপনার job ID-এর সাথে map করুন।
- শুধু network বা 5xx failure bounded exponential backoff দিয়ে retry করুন।
- Payload না বদলে 4xx validation failure retry করবেন না।
- আপনার retention policy অনুযায়ী output PDF বা source data store করুন।
দাবির সীমা
- gPdf render API, queue বা storage layer নয়।
- Public API আজ rate-limit header বা server-side idempotency key publish করে না।
- Retry safe করার দায়িত্ব আপনার system-এর।
Batch generation একটি integration pattern
Batch PDF generation আলাদা endpoint নয়। আপনার queue public render API-গুলো যেভাবে ব্যবহার করে, সেটিই এই pattern। Job ছোট, observable এবং retry-safe রাখুন।
Repeated layout-এর জন্য Template Render সাধারণত সবচেয়ে clean contract দেয়। Programmatic document বা custom layout-এর জন্য JSON Render এখনও available।
FAQ
- gPdf কি batch job API দেয়?
- না, আলাদা batch scheduler expose করা নেই। আপনার নিজের queue বা worker system থেকে JSON Render বা Template Render ব্যবহার করুন।
- Template Render কি একাধিক data item নিতে পারে?
- হ্যাঁ, public endpoint limit-এর মধ্যে পারে। বড় job request জুড়ে split করুন।
- Retry কে own করে?
- Retry, backoff, deduplication এবং idempotency আপনার system own করে। Traceability-এর জন্য gPdf request ID echo করে।
- এক request-এ কি অনেক ভিন্ন layout render করতে পারি?
- Layout বা template ID আলাদা হলে আলাদা request ব্যবহার করুন। প্রতিটি request simple এবং traceable রাখুন।