Arsitektur Dokumentasi
Peta jalan panduan, SDK integration, dan API reference lengkap yang disiapkan secara terstruktur.
Admin Media
Mengupload dan mengelola file media (gambar, video, dokumen) melalui Admin API.
Upload Media
Mengupload file media ke storage (lokal atau Cloudflare R2).
Endpoint
POST /api/media/upload
Authentication
Bearer Token (JWT) + X-Workspace-ID header · Role: author+
Request
Gunakan multipart/form-data.
| Field | Type | Required | Description |
|---|---|---|---|
file | file | ya | File yang akan diupload. |
Response
{
"status": 201,
"message": "Media uploaded successfully",
"data": {
"id": "m1n2o3p4-9999-8888-7777-666655554444",
"url": "https://cdn.tulis.app/media/gambar-blog.jpg",
"filename": "gambar-blog.jpg",
"mime_type": "image/jpeg",
"size": 245760,
"width": 1200,
"height": 800,
"created_at": "2026-01-17T10:00:00Z"
}
}cURL Example
curl -X POST "https://YOUR_HOST/api/media/upload" \
-H "Authorization: Bearer <token>" \
-H "X-Workspace-ID: YOUR_WORKSPACE_ID" \
-F "file=@/path/to/gambar.jpg"Upload via URL
Mengupload media dari URL eksternal.
Endpoint
POST /api/media/upload-via-url
Authentication
Bearer Token (JWT) + X-Workspace-ID header · Role: author+
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
url | string | ya | URL file sumber. |
{
"url": "https://example.com/gambar.jpg"
}List Media (Admin)
Mendapatkan daftar media di workspace.
Endpoint
GET /api/media
Authentication
Bearer Token (JWT) + X-Workspace-ID header · Role: author+
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | int | 1 | Nomor halaman. |
per_page | int | 20 | Jumlah per halaman. |
type | string | (all) | Filter: image, video, document. |
Get Media
Mendapatkan detail satu media.
Endpoint
GET /api/media/:id
Update Media
Memperbarui metadata media (alt text, caption).
Endpoint
PUT /api/media/:id
Authentication · Role: editor+
| Field | Type | Required | Description |
|---|---|---|---|
alt | string | tidak | Alt text gambar. |
caption | string | tidak | Caption / deskripsi. |
Delete Media
Menghapus media dari storage.
Endpoint
DELETE /api/media/:id
Authentication · Role: editor+
Response
{
"status": 200,
"message": "Media deleted"
}Lini Masa Peluncuran Fitur
Docker Compose, pengaturan file environment, dan panduan setup lokal telah lengkap dibuat.
Dokumentasi route endpoint publik, otentikasi JWT, dan kontrol hak akses telah selesai disusun.
Mempersiapkan boilerplate untuk Next.js client, manajemen revisi konten, dan optimasi query.