RESTForge

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)

EndpointMethodURLFungsi
Trigger ExportPOST/api/{project}/{endpoint}/exportMemulai job export asinkron
Cek StatusGET/api/{project}/{endpoint}/export-status?job_id=xxxPolling status job export
Download FileGET/api/{project}/{endpoint}/export-download?job_id=xxxDownload file Excel hasil export

Ikhtisar (Overview)

Proses export berjalan secara asinkron dalam tiga langkah:

  1. Trigger — Kirim request POST /export untuk memulai job export. Server mengembalikan job_id yang digunakan untuk melacak progres.
  2. Polling — Gunakan GET /export-status?job_id=xxx untuk memantau status job. Status berubah dari pending ke processing kemudian completed atau failed.
  3. Download — Setelah status completed, gunakan GET /export-download?job_id=xxx untuk 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:

ParameterTipeWajibKeterangan
formatstringTidakFormat file output. Default: "xlsx"
whereobjectTidakFilter data menggunakan format yang sama dengan endpoint /read
sort_columnsarrayTidakPengurutan kolom, misalnya [{"column": "created_at", "order": "desc"}]
POST /api/mini-inventory/stock-inbound/export
{
    "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-ef1234567890

Status: 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-ef1234567890

Response Header:

HeaderNilai
Content-Typeapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Dispositionattachment; 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.

Contoh exportQuery di payload
{
    "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.

Contoh columnFormats di payload
{
    "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 FormatKeterangan
dateFormat tanggal menggunakan pattern standar (misalnya YYYY-MM-DD, DD/MM/YYYY)
numberFormat angka dengan separator ribuan dan desimal
booleanKonversi nilai boolean ke label teks custom

Langkah Selanjutnya (Next Steps)

On this page