Web Hosting
Terakhir diperbarui: 22 Juni 2026
Web Hosting adalah resource yang mengunggah situs web statis yang sudah Anda build ke sebuah Space dan menyajikannya pada alamat {subdomain}.weegloo.app. Sebagai contoh toko pakaian online, menayangkan situs toko yang sudah di-build pada dailywear-shop.weegloo.app adalah satu Web Hosting.
Urutan pengunggahannya adalah sebagai berikut. Pertama, paketkan hasil build menjadi ZIP atau tar.gz, unggah lewat Upload API, dan terima satu Upload. Lalu rujuk Upload itu dan buat Web Hosting dengan POST /web-hostings. Ketika sistem memproses file yang diunggah dan sys.state menjadi COMPLETED, Anda dapat mengakses situs melalui url. Di CMA, Web Hosting adalah resource turunan dari Space, dengan path yang berdasarkan /spaces/{spaceId}/web-hostings.
Struktur resource
Berikut adalah respons pengambilan tunggal Web Hosting "Situs toko DailyWear" yang sudah selesai diproses. Bersama dengan sys (properti sistem), resource ini memiliki properti badan (name, description, isSpa, subdomain, url).
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7PWeb01Examp",
"type": "WebHosting",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T11:40:00.000Z",
"updatedAt": "2026-06-18T11:40:05.000Z",
"state": "COMPLETED",
"totalFileSize": 245786,
"version": 3
},
"name": "Situs toko DailyWear",
"description": "Situs statis untuk toko pakaian dan aksesori",
"isSpa": true,
"subdomain": "dailywear-shop",
"url": "https://dailywear-shop.weegloo.app"
}Key utama:
subdomain: subdomain tempat situs akan disajikan. Pada contoh di atas adalahdailywear-shop, dan alamat akhirnya menjadidailywear-shop.weegloo.app.url: alamat situs yang dapat diakses setelah pemrosesan selesai.isSpa: apakah situs merupakan aplikasi satu halaman (SPA). Jikatrue, semua permintaan path diarahkan keindex.html.state: status pemrosesan deployment dari file yang diunggah. Dijelaskan di bawah pada Properti sistem (sys).
Properti sistem (sys)
Setiap Web Hosting menyimpan properti sistem bersama dalam objek sys. space, createdBy, dan updatedBy masuk dalam bentuk Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).
| Properti | Tipe | Deskripsi |
|---|---|---|
id | string | Identifier unik resource. Masuk ke {webHostingId} pada path pengambilan tunggal, pengubahan, dan penghapusan. |
type | string | Jenis resource. Web Hosting selalu "WebHosting". |
space | Refer<Space> | Space tempat Web Hosting ini berada. |
createdBy | Refer<User> | Pengguna yang membuat. |
createdAt | string (date-time) | Waktu pembuatan. |
updatedBy | Refer<User> | Pengguna yang terakhir mengubah. |
updatedAt | string (date-time) | Waktu pengubahan terakhir. |
state | string (enum) | Status pemrosesan deployment. Salah satu dari 4 nilai di bawah. |
error | string | Alasan kegagalan saat pemrosesan gagal. Kosong jika tidak gagal. |
totalFileSize | integer | Ukuran total file yang diunggah (byte). |
version | integer (≥1) | Versi resource. Naik 1 setiap pembuatan dan pengubahan. Nilai ini harus disertakan sebagai x-weegloo-version pada permintaan pengubahan dan pengubahan sebagian. |
state menunjukkan tahap pemrosesan deployment file yang diunggah. Ini bukan status publikasi Content, dan Web Hosting tidak memiliki konsep publikasi maupun pengarsipan. Ketika file diproses dan menjadi COMPLETED, situs dapat diakses melalui url.
state | Arti |
|---|---|
PENDING | Menunggu untuk diproses. |
PROCESSING | Sedang diproses. |
COMPLETED | Pemrosesan selesai. Dapat diakses melalui url. |
FAILED | Pemrosesan gagal. Alasannya tersimpan di sys.error. |
Properti badan
Properti badan dari Web Hosting adalah sebagai berikut.
| Properti | Tipe | Deskripsi |
|---|---|---|
name | string (1~64) | Nama Web Hosting. Wajib saat pembuatan. |
description | string (≤128) | Deskripsi. Opsional. |
isSpa | boolean | Apakah merupakan aplikasi satu halaman. Jika true, semua permintaan path diarahkan ke index.html (untuk routing SPA). Wajib saat pembuatan. |
subdomain | string (3~32) | Subdomain layanan. Pola ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ (huruf kecil, angka, tanda hubung; awal dan akhir tidak boleh tanda hubung). Wajib saat pembuatan. |
upload | Refer<Upload> | Referensi yang menunjuk file yang akan diunggah. Berupa ZIP atau tar.gz, dengan index.html di root dan aset yang dirujuk melalui path relatif. |
url | string | URL akses setelah pemrosesan selesai. Diisi oleh sistem. |
fromPath | string | Path acuan deployment. |
customDomain | string | Custom domain yang terhubung. Opsional. Dijelaskan di bawah pada Custom Domain. |
Pengecekan subdomain
Sebelum membuat Web Hosting, Anda dapat memeriksa apakah subdomain yang ingin digunakan masih kosong. Berikan subdomain yang akan diperiksa sebagai query subdomain pada GET /web-hostings/availability?subdomain=....
Respons berbentuk seperti berikut, dan jika available bernilai true, subdomain tersebut dapat digunakan.
{ "subdomain": "dailywear-shop", "available": true }Custom Domain
Alih-alih alamat default {subdomain}.weegloo.app, Anda dapat menghubungkan domain milik sendiri ke Web Hosting. Status domain yang terhubung dinyatakan dengan objek customDomain, dalam bentuk { id, domain, dns, cert }. dns dan cert masing-masing adalah status verifikasi kepemilikan domain (DNS) dan penerbitan sertifikat (cert), keduanya dalam bentuk { status, txtName, txtContent }. txtName dan txtContent adalah nama dan nilai DNS TXT record yang harus didaftarkan di sisi domain.
{
"id": 1024,
"domain": "shop.dailywear.example",
"dns": {
"status": "PENDING",
"txtName": "_weegloo.shop.dailywear.example",
"txtContent": "weegloo-verify=3trmXRM3RqbgSnifyg7PWebVerifyEx"
},
"cert": {
"status": "PENDING",
"txtName": "_acme-challenge.shop.dailywear.example",
"txtContent": "acme-verify=3trmXRM3RqbgSnifyg7PWebCertEx"
}
}Setelah mendaftarkan TXT record di sisi domain, picu verifikasi dengan PUT /web-hostings/{webHostingId}/custom-domain/status/verify, dan ambil status saat ini dengan GET /web-hostings/{webHostingId}/custom-domain/status. Setelah verifikasi selesai, dns.status dan cert.status menjadi VERIFIED. Memanggil pengambilan status pada Web Hosting yang tidak terhubung dengan custom domain akan merespons dengan WGL404001.
API
Base URL untuk semua endpoint di bawah adalah https://cma.weegloo.com/v1, dan header Authorization memerlukan Bearer token yang mengautentikasi ke CMA. Pengubahan dan pengubahan sebagian harus mengirim header X-Weegloo-Version (yaitu sys.version resource saat ini) untuk kontrol konkurensi optimistis. Permintaan pembuatan dan penghapusan tidak menyertakan header ini.
Dokumen terkait
- Upload API: permintaan untuk mengunggah ZIP file statis dan menerima Upload yang digunakan untuk membuat Web Hosting.
- Space: Space tempat Web Hosting berada.
