Buat REST API ringan dari Google Spreadsheet hanya dengan Cloudflare Worker. Script ini mengubah spreadsheet publik menjadi data JSON atau TSV yang dapat difilter dengan parameter URL.
✅ Mengubah Google Spreadsheet publik menjadi API JSON atau TSV
✅ Mendukung query parameter seperti ?nama=Andi
untuk filter data
✅ Output otomatis sesuai kebutuhan: JSON (default) atau TSV
✅ Dapat digunakan untuk:
- Menyediakan data publik berbasis spreadsheet
- Backend ringan tanpa server (serverless)
- Aplikasi pendidikan, data sekolah, atau data statistik
- Integrasi langsung ke frontend HTML, React, dsb.
-
Buka Google Spreadsheet yang ingin digunakan
-
Klik tombol Bagikan (kanan atas)
-
Ubah setelan menjadi:
- Siapa saja yang memiliki link
- Akses: Sebagai Pelihat
-
Salin ID spreadsheet dari URL, contoh:
https://docs.google.com/spreadsheets/d/15j2EfsDVTBJ6xLlnCqi3Nn1R52FSCrHWp6G1FgXXxnE/edit?usp=sharing
ID Spreadsheet (contoh):
15j2EfsDVTBJ6xLlnCqi3Nn1R52FSCrHWp6G1FgXXxnE
- Masuk ke Cloudflare Dashboard
- Pilih: Workers & Pages → Create Application → Create Worker
- Hapus kode bawaan
- Salin script dari
worker.js
Masuk ke tab: Settings → Variables
Nama | Nilai (Value) |
---|---|
data |
15j2EfsDVTBJ6xLlnCqi3Nn1R52FSCrHWp6G1FgXXxnE |
- Klik Save and Deploy
- Salin URL akhir Worker, misal:
https://your-worker-url.workers.dev
const sheetConfigs = {
"data": { // Ganti "data" sesuai kebutuhan untuk Endpoint Anda
id: env.data, // ID spreadsheet (disimpan di Environment Variable)
gid: "0", // GID dari sheet (lihat di URL Google Sheets)
range: "A:Z", // Kolom yang akan diambil
output: "json", // Format output default: json atau tsv
enabled: false, // Jika false → endpoint ini tidak aktif hanya bisa di akses melalui parameter
// 🔓 Hilangkan atau kosongkan ini agar semua query diizinkan
// allowedParams: ["token", "id", "gid"]
}
};
https://your-worker-url.workers.dev/data
https://your-worker-url.workers.dev/data?nama=Andi
- Ubah
output: "tsv"
pada konfigurasi - Maka hasil akan dalam format
.tsv
Spreadsheet:
NAMA | KELAS | JK |
---|---|---|
Andi | 6A | L |
Query:
https://your-worker-url.workers.dev/data?nama=Andi
Hasil:
[
{
"NAMA": "Andi",
"KELAS": "6A",
"JK": "L"
}
]
Lisensi: MIT — Bebas digunakan untuk proyek pribadi, pendidikan, maupun komersial.