SMP 1A Docs
REST API ยท v1

Dokumentasi API

Dokumentasi lengkap REST API untuk situs SMPN 1 Anggana. Mencakup data programs, news, dan events, dengan validasi Zod, rate limiting per-IP, serta auth bearer token untuk operasi tulis.

Base URL

Semua endpoint relatif terhadap base URL berikut:

https://<host>/api

Untuk pengembangan lokal biasanya http://localhost:5173/api.

Autentikasi

Endpoint baca (GET) bersifat publik. Endpoint tulis (POST, PATCH, DELETE) memerlukan bearer token admin yang dikirim lewat header Authorization:

Authorization: Bearer <API_ADMIN_TOKEN>
๐Ÿ”
Token dibandingkan secara constant-time di server untuk mencegah timing-attack. Set value-nya di .env sebagai API_ADMIN_TOKEN dengan minimal 16 karakter.

Format respons

Semua respons API dibungkus dengan envelope JSON yang konsisten:

// success { "ok": true, "data": ... } // failure { "ok": false, "error": { "code": "BAD_REQUEST", "message": "...", "details": {} } }

Pembatasan laju

Setiap endpoint punya budget rate-limit per-IP. Batas dan sisa quota dikembalikan via header:

X-RateLimit-Limit: 120 X-RateLimit-Remaining: 118 X-RateLimit-Reset: 42

Bila melebihi, server membalas 429 TOO_MANY_REQUESTS dengan header Retry-After dalam detik.

Resource

API memiliki 3 resource dengan total 15 endpoint:

Programs Daftar program akademik & ekstrakurikuler sekolah. 5 โ†’News Berita dan pengumuman sekolah. 5 โ†’Events Agenda kegiatan dan event sekolah. 5 โ†’