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: