POST /export
Spesifikasi endpoint export untuk mengekspor data ke format Excel
Halaman ini mencakup tiga endpoint yang bekerja bersama untuk mengekspor data ke format Excel secara asinkron: trigger export, polling status, dan download file hasil.
Referensi Cepat (Quick Reference)
| Endpoint | Method | URL | Fungsi |
|---|---|---|---|
| Trigger Export | POST | /api/{project}/{endpoint}/export | Memulai job export asinkron |
| Cek Status | GET | /api/{project}/{endpoint}/export-status?job_id=xxx | Polling status job export |
| Download File | GET | /api/{project}/{endpoint}/export-download?job_id=xxx | Download file Excel hasil export |
Ikhtisar (Overview)
Proses export berjalan secara asinkron dalam tiga langkah:
- Trigger — Kirim request
POST /exportuntuk memulai job export. Server mengembalikanjob_idyang digunakan untuk melacak progres. - Polling — Gunakan
GET /export-status?job_id=xxxuntuk memantau status job. Status berubah daripendingkeprocessingkemudiancompletedataufailed. - Download — Setelah status
completed, gunakanGET /export-download?job_id=xxxuntuk download file Excel.
Langkah 1: Trigger Export (Step 1: Trigger Export)
POST /export
Memulai job export asinkron. Data yang diekspor dapat difilter dan diurutkan melalui parameter request.
Request:
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
format | string | Tidak | Format file output. Default: "xlsx" |
where | object | Tidak | Filter data menggunakan format yang sama dengan endpoint /read |
sort_columns | array | Tidak | Pengurutan kolom, misalnya [{"column": "created_at", "order": "desc"}] |
{
"format": "xlsx",
"where": {
"status": "approved"
},
"sort_columns": [
{
"column": "created_at",
"order": "desc"
}
]
}Response Sukses (200 OK):
{
"success": true,
"job_id": "export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending",
"timestamp": "2026-04-16T10:30:00.000Z"
}Langkah 2: Polling Status (Step 2: Poll Status)
GET /export-status
Polling status job export menggunakan job_id yang diperoleh dari langkah sebelumnya.
GET /api/mini-inventory/stock-inbound/export-status?job_id=export-a1b2c3d4-e5f6-7890-abcd-ef1234567890Status: pending
{
"success": true,
"job_id": "export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending",
"timestamp": "2026-04-16T10:30:00.000Z"
}Status: processing
{
"success": true,
"job_id": "export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "processing",
"progress": {
"processed_rows": 450,
"total_rows": 1200
},
"timestamp": "2026-04-16T10:30:00.000Z"
}Status: completed
{
"success": true,
"job_id": "export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"file_url": "/api/mini-inventory/stock-inbound/export-download?job_id=export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2026-04-16T10:30:00.000Z"
}Status: failed
{
"success": false,
"job_id": "export-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "failed",
"error": "Export failed: query timeout after 30 seconds",
"timestamp": "2026-04-16T10:30:00.000Z"
}Langkah 3: Download File (Step 3: Download File)
GET /export-download
Download file Excel hasil export. Endpoint ini mengembalikan binary file dengan header HTTP yang sesuai.
GET /api/mini-inventory/stock-inbound/export-download?job_id=export-a1b2c3d4-e5f6-7890-abcd-ef1234567890Response Header:
| Header | Nilai |
|---|---|
Content-Type | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Content-Disposition | attachment; filename="stock-inbound-export-2026-04-16.xlsx" |
Response body berupa binary file Excel yang langsung dapat di-download oleh client.
Endpoint /export-download hanya dapat dipanggil jika status job sudah completed. Request terhadap job yang belum selesai atau gagal akan menghasilkan error.
Konfigurasi (Configuration)
Perilaku export dapat dikustomisasi melalui konfigurasi payload.
exportQuery
Custom SQL query yang digunakan untuk mengambil data export. Jika tidak dikonfigurasi, sistem menggunakan query default berdasarkan konfigurasi fieldName endpoint.
{
"exportQuery": "SELECT si.inbound_code, si.status, s.supplier_name, si.created_at FROM stock_inbound si LEFT JOIN supplier s ON s.supplier_id = si.supplier_id"
}columnFormats
Konfigurasi format kolom pada file Excel output.
{
"columnFormats": {
"created_at": { "type": "date", "format": "YYYY-MM-DD" },
"total_amount": { "type": "number", "format": "#,##0.00" },
"is_active": { "type": "boolean", "trueLabel": "Aktif", "falseLabel": "Tidak Aktif" }
}
}| Tipe Format | Keterangan |
|---|---|
date | Format tanggal menggunakan pattern standar (misalnya YYYY-MM-DD, DD/MM/YYYY) |
number | Format angka dengan separator ribuan dan desimal |
boolean | Konversi nilai boolean ke label teks custom |
Langkah Selanjutnya (Next Steps)
- POST /read untuk mengambil data secara sinkron
- POST /datatables untuk integrasi dengan DataTables
- POST /import untuk proses import data dari Excel