07 // api publik
API Publik
Seluruh data situs ini tersedia sebagai JSON read-only, gratis, tanpa kunci API. Statis ala GitOps — di-regenerasi bersama snapshot data, bukan server per permintaan.
GitOps, bukan server
Pola GitOps: `npm run gen:api` menulis file JSON ke `public/api/v1/` dari `data/*.json`; GitHub Actions me-commit-nya secara berkala. Setiap respons menyertakan stempel `generatedAt` sehingga usia data selalu bisa diaudit.
CORS terbuka
CORS terbuka (Access-Control-Allow-Origin: *) — aman dipanggil dari browser. Tanpa autentikasi; mohon caching wajar di sisi Anda.
Pembaruan berkala
Pembaruan: mingguan (snapshot data), tiap 15 menit (uptime), dan setiap build statis.
Endpoint
GET /api/v1/index.jsonDokumen discovery — daftar semua endpoint.buka endpoint →GET /api/v1/user.jsonProfil GitHub publik.buka endpoint →GET /api/v1/repos.jsonDaftar seluruh repositori (urut push terbaru).buka endpoint →GET /api/v1/repos/{name}.jsonDetail satu repositori.buka endpoint →GET /api/v1/events.json100 event publik terakhir.buka endpoint →GET /api/v1/summary.jsonAgregat statistik + bahasa/topik teratas.buka endpoint →GET /api/v1/uptime.jsonUptime deployment per situs (7 & 30 hari).buka endpoint →GET /api/v1/studies.jsonIndeks studi kasus.buka endpoint →GET /api/v1/studies/{slug}.jsonDetail studi kasus (id + en).buka endpoint →Contoh
fetch — summary.json
const res = await fetch('https://niumination.web.id/api/v1/summary.json');
const data = await res.json();
data.totals.repos // 90 — jumlah repositori
data.topLanguages // [{ name, count }] — bahasa teratas
data.generatedAt // stempel waktu data (ISO)Basis URL produksi: https://niumination.web.id — jalur yang sama juga dilayani npm start / Docker / GitHub Pages.