ACDA (App Content Delivery API)
Terakhir diperbarui: 22 Juni 2026
ACDA (App Content Delivery API) adalah API hanya-baca yang mengirimkan Content dan Media yang sudah dipublikasikan kepada anggota yang mendaftar ke produk, yaitu ServiceUser. Ketika pihak yang mengelola Space memublikasikan konten, anggota membacanya melalui ACDA. Anggaplah ACDA sebagai versi ServiceUser yang menjalankan peran yang sama seperti CDA menyampaikan konten yang dipublikasikan kepada pengunjung publik, tetapi dengan identitas anggota. ACDA hanya memiliki endpoint pembacaan (GET); pembuatan, perubahan, dan penghapusan menjadi wewenang ACMA.
Panggilan ACDA menggunakan Bearer token yang diterbitkan oleh ServiceLogin. Token ini hanya berlaku pada ACMA dan ACDA, dan tidak dapat digunakan pada CMA atau CDA (untuk alur penerbitan token, lihat Auth API).
Perbedaan dengan CDA
Bentuk respons ACDA sama dengan CDA. Hanya snapshot dari materi yang dipublikasikan yang dikirimkan (sys tidak memuat version, status, atau publish, hanya memuat revision yaitu versi pada saat publikasi), dan bahasa yang diterima saat pembacaan ditentukan dengan locale. Yang berbeda dari CDA adalah dua hal: cakupan baca dan identitas.
- Cakupan baca per anggota: Pada CDA, siapa pun yang memanggil dengan satu DeliveryAccessToken melihat kumpulan publikasi yang sama. ACDA hanya mengembalikan apa yang diizinkan bagi ServiceUser yang memanggil, dan apa yang diizinkan ditentukan oleh ServiceUserRole serta penugasan anggota tersebut. Identitasnya juga berbeda. CDA dipanggil dengan DeliveryAccessToken, sedangkan ACDA dipanggil dengan token anggota yang diterbitkan oleh ServiceLogin.
Cara menentukan bahasa yang diterima melalui query parameter locale juga sama dengan CDA. Jika Anda memberikan kode seperti locale=ko-KR, fields dikembalikan sebagai satu nilai untuk locale tersebut (jika tidak ada dan Fallback juga tidak menjangkaunya, hasilnya kosong atau null); jika dihilangkan, dikembalikan dengan cara yang sama menggunakan Locale default dari Space; dan jika diberikan locale=*, sebuah map berisi nilai semua locale dikembalikan apa adanya. Pada dua kasus pertama yang menerima satu bahasa, header x-weegloo-locale yang menunjukkan locale yang benar-benar digunakan ikut disertakan (saat locale=* header ini tidak disertakan).
Struktur resource
Berikut adalah bentuk yang dikirimkan ACDA untuk satu Content "produk" pada Space demo. Ini adalah hasil pembacaan dengan locale=ko-KR, dan setiap nilai di fields berisi satu nilai dari ko-KR.
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7OGhwhlqvAvq",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"createdAt": "2026-06-15T15:16:12.151Z",
"updatedAt": "2026-06-16T14:35:11.210Z",
"revision": 3
},
"fields": {
"productName": "스테인리스 텀블러 500ml",
"price": 18000,
"description": "이중 진공 단열로 보온·보냉이 오래갑니다. 500ml 대용량."
}
}Key utama:
sys.id: Pengenal unik dari Content. Nilai ini masuk ke{contentId}pada path pembacaan tunggal.sys.type: Jenis resource; untuk Content selalu"Content".sys.space: Referensi yang menunjuk ke Space tempat Content ini berada.sys.contentType: Referensi yang menunjuk ke Content Type yang diikuti Content ini.sys.revision: Versi pada saat dipublikasikan. Setiap kali dipublikasikan, versi pada saat itu disimpan di sini. ACDA tidak memuatversion,status, ataupublishuntuk keperluan manajemen, sehingga satu-satunya nilai yang menunjuk ke versi publikasi adalahrevision.sys.createdBy,sys.updatedBy: Disertakan hanya ketikapublishWithAuthorpada Content Type diaktifkan, dan menunjuk ke pembuat serta pengubah. Pada contoh di atas opsi ini dinonaktifkan, sehingga kedua key dihilangkan.fields: Memuat nilai setiap field dalam bentuk{ apiName: value }. Berbeda dengan map locale milik CMA dan ACMA ({ apiName: { locale: value } }), ACDA hanya memuat satu nilai darilocaleyang dibaca. Pada contoh di atas, foto utamaphotodihilangkan karena tidak ada nilai untuk locale tersebut.
Media juga dikembalikan dalam bentuk pengiriman publikasi yang sama, dengan sys hanya memuat revision dan tidak memuat version, status, atau publish. Media selalu menghilangkan informasi pembuat (createdBy, updatedBy). fields.file milik Media juga dikembalikan sebagai satu objek tunggal dari locale yang dibaca.
API
Ketiga endpoint adalah pembacaan (GET), dan bahasa yang diterima ditentukan melalui query parameter locale (jika kode maka locale tersebut, jika dihilangkan maka Locale default, jika * maka map seluruh locale, lihat referensi di atas).
Dokumen terkait
- ACMA: API manajemen tempat anggota membuat dan mengubah konten mereka sendiri.
- Auth API: Penerbitan token panggilan ACDA.
- Login ServiceUser (konsep): Pengaturan ServiceLogin, ServiceUserRole, dan penugasan.
