HTTP API
Template Print mendukung trigger render dan unduh dokumen langsung melalui HTTP API. Baik Block Detail maupun Block Tabel, pada dasarnya semua memicu Action templatePrint pada resource bisnis saat ini.
Penjelasan:
<resource_name>adalah nama resource yang sesuai dengan tabel data saat ini.- Endpoint mengembalikan binary file stream, bukan data JSON.
- Pemanggil harus memiliki izin query untuk resource saat ini, serta izin penggunaan tombol Template Print yang sesuai.
- Pemanggilan endpoint perlu meneruskan token JWT berbasis login user melalui header Authorization, jika tidak akan ditolak akses.
Parameter Request Body
Block Tabel
Block Tabel menggunakan endpoint yang sama, melalui blockName: "table" untuk menentukan mode print list. Server akan menjalankan query find pada resource, dan meneruskan array hasil ke Template.
Print Record yang Dipilih atau Hasil Halaman Saat Ini
Cocok untuk skenario memilih sebagian record dari Block Tabel untuk diprint, atau mempertahankan konteks pagination halaman saat ini untuk diprint. Praktik umum adalah:
- Set
queryParams.pagedanqueryParams.pageSizeke nomor halaman dan jumlah per halaman tabel saat ini. - Susun primary key record yang dipilih menjadi kondisi
filter.id.$in.
Arti dari request seperti ini:
blockNameadalahtable, berarti merender Template berdasarkan data list.filter.id.$indigunakan untuk menentukan koleksi record yang akan diprint.pagedanpageSizemempertahankan konteks pagination saat ini, agar konsisten dengan perilaku UI.appendsdapat ditambahkan field relasi sesuai kebutuhan.
Print Semua Data yang Memenuhi Kondisi
Cocok untuk cara pemanggilan saat klik "Print Semua Record" pada Block Tabel. Saat ini tidak lagi dipotong berdasarkan pagination halaman saat ini, melainkan langsung mengambil semua data yang memenuhi kondisi filter saat ini.
Poin kunci adalah meneruskan queryParams.page dan queryParams.pageSize secara eksplisit sebagai null.
Arti dari request seperti ini:
page: nulldanpageSize: nullberarti membatalkan batasan pagination.filter: {}berarti tidak menambahkan kondisi filter tambahan; jika sudah ada kondisi filter di UI, dapat juga langsung ditempatkan di sini.- Server akan men-query semua data yang memenuhi kondisi dan render Template secara batch.
Perhatian: Block Tabel maksimal print 300 record sekaligus. Saat melebihi batas, endpoint akan mengembalikan error
400.
Block Detail
Block Detail juga menggunakan Action templatePrint, tetapi biasanya meneruskan:
blockName: "details"queryParams.filterByTkuntuk menentukan primary key record saat iniqueryParams.appendsuntuk menentukan field relasi yang perlu di-query tambahan
Server akan menjalankan query findOne pada resource, dan meneruskan objek hasil ke Template.
Hasil Pengembalian
Setelah pemanggilan berhasil, endpoint langsung mengembalikan file stream, header response tipikal sebagai berikut:
Penjelasan:
- Saat
convertedToPDFadalahtrue, ekstensi file yang dikembalikan adalah.pdf. - Jika tidak, mengembalikan file dengan tipe asli Template, contoh
.docx,.xlsx, atau.pptx. - Frontend biasanya memicu unduh browser berdasarkan nama file di
Content-Disposition.

